import type * as vscode from "vscode";
import { CancellationToken } from "../../../base/common/cancellation.js";
import { Disposable } from "../../../base/common/lifecycle.js";
import { IExtensionDescription } from "../../../platform/extensions/common/extensions.js";
import { ILogService } from "../../../platform/log/common/log.service.js";
import { IChatAgentRequest, IChatAgentResult } from "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatAgents";
import { IChatSessionItem } from "../../contrib/chat/common/chatSessionsService.js";
import { ChatSessionDto, ExtHostChatSessionsShape } from "./extHost.protocol.js";
import { ExtHostCommands } from "./extHostCommands.js";
import { ExtHostLanguageModels } from "./extHostLanguageModels.js";
import { IExtHostRpcService } from "./extHostRpcService.js";
export declare class ExtHostChatSessions extends Disposable implements ExtHostChatSessionsShape {
    private readonly commands;
    private readonly _languageModels;
    private readonly _extHostRpc;
    private readonly _logService;
    private static _sessionHandlePool;
    private readonly _proxy;
    private readonly _chatSessionItemProviders;
    private readonly _chatSessionContentProviders;
    private _nextChatSessionItemProviderHandle;
    private _nextChatSessionContentProviderHandle;
    private readonly _sessionMap;
    constructor(commands: ExtHostCommands, _languageModels: ExtHostLanguageModels, _extHostRpc: IExtHostRpcService, _logService: ILogService);
    registerChatSessionItemProvider(extension: IExtensionDescription, chatSessionType: string, provider: vscode.ChatSessionItemProvider): vscode.Disposable;
    registerChatSessionContentProvider(extension: IExtensionDescription, chatSessionType: string, chatParticipant: vscode.ChatParticipant, provider: vscode.ChatSessionContentProvider, capabilities?: vscode.ChatSessionCapabilities): vscode.Disposable;
    showChatSession(_extension: IExtensionDescription, chatSessionType: string, sessionId: string, options: vscode.ChatSessionShowOptions | undefined): Promise<void>;
    private convertChatSessionStatus;
    private convertChatSessionItem;
    $provideNewChatSessionItem(handle: number, options: {
        request: IChatAgentRequest;
        metadata?: any;
    }, token: CancellationToken): Promise<IChatSessionItem>;
    $provideChatSessionItems(handle: number, token: vscode.CancellationToken): Promise<IChatSessionItem[]>;
    private readonly _extHostChatSessions;
    $provideChatSessionContent(handle: number, id: string, token: CancellationToken): Promise<ChatSessionDto>;
    $interruptChatSessionActiveResponse(providerHandle: number, sessionId: string, requestId: string): Promise<void>;
    $disposeChatSessionContent(providerHandle: number, sessionId: string): Promise<void>;
    $invokeChatSessionRequestHandler(handle: number, id: string, request: IChatAgentRequest, history: any[], token: CancellationToken): Promise<IChatAgentResult>;
    private getModelForRequest;
}
