import type { ExtensionUIContext } from "../../core/extensions/index.ts";
import type { EngineCustomUiService } from "../interactive-engine/engine-custom-ui.ts";
import type { EngineInputFormService } from "../interactive-engine/engine-input-form.ts";
import type { EngineSessionPickerService } from "../interactive-engine/engine-session-picker.ts";
import type { RpcExtensionUIResponse } from "./rpc-types.ts";
import type { RpcOutput } from "./rpc-responses.ts";
export interface RpcPendingExtensionRequest {
    resolve: (value: RpcExtensionUIResponse) => void;
    reject: (error: Error) => void;
}
export type RpcPendingExtensionRequests = Map<string, RpcPendingExtensionRequest>;
interface CreateRpcExtensionUIContextOptions {
    output: RpcOutput;
    pendingExtensionRequests: RpcPendingExtensionRequests;
    customUi?: EngineCustomUiService;
    sessionPicker?: EngineSessionPickerService;
    inputForm?: EngineInputFormService;
}
export declare function createRpcExtensionUIContext({ output, pendingExtensionRequests, customUi, sessionPicker, inputForm, }: CreateRpcExtensionUIContextOptions): ExtensionUIContext;
export {};
//# sourceMappingURL=rpc-extension-ui.d.ts.map