import { SyntaxNode } from "@lezer/common";
declare type NodeType = SyntaxNode["type"]["name"];
declare type functionQueryType = (value: string, nodeType: NodeType, keyPath: (string | number)[], cursorPosition: number, nodePos: {
    start: number;
    end: number;
}) => boolean;
export declare type ProjectionQuery = {
    type: "function";
    query: functionQueryType;
} | {
    type: "index";
    query: (number | string)[];
} | {
    type: "multi-index";
    query: (number | string)[][];
} | {
    type: "regex";
    query: RegExp;
} | {
    type: "value";
    query: string[];
} | {
    type: "schemaMatch";
    query: string[];
} | {
    type: "nodeType";
    query: NodeType[];
};
export declare function keyPathMatchesQuery(query: (string | number)[], keyPath: (string | number)[]): boolean;
export declare function runProjectionQuery(props: {
    query: ProjectionQuery;
    keyPath: (string | number)[];
    nodeValue: string;
    typings: any[];
    nodeType: SyntaxNode["type"]["name"];
    projId: number;
    cursorPosition: number;
    nodePos: {
        start: number;
        end: number;
    };
}): boolean;
export {};
