import type { AgentSession } from "../../core/agent-session.ts";
import type { AgentSessionRuntime } from "../../core/agent-session-runtime.ts";
import { type RpcPendingExtensionRequests } from "./rpc-extension-ui.ts";
import type { RpcOutput } from "./rpc-responses.ts";
interface RpcSessionBindingOptions {
    runtimeHost: AgentSessionRuntime;
    output: RpcOutput;
    pendingExtensionRequests: RpcPendingExtensionRequests;
    requestShutdown: () => void;
}
export declare class RpcSessionBinding {
    private session;
    private unsubscribe?;
    private unsubscribeBackpressure?;
    private readonly runtimeHost;
    private readonly output;
    private readonly pendingExtensionRequests;
    private readonly requestShutdown;
    constructor({ runtimeHost, output, pendingExtensionRequests, requestShutdown }: RpcSessionBindingOptions);
    get currentSession(): AgentSession;
    rebindSession(): Promise<void>;
    disposeSubscriptions(): void;
}
export {};
//# sourceMappingURL=rpc-session-binding.d.ts.map