import { Entity } from '@backstage/catalog-model';
/**
 * Parses a filter expression that decides whether to render an entity component
 * or not. Returns a function that matches entities based on that expression.
 *
 * @remarks
 *
 * Filter strings are on the form `kind:user,group is:orphan`. There's
 * effectively an AND between the space separated parts, and an OR between comma
 * separated parameters. So the example filter string semantically means
 * "entities that are of either User or Group kind, and also are orphans".
 *
 * The `expressionParseErrors` array contains any errors that were encountered
 * during initial parsing of the expression. Note that the parts of the input
 * expression that had errors are ignored entirely and parsing continues as if
 * they didn't exist.
 */
export declare function parseFilterExpression(expression: string): {
    filterFn: (entity: Entity) => boolean;
    expressionParseErrors: Error[];
};
export declare function splitFilterExpression(expression: string, onParseError: (error: Error) => void): Array<{
    key: string;
    parameters: string[];
}>;
