import type { ActorClientInterface, ActorHandlerInterface, ActorTaskState as ActorTaskStateMojo } from '../../glic.mojom-webui.js';
import type * as api from '../../glic_api/glic_api.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 { GmailOtpConfirmationRequest as GmailOtpConfirmationRequestMojo, GmailOtpConfirmationResult as GmailOtpConfirmationResultMojo, GmailOtpOptInRequest as GmailOtpOptInRequestMojo, GmailOtpOptInResult as GmailOtpOptInResultMojo, NavigationConfirmationRequest as NavigationConfirmationRequestMojo, NavigationConfirmationResponse as NavigationConfirmationResponseMojo, SelectAutofillSuggestionsDialogRequest as SelectAutofillSuggestionsDialogRequestMojo, SelectAutofillSuggestionsDialogResponse as SelectAutofillSuggestionsDialogResponseMojo, SelectCredentialDialogRequest as SelectCredentialDialogRequestMojo, SelectCredentialDialogResponse as SelectCredentialDialogResponseMojo, UserConfirmationDialogRequest as UserConfirmationDialogRequestMojo, UserConfirmationDialogResponse as UserConfirmationDialogResponseMojo } 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: api.CreateActorTabOptions;
    }): 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(request: GmailOtpOptInRequestMojo): Promise<{
        result: GmailOtpOptInResultMojo;
    }>;
    requestToShowGmailOtpConfirmationDialog(request: GmailOtpConfirmationRequestMojo): Promise<{
        result: GmailOtpConfirmationResultMojo;
    }>;
}
