/** * Root types that selector engines can query against. */ export type SelectorRoot = Element | Document | ShadowRoot; /** * Selector engine interface. * Each selector engine can query elements using its specific selector syntax. */ export interface SelectorEngine { /** * Engine name for selector syntax (e.g., 'css', 'xpath', 'role', 'text') */ readonly name: string; /** * Query a single element matching the selector */ query(root: SelectorRoot, selector: string): Element | null; /** * Query all elements matching the selector */ queryAll(root: SelectorRoot, selector: string): Element[]; } /** * Selector engine registry */ export declare class SelectorEngineRegistry { private engines; register(engine: SelectorEngine): void; get(name: string): SelectorEngine | undefined; has(name: string): boolean; names(): string[]; } /** * Parse a selector string into engine name and selector body. * Supports syntax like: "css=.class", "text=Hello", "role=button", "internal:has=button" * If no engine prefix, defaults to CSS. */ export declare function parseSelector(selector: string): { engine: string; body: string; }; /** * Global selector engine registry */ export declare const selectorEngines: SelectorEngineRegistry; //# sourceMappingURL=engine.d.ts.map