import { Entity } from '@backstage/catalog-model';
import { EntityFilter, UserListFilterKind } from './types';
/**
 * Filter entities based on Kind.
 * @public
 */
export declare class EntityKindFilter implements EntityFilter {
    readonly value: string;
    constructor(value: string);
    getCatalogFilters(): Record<string, string | string[]>;
    toQueryValue(): string;
}
/**
 * Filters entities based on type
 * @public
 */
export declare class EntityTypeFilter implements EntityFilter {
    readonly value: string | string[];
    constructor(value: string | string[]);
    getTypes(): string[];
    getCatalogFilters(): Record<string, string | string[]>;
    toQueryValue(): string[];
}
/**
 * Filters entities based on tag.
 * @public
 */
export declare class EntityTagFilter implements EntityFilter {
    readonly values: string[];
    constructor(values: string[]);
    filterEntity(entity: Entity): boolean;
    getCatalogFilters(): Record<string, string | string[]>;
    toQueryValue(): string[];
}
/**
 * Filters entities where the text matches spec, title or tags.
 * @public
 */
export declare class EntityTextFilter implements EntityFilter {
    readonly value: string;
    constructor(value: string);
    filterEntity(entity: Entity): boolean;
    getFullTextFilters(): {
        term: string;
        fields: string[];
    };
    toQueryValue(): string;
    private toUpperArray;
}
/**
 * Filter matching entities that are owned by group.
 * @public
 *
 * CAUTION: This class may contain both full and partial entity refs.
 */
export declare class EntityOwnerFilter implements EntityFilter {
    readonly values: string[];
    constructor(values: string[]);
    getCatalogFilters(): Record<string, string | string[]>;
    filterEntity(entity: Entity): boolean;
    /**
     * Get the URL query parameter value. May be a mix of full and humanized entity refs.
     * @returns list of entity refs.
     */
    toQueryValue(): string[];
}
/**
 * Filters entities on lifecycle.
 * @public
 */
export declare class EntityLifecycleFilter implements EntityFilter {
    readonly values: string[];
    constructor(values: string[]);
    getCatalogFilters(): Record<string, string | string[]>;
    filterEntity(entity: Entity): boolean;
    toQueryValue(): string[];
}
/**
 * Filters entities to those within the given namespace(s).
 * @public
 */
export declare class EntityNamespaceFilter implements EntityFilter {
    readonly values: string[];
    constructor(values: string[]);
    getCatalogFilters(): Record<string, string | string[]>;
    filterEntity(entity: Entity): boolean;
    toQueryValue(): string[];
}
/**
 * @public
 */
export declare class EntityUserFilter implements EntityFilter {
    readonly value: UserListFilterKind;
    readonly refs?: string[] | undefined;
    private constructor();
    static owned(ownershipEntityRefs: string[]): EntityUserFilter;
    static all(): EntityUserFilter;
    static starred(starredEntityRefs: string[]): EntityUserFilter;
    getCatalogFilters(): Record<string, string[]>;
    filterEntity(entity: Entity): boolean;
    toQueryValue(): string;
}
/**
 * Filters entities based on whatever the user has starred or owns them.
 * @deprecated use EntityUserFilter
 * @public
 */
export declare class UserListFilter implements EntityFilter {
    readonly value: UserListFilterKind;
    readonly isOwnedEntity: (entity: Entity) => boolean;
    readonly isStarredEntity: (entity: Entity) => boolean;
    constructor(value: UserListFilterKind, isOwnedEntity: (entity: Entity) => boolean, isStarredEntity: (entity: Entity) => boolean);
    filterEntity(entity: Entity): boolean;
    toQueryValue(): string;
}
/**
 * Filters entities based if it is an orphan or not.
 * @public
 */
export declare class EntityOrphanFilter implements EntityFilter {
    readonly value: boolean;
    constructor(value: boolean);
    getCatalogFilters(): Record<string, string | string[]>;
    filterEntity(entity: Entity): boolean;
}
/**
 * Filters entities based on if it has errors or not.
 * @public
 */
export declare class EntityErrorFilter implements EntityFilter {
    readonly value: boolean;
    constructor(value: boolean);
    filterEntity(entity: Entity): boolean;
}
