import type { AgentSession } from "../../core/agent-session.js"; import type { AgentSessionRuntime } from "../../core/agent-session-runtime.ts"; import type { EngineCustomUiService } from "../interactive-engine/engine-custom-ui.ts"; import type { EngineInputFormService } from "../interactive-engine/engine-input-form.ts"; import type { EngineRenderService } from "../interactive-engine/engine-render-service.ts"; import type { EngineSessionPickerService } from "../interactive-engine/engine-session-picker.ts"; import { type RpcPendingExtensionRequests } from "./rpc-extension-ui.ts"; import type { KeybindingsReloadCoordinator } from "./rpc-keybindings-reload.ts"; import type { RpcOutput } from "./rpc-responses.ts"; interface RpcSessionBindingOptions { runtimeHost: AgentSessionRuntime; output: RpcOutput; pendingExtensionRequests: RpcPendingExtensionRequests; customUi?: EngineCustomUiService; renderService?: EngineRenderService; sessionPicker?: EngineSessionPickerService; inputForm?: EngineInputFormService; /** Present in the interactive engine child, which reports workflow activity to its host. */ writeEngineLine?: (line: string) => void; requestShutdown: () => void; reloadCoordinator?: KeybindingsReloadCoordinator; } export declare class RpcSessionBinding { private session; private boundRunner; private unsubscribe?; private unsubscribeBackpressure?; private unsubscribeTasks?; private unsubscribeWorkflowActivity?; private readonly runtimeHost; private readonly output; private readonly pendingExtensionRequests; private readonly customUi; private readonly renderService; private readonly sessionPicker; private readonly inputForm; private readonly writeEngineLine; private readonly requestShutdown; private readonly reloadCoordinator; private footerDataProvider; constructor({ runtimeHost, output, pendingExtensionRequests, requestShutdown, customUi, renderService, sessionPicker, inputForm, writeEngineLine, reloadCoordinator, }: RpcSessionBindingOptions); private createProjectTrustContext; get currentSession(): AgentSession; rebindSession(): Promise; /** Load and atomically publish the optional resource set after the minimal interactive engine binds. */ loadDeferredResources(): Promise; disposeSubscriptions(): void; } export {}; //# sourceMappingURL=rpc-session-binding.d.ts.map