import type { ActInput, AmbiguousTarget, BlockedByPolicy, BrowserObservation, BrowserProviderState, CloseInput, ExtractInput, ExtractResult, ObserveInput, OpenInput, RenderInput, RenderResult, ScreenshotInput, ScreenshotResult } from './types.js'; export type OpenOutcome = BrowserObservation | BlockedByPolicy; export type ActOutcome = BrowserObservation | AmbiguousTarget | BlockedByPolicy; export interface BrowserProvider { readonly name: string; open(input: OpenInput): Promise; observe(input: ObserveInput): Promise; act(input: ActInput): Promise; render(input: RenderInput): Promise; screenshot(input: ScreenshotInput): Promise; extract(input: ExtractInput): Promise; close(input: CloseInput): Promise; describe(sessionId: string): BrowserProviderState | null; shutdown(): Promise; }