import type { Locator, Page } from 'playwright-core';
import type { GptClient } from '../../../clients/GptClient';
import type { LocateResult } from './locateTypes';
/**
 * Resolve a natural-language element description to a Playwright {@link Locator}.
 *
 * 1. Captures a viewport screenshot + pruned DOM snapshot.
 * 2. Asks the LLM to return a structured {@link LocateResult}.
 * 3. Builds a {@link Locator} and counts matches.
 *    - 1 match → done.
 *    - 2–{@link DISAMBIGUATE_THRESHOLD} matches → shows snippets, LLM picks one, appends `.nth(n)`.
 *    - 0 or >{@link DISAMBIGUATE_THRESHOLD} → retries once with feedback.
 * 4. Throws {@link LocateException} if resolution fails after retry.
 *
 * Returns both the Locator and the underlying {@link LocateResult} so
 * callers can cache the result for deterministic replay.
 */
export declare function locateElement(page: Page, description: string, gptClient: GptClient, options?: {
    signal?: AbortSignal;
    envData?: Record<string, string>;
}): Promise<{
    locator: Locator;
    result: LocateResult;
}>;
//# sourceMappingURL=locateElement.d.ts.map