import type { ASTNode, QueryMatch } from './types.js';
interface AttributeSelector {
    name: string;
    operator: '=' | '!=' | '^=' | '$=' | '*=' | '|=' | '~=' | 'exists';
    value: any;
}
interface PseudoSelector {
    name: string;
    argument: string | null;
}
interface ParsedSelector {
    type: string | null;
    attributes: AttributeSelector[];
    pseudos: PseudoSelector[];
    combinator: {
        type: '>' | '+' | '~' | ' ';
        right: ParsedSelector;
    } | null;
}
export declare function query(ast: ASTNode | null, selector: string): QueryMatch | null;
export declare function queryAll(ast: ASTNode | null, selector: string): QueryMatch[];
export declare function parseSelector(selector: string): ParsedSelector;
export declare function queryXPath(ast: ASTNode | null, xpath: string): ASTNode[];
export {};
//# sourceMappingURL=query.d.ts.map