import { Type } from "typebox"; export type BrowserTargetInput = { selector?: string; role?: string; name?: string; targetText?: string; exact?: boolean; }; export type BrowserTarget = { kind: "selector"; selector: string; } | { kind: "role"; role: string; name?: string; exact: boolean; } | { kind: "text"; text: string; exact: boolean; }; export type TargetLocator = { waitFor?: (options?: { state?: "attached" | "visible"; timeout?: number; }) => Promise; isVisible?: () => Promise; isEnabled?: () => Promise; click?: (options?: { timeout?: number; }) => Promise; fill?: (value: string, options?: { timeout?: number; }) => Promise; pressSequentially?: (value: string, options?: { delay?: number; timeout?: number; }) => Promise; screenshot?: (options?: { path?: string; timeout?: number; }) => Promise; }; type LocatorFactory = { locator?: (selector: string) => TargetLocator; getByRole?: (role: never, options?: { name?: string; exact?: boolean; }) => TargetLocator; getByText?: (text: string, options?: { exact?: boolean; }) => TargetLocator; waitForSelector?: (selector: string, options?: { state?: "attached" | "visible"; timeout?: number; }) => Promise; click?: (selector: string, options?: { timeout?: number; }) => Promise; fill?: (selector: string, value: string) => Promise; type?: (selector: string, value: string, options?: { delay?: number; }) => Promise; }; type TargetSession = LocatorFactory & { page?: LocatorFactory; }; export declare const targetParameterProperties: { selector: Type.TOptional; role: Type.TOptional; name: Type.TOptional; targetText: Type.TOptional; exact: Type.TOptional; }; export declare function resolveTarget(input: BrowserTargetInput): BrowserTarget; export declare function describeTarget(target: BrowserTarget): string; export declare function getTargetLocator(session: TargetSession, target: BrowserTarget): TargetLocator; export {};