import type { ActorClientInterface, ActorHandlerInterface, ActorTaskState as ActorTaskStateMojo } from '../../glic.mojom-webui.js';
import type { ActorTaskInterruptReason, ActorTaskPauseReason, ActorTaskStopReason, CancelActionsResult, FormFillingResponse, Journal, TabContextOptions, TaskOptions } from '../../glic_api/glic_api.js';
import type { ResumeActorTaskResultPrivate, TabContextResultPrivate } from '../request_types.js';
import type { ResponseExtras } from '../transport/messaging.js';
import type { PostMessageHandler, PostMessageRemote } from '../transport/post_message_transport.js';
import type { NavigationConfirmationRequest as NavigationConfirmationRequestMojo, NavigationConfirmationResponse as NavigationConfirmationResponseMojo, SelectAutofillSuggestionsDialogRequest as SelectAutofillSuggestionsDialogRequestMojo, SelectAutofillSuggestionsDialogResponse as SelectAutofillSuggestionsDialogResponseMojo, SelectCredentialDialogRequest as SelectCredentialDialogRequestMojo, SelectCredentialDialogResponse as SelectCredentialDialogResponseMojo, UserConfirmationDialogRequest as UserConfirmationDialogRequestMojo, UserConfirmationDialogResponse as UserConfirmationDialogResponseMojo, GmailOtpOptInResult as GmailOtpOptInResultMojo } from './../../actor_webui.mojom-webui.js';
import type { ActorClient, ActorHost } from './actor_types.js';
export declare class ActorHostMessageHandler implements PostMessageHandler<ActorHost> {
    private actorHandler;
    constructor(actorHandler: ActorHandlerInterface);
    getContextForActorFromTab(request: {
        tabId: string;
        options: TabContextOptions;
    }, extras: ResponseExtras): Promise<{
        tabContextResult: TabContextResultPrivate;
    }>;
    createTask(request: {
        taskOptions?: TaskOptions;
    }): Promise<{
        taskId: number;
    }>;
    performActions(request: {
        actions: ArrayBuffer;
    }): Promise<{
        actionsResult: ArrayBuffer;
    }>;
    cancelActions(request: {
        taskId: number;
    }): Promise<{
        result: CancelActionsResult;
    }>;
    stopActorTask(request: {
        taskId: number;
        stopReason: ActorTaskStopReason;
    }): void;
    pauseActorTask(request: {
        taskId: number;
        pauseReason: ActorTaskPauseReason;
        tabId: string;
    }): void;
    resumeActorTask(request: {
        taskId: number;
        tabContextOptions: TabContextOptions;
    }, extras: ResponseExtras): Promise<{
        resumeActorTaskResult: ResumeActorTaskResultPrivate;
    }>;
    interruptActorTask(request: {
        taskId: number;
        interruptReason?: ActorTaskInterruptReason;
    }): void;
    uninterruptActorTask(request: {
        taskId: number;
    }): void;
    createActorTab(request: {
        taskId: number;
        options: {
            initiatorTabId?: string;
            initiatorWindowId?: string;
            openInBackground?: boolean;
        };
    }): Promise<{
        tabData: {
            tabId: string;
            windowId: string;
            url: string;
            title: string | undefined;
        };
    } | {
        tabData?: undefined;
    }>;
    logBeginAsyncEvent(request: {
        asyncEventId: number;
        taskId: number;
        event: string;
        details: string;
    }): void;
    logEndAsyncEvent(request: {
        asyncEventId: number;
        details: string;
    }): void;
    logInstantEvent(request: {
        taskId: number;
        event: string;
        details: string;
    }): void;
    journalClear(): void;
    journalSnapshot(request: {
        clear: boolean;
    }, extras: ResponseExtras): Promise<{
        journal: Journal;
    }>;
    journalStart(request: {
        maxBytes: number;
        captureScreenshots: boolean;
    }): void;
    journalStop(): void;
    journalRecordFeedback(request: {
        positive: boolean;
        reason: string;
    }): void;
    autofillSuggestionDialogOnFormPresented(payload: {
        taskId: number;
        params: {
            formFillingRequestIndex: number;
        };
    }): void;
    autofillSuggestionDialogOnFormPreviewChanged(payload: {
        taskId: number;
        params: {
            formFillingRequestIndex: number;
            response?: FormFillingResponse;
        };
    }): void;
    autofillSuggestionDialogOnFormConfirmed(payload: {
        taskId: number;
        params: {
            formFillingRequestIndex: number;
            response: FormFillingResponse;
        };
    }): void;
}
export declare class ActorClientImpl implements ActorClientInterface {
    private sender;
    constructor(sender: PostMessageRemote<ActorClient>);
    notifyActorTaskStateChanged(taskId: number, state: ActorTaskStateMojo): void;
    requestToShowCredentialSelectionDialog(request: SelectCredentialDialogRequestMojo): Promise<{
        response: SelectCredentialDialogResponseMojo;
    }>;
    requestToShowUserConfirmationDialog(request: UserConfirmationDialogRequestMojo): Promise<{
        response: UserConfirmationDialogResponseMojo;
    }>;
    requestToConfirmNavigation(request: NavigationConfirmationRequestMojo): Promise<{
        response: NavigationConfirmationResponseMojo;
    }>;
    requestToShowAutofillSuggestionsDialog(request: SelectAutofillSuggestionsDialogRequestMojo): Promise<{
        response: SelectAutofillSuggestionsDialogResponseMojo;
    }>;
    requestToShowGmailOtpOptInDialog(taskId: number): Promise<{
        result: GmailOtpOptInResultMojo;
    }>;
}
