import type { InteractableElement } from './InteractableElement';
/**
 * Represents a single AI decision cycle within a flow. Created at the start of
 * a query cycle with just `id` and `queriedAt`, then progressively filled in as
 * screenshots are captured and elements are discovered. The `error` field is
 * populated only if the query fails.
 */
export type AiQuery = {
    /**
     * Unique identifier for this AI query.
     */
    readonly id: string;
    /**
     * The ID of the clean (un-annotated) screenshot of the page at query time.
     * Null until the screenshot is captured.
     */
    readonly cleanScreenshotId: string | null;
    /**
     * The ID of the annotated screenshot (with numbered element badges) sent to the AI.
     * Null until the screenshot is captured.
     */
    readonly annotatedScreenshotId: string | null;
    /**
     * The interactable elements that were identified and sent to the AI.
     * Null until element discovery completes.
     */
    readonly interactableElements: InteractableElement[] | null;
    /**
     * If the AI query failed, the error message. Null on success.
     */
    readonly error: string | null;
    /**
     * The Unix epoch millisecond timestamp of when the query was initiated.
     */
    readonly startedAt: number;
    /**
     * The Unix epoch millisecond timestamp of when the query completed (success
     * or failure). Null while the query is still in progress.
     */
    readonly completedAt: number | null;
};
//# sourceMappingURL=AiQuery.d.ts.map