import type { TControllerMcpWorkspaceMethod, TControllerMcpWorkspaceRequest, TControllerMcpWorkspaceResponse } from '../dist_ts_interfaces/mcpworkspacerequests.js'; import { type IReq_ControllerMcpProjectsList, type IReq_ControllerMcpSessionRead, type IReq_ControllerMcpSessionScratchpadRead, type IReq_ControllerMcpSessionScratchpadUpdate, type IReq_ControllerMcpSessionSend, type IReq_ControllerMcpSessionsList, type IReq_ControllerMcpStatus, type IReq_ControllerMcpSettingsGet, type IReq_ControllerMcpSettingsUpdate, type IReq_ControllerMcpAuthSwitch, type IControllerMcpCaller, type TControllerOperationPrincipal } from '../dist_ts_interfaces/index.js'; import type { IAGLHomePaths } from './classes.aglhome.js'; import { type IControllerMcpDescriptor } from './classes.mcpdescriptor.js'; import type { IControllerProcessIdentity } from './classes.processinspection.js'; export interface IControllerMcpPrivateApi { getSettings(signal: AbortSignal): Promise; updateSettings(request: IReq_ControllerMcpSettingsUpdate['request'], signal: AbortSignal): Promise; authswitch(request: IReq_ControllerMcpAuthSwitch['request'], signal: AbortSignal): Promise; workspace: { [TMethod in TControllerMcpWorkspaceMethod]: (requestArg: TControllerMcpWorkspaceRequest, signalArg: AbortSignal) => Promise>; }; status(principalArg: TControllerOperationPrincipal, signalArg: AbortSignal): Promise; listProjects(principalArg: TControllerOperationPrincipal, signalArg: AbortSignal): Promise; listSessions(principalArg: TControllerOperationPrincipal, requestArg: IReq_ControllerMcpSessionsList['request'], signalArg: AbortSignal): Promise; readSession(principalArg: TControllerOperationPrincipal, requestArg: IReq_ControllerMcpSessionRead['request'], signalArg: AbortSignal): Promise; sendSession(principalArg: TControllerOperationPrincipal, requestArg: IReq_ControllerMcpSessionSend['request'], signalArg: AbortSignal): Promise; readSessionScratchpad(principalArg: TControllerOperationPrincipal, requestArg: IReq_ControllerMcpSessionScratchpadRead['request'], signalArg: AbortSignal): Promise; updateSessionScratchpad(principalArg: TControllerOperationPrincipal, requestArg: IReq_ControllerMcpSessionScratchpadUpdate['request'], signalArg: AbortSignal): Promise; } export interface IControllerMcpHostOptions { controllerPort: number; lifecycleGeneration: string; processIdentity: IControllerProcessIdentity; api: IControllerMcpPrivateApi; paths?: IAGLHomePaths; /** Resolves a presented caller credential to the chat it was minted for. */ resolveCaller?: (credentialArg: string | undefined) => IControllerMcpCaller; } export declare class ControllerMcpHost { private readonly options; private readonly descriptorPublisher; private typedServer?; private publishedDescriptor?; private startCalled; private admissionOpen; private closePromise?; private closed; constructor(options: IControllerMcpHostOptions); get privatePort(): number | undefined; get descriptor(): IControllerMcpDescriptor | undefined; start(): Promise; openAdmission(): void; beginShutdown(): void; close(): Promise; private authenticated; private admitHttpRequest; private registerHandlers; }