export interface ISelector { tag?: string; id?: string; class?: string; child?: ISelector; } export interface IRootSelector extends ISelector { position?: { x: number; y: number; }; } export interface IQueryResult { [K: string]: any; getHTMLElement(): HTMLElement | SVGElement; getPosition?(): { x: number; y: number; }; getId(): any; } export interface ITagHandler { (selector: ISelector, parent: IQueryResult | null): IQueryResult | null; } export declare class QueryEngine { private handlers; static parseValue(selector: ISelector, root: IRootSelector, value: string, modifier: string): ISelector; registerTagHandler(tag: string, handler: ITagHandler): { dispose: () => void; }; parse(input: string): IRootSelector; resolve(selector: ISelector, parent?: IQueryResult | null): IQueryResult | null; query(input: string): IQueryResult | null; /** * Prints a warning mesasge explaining why a query would fail. Used by tagHandlers to provide debugging information about selectors * @param message The reason for a query's failure */ warn(message: string): void; }