import { ComparisonOperator, InternalFilteringOption, InternalFilteringProperty, InternalToken, InternalTokenGroup, Token } from './interfaces';
export declare function isInternalToken(tokenOrGroup: InternalToken | InternalTokenGroup): tokenOrGroup is InternalToken;
export declare function isInternalTokenGroup(tokenOrGroup: InternalToken | InternalTokenGroup): tokenOrGroup is InternalTokenGroup;
export declare function matchFilteringProperty(filteringProperties: readonly InternalFilteringProperty[], filteringText: string): null | InternalFilteringProperty;
export declare function matchOperator(allowedOperators: readonly ComparisonOperator[], filteringText: string): null | ComparisonOperator;
export declare function matchOperatorPrefix(allowedOperators: readonly ComparisonOperator[], filteringText: string): null | string;
export declare function matchTokenValue({ property, operator, value }: InternalToken, filteringOptions: readonly InternalFilteringOption[]): Token;
export declare function trimStart(source: string): string;
export declare function removeOperator(source: string, operator: string): string;
interface AbstractToken {
    operator: any;
}
interface AbstractTokenGroup<T extends AbstractToken> {
    operation: any;
    tokens: readonly (T | AbstractTokenGroup<T>)[];
}
/**
 * Transforms query token groups to tokens (only taking 1 level of nesting).
 */
export declare function tokenGroupToTokens<T extends AbstractToken>(tokenGroups: readonly (T | AbstractTokenGroup<T>)[]): T[];
export {};
//# sourceMappingURL=utils.d.ts.map