import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
import type { McpExtensionState } from "./state.js";
import { type UiStreamMode } from "./types.js";
export interface UiSessionRequest {
    serverName: string;
    toolName: string;
    toolArgs: Record<string, unknown>;
    uiResourceUri: string;
    streamMode?: UiStreamMode;
}
export interface UiSessionRuntime {
    serverName: string;
    toolName: string;
    reused: boolean;
    streamId?: string;
    streamToken?: string;
    streamMode?: UiStreamMode;
    requestMeta?: Record<string, unknown>;
    url: string;
    isActive: () => boolean;
    sendToolResult: (result: CallToolResult) => void;
    sendResultPatch: (result: CallToolResult) => void;
    sendToolCancelled: (reason: string) => void;
    close: (reason?: string) => void;
}
export declare function maybeStartUiSession(state: McpExtensionState, request: UiSessionRequest): Promise<UiSessionRuntime | null>;
//# sourceMappingURL=ui-session.d.ts.map