import { Injector } from '@opensumi/di';
import { ChatInternalService } from '@opensumi/ide-ai-native/lib/browser/chat/chat.internal.service';
import { IInlineChatFeatureRegistry } from '@opensumi/ide-ai-native/lib/browser/types';
import { IChatAgentService } from '@opensumi/ide-ai-native/lib/common';
import { IRPCProtocol } from '@opensumi/ide-connection';
import { IChatProgress } from '@opensumi/ide-core-common';
import { IChatInputParam, IExtensionChatAgentMetadata, IInlineChatPreviewProviderMetadata, IMainThreadChatAgents } from '../../common/sumi/chat-agents';
export declare class MainThreadChatAgents implements IMainThreadChatAgents {
    #private;
    private injector;
    private readonly agents;
    private readonly pendingProgress;
    private responsePartHandlePool;
    private readonly activeResponsePartPromises;
    /**
     * ai-native 由上层业务激活，对应的 service 可能不存在
     */
    get chatAgentService(): IChatAgentService | null;
    get inlineChatFeatureRegistry(): IInlineChatFeatureRegistry | null;
    get chatInternalService(): ChatInternalService | null;
    constructor(rpcProtocol: IRPCProtocol, injector: Injector);
    $registerInlineChatProvider(handle: number, name: string, metadata: IInlineChatPreviewProviderMetadata): void;
    $registerAgent(handle: number, name: string, metadata: IExtensionChatAgentMetadata): void;
    $updateAgent(handle: number, metadataUpdate: IExtensionChatAgentMetadata): void;
    $handleProgressChunk(requestId: string, progress: IChatProgress, responsePartHandle?: number): Promise<number | void>;
    $unregisterAgent(handle: number): void;
    $populateChatInput(handle: number, param: IChatInputParam): void;
    $sendMessage(chunk: IChatProgress): void;
    dispose(): void;
}
//# sourceMappingURL=main.thread.chat-agents.d.ts.map