import { CancellationToken } from "../../../../../base/common/cancellation.js";
import { Disposable } from "../../../../../base/common/lifecycle.js";
import { IConfigurationService } from "../../../../../platform/configuration/common/configuration.service.js";
import { ILogService } from "../../../../../platform/log/common/log.service.js";
import { IChatAgentService } from "../chatAgents.service.js";
import { IChatModeService } from "../chatModes.service.js";
import { IChatService } from "../chatService.service.js";
import { ILanguageModelsService } from "../languageModels.service.js";
import { CountTokensCallback, IPreparedToolInvocation, IToolData, IToolImpl, IToolInvocation, IToolInvocationPreparationContext, IToolResult, ToolProgress } from "../languageModelToolsService.js";
import { ILanguageModelToolsService } from "../languageModelToolsService.service.js";
export declare const RunSubagentToolId = "runSubagent";
export declare class RunSubagentTool extends Disposable implements IToolImpl {
    private readonly chatAgentService;
    private readonly chatService;
    private readonly chatModeService;
    private readonly languageModelToolsService;
    private readonly languageModelsService;
    private readonly logService;
    private readonly toolsService;
    private readonly configurationService;
    constructor(chatAgentService: IChatAgentService, chatService: IChatService, chatModeService: IChatModeService, languageModelToolsService: ILanguageModelToolsService, languageModelsService: ILanguageModelsService, logService: ILogService, toolsService: ILanguageModelToolsService, configurationService: IConfigurationService);
    getToolData(): IToolData;
    invoke(invocation: IToolInvocation, _countTokens: CountTokensCallback, _progress: ToolProgress, token: CancellationToken): Promise<IToolResult>;
    prepareToolInvocation(context: IToolInvocationPreparationContext, _token: CancellationToken): Promise<IPreparedToolInvocation | undefined>;
}
