/** * Browser-compatible implementation of Playwright's _snapshotForAI function chain * Extracts a complete TypeScript implementation that can work in a browser environment */ export type AriaRole = 'alert' | 'alertdialog' | 'application' | 'article' | 'banner' | 'blockquote' | 'button' | 'caption' | 'cell' | 'checkbox' | 'code' | 'columnheader' | 'combobox' | 'complementary' | 'contentinfo' | 'definition' | 'deletion' | 'dialog' | 'directory' | 'document' | 'emphasis' | 'feed' | 'figure' | 'form' | 'generic' | 'grid' | 'gridcell' | 'group' | 'heading' | 'img' | 'insertion' | 'link' | 'list' | 'listbox' | 'listitem' | 'log' | 'main' | 'mark' | 'marquee' | 'math' | 'meter' | 'menu' | 'menubar' | 'menuitem' | 'menuitemcheckbox' | 'menuitemradio' | 'navigation' | 'none' | 'note' | 'option' | 'paragraph' | 'presentation' | 'progressbar' | 'radio' | 'radiogroup' | 'region' | 'row' | 'rowgroup' | 'rowheader' | 'scrollbar' | 'search' | 'searchbox' | 'separator' | 'slider' | 'spinbutton' | 'status' | 'strong' | 'subscript' | 'superscript' | 'switch' | 'tab' | 'table' | 'tablist' | 'tabpanel' | 'term' | 'textbox' | 'time' | 'timer' | 'toolbar' | 'tooltip' | 'tree' | 'treegrid' | 'treeitem'; export type AriaProps = { checked?: boolean | 'mixed'; disabled?: boolean; expanded?: boolean; active?: boolean; level?: number; pressed?: boolean | 'mixed'; selected?: boolean; }; export type AriaRegex = { pattern: string; }; export type AriaTextValue = { raw: string; normalized: string; }; export type AriaTemplateTextNode = { kind: 'text'; text: AriaTextValue; }; export type AriaTemplateRoleNode = AriaProps & { kind: 'role'; role: AriaRole | 'fragment'; name?: AriaRegex | string; children?: AriaTemplateNode[]; props?: Record; containerMode?: 'contain' | 'equal' | 'deep-equal'; }; export type AriaTemplateNode = AriaTemplateRoleNode | AriaTemplateTextNode; export type AriaNode = AriaProps & { role: AriaRole | 'fragment' | 'iframe'; name: string; ref?: string; children: (AriaNode | string)[]; element: Element; box: Box; receivesPointerEvents: boolean; props: Record; }; export type AriaSnapshot = { root: AriaNode; elements: Map; refs: Map; }; export type AriaTreeOptions = { mode: 'ai' | 'expect' | 'codegen' | 'autoexpect'; refPrefix?: string; }; type Box = { visible: boolean; inline: boolean; rect?: DOMRect; cursor?: string; }; export declare function escapeRegExp(s: string): string; export declare function normalizeWhiteSpace(text: string): string; export declare function longestCommonSubstring(s1: string, s2: string): string; export declare function yamlEscapeKeyIfNeeded(str: string): string; export declare function yamlEscapeValueIfNeeded(str: string): string; export declare function computeBox(element: Element): Box; export declare function isElementVisible(element: Element): boolean; export declare function generateAriaTree(rootElement: Element, publicOptions: AriaTreeOptions): AriaSnapshot; export declare function renderAriaTree(ariaSnapshot: AriaSnapshot, publicOptions: AriaTreeOptions, previous?: AriaSnapshot): string; export type TimeoutOptions = { timeout?: number; }; export type SnapshotForAIOptions = TimeoutOptions & { track?: string; mode?: 'full' | 'incremental'; }; /** * Main function that generates an AI-readable snapshot of a DOM element * This is the browser-compatible equivalent of Playwright's _snapshotForAI */ export declare function snapshotForAI(rootElement: Element, _options?: SnapshotForAIOptions): string; export { snapshotForAI as default }; //# sourceMappingURL=snapshot.d.ts.map