import type { ChatSurfaceAdapter, ChatSurfaceEventSink, ChatSurfaceIncomingMessage, IAdminForth } from "adminforth";
import type { HandleTurnInput, RunAndPersistAgentResponseInput, RunAndPersistAgentResponseResult } from "./agentTurnService.js";
import type { AgentSessionStore } from "./sessionStore.js";
import type { PluginOptions } from "./types.js";
export declare class ChatSurfaceService {
    private getAdminforth;
    private options;
    private sessionStore;
    private handleTurn;
    private runAndPersistAgentResponse;
    constructor(getAdminforth: () => IAdminForth, options: PluginOptions, sessionStore: AgentSessionStore, handleTurn: (input: HandleTurnInput) => Promise<unknown>, runAndPersistAgentResponse: (input: RunAndPersistAgentResponseInput) => Promise<RunAndPersistAgentResponseResult>);
    private createEventEmitter;
    private handleLink;
    private handleAudioMessage;
    private handleAgentSurfaceResponse;
    private getAdminUserRecordForChatSurface;
    handleMessage(adapter: ChatSurfaceAdapter, incoming: ChatSurfaceIncomingMessage, sink: ChatSurfaceEventSink): Promise<void>;
}
