import type { LevelCodeToolHandlerFunction } from './handler-function-type';
/**
 * Each value in this record that:
 * - Will be called immediately once it is parsed out of the stream.
 * - Takes as argument
 *   - The previous tool call (to await)
 *   - The LevelCodeToolCall for the current tool
 *   - Any additional arguments for the tool
 * - Returns a promise that will be awaited
 */
export declare const levelcodeToolHandlers: {
    add_message: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"add_message">;
        agentState: import("@levelcode/common/types/session-state").AgentState;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"add_message">;
    }>;
    add_subgoal: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"add_subgoal">;
        agentContext: Record<string, import("@levelcode/common/types/session-state").Subgoal>;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"add_subgoal">;
    }>;
    ask_user: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"ask_user">;
        requestClientToolCall: (toolCall: any) => Promise<any>;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"ask_user">;
    }>;
    browser_logs: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"browser_logs">;
        requestClientToolCall: (toolCall: import("src").ClientToolCall<"browser_logs">) => Promise<import("src").LevelCodeToolOutput<"browser_logs">>;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"browser_logs">;
    }>;
    code_search: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"code_search">;
        requestClientToolCall: (toolCall: import("src").ClientToolCall<"code_search">) => Promise<import("src").LevelCodeToolOutput<"code_search">>;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"code_search">;
    }>;
    create_plan: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"create_plan">;
        fileProcessingState: import("./tool/write-file").FileProcessingState;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        requestClientToolCall: (toolCall: import("src").ClientToolCall<"create_plan">) => Promise<import("src").LevelCodeToolOutput<"create_plan">>;
        writeToClient: (chunk: string) => void;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"create_plan">;
    }>;
    end_turn: (params: {
        previousToolCallFinished: Promise<any>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"end_turn">;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"end_turn">;
    }>;
    find_files: (params: {
        previousToolCallFinished: Promise<any>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"find_files">;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        agentState: import("@levelcode/common/types/session-state").AgentState;
        agentStepId: string;
        clientSessionId: string;
        fileContext: import("@levelcode/common/util/file").ProjectFileContext;
        fingerprintId: string;
        repoId: string | undefined;
        userId: string | undefined;
        userInputId: string;
    } & import("@levelcode/common/types/function-params").ParamsExcluding<typeof import("../../find-files/request-files-prompt").requestRelevantFiles, "messages" | "system" | "assistantPrompt"> & import("@levelcode/common/types/function-params").ParamsExcluding<(params: {
        requestFiles: import("@levelcode/common/types/contracts/client").RequestFilesFn;
    } & import("@levelcode/common/types/function-params").ParamsOf<typeof import("../../find-files/request-files-prompt").requestRelevantFilesForTraining>) => Promise<void>, "messages" | "system" | "assistantPrompt"> & import("@levelcode/common/types/function-params").ParamsExcluding<typeof import("../../get-file-reading-updates").getFileReadingUpdates, "requestedFiles">) => Promise<{
        output: import("src").LevelCodeToolOutput<"find_files">;
    }>;
    glob: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"glob">;
        requestClientToolCall: (toolCall: import("src").ClientToolCall<"glob">) => Promise<import("src").LevelCodeToolOutput<"glob">>;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"glob">;
    }>;
    list_directory: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"list_directory">;
        requestClientToolCall: (toolCall: import("src").ClientToolCall<"list_directory">) => Promise<import("src").LevelCodeToolOutput<"list_directory">>;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"list_directory">;
    }>;
    lookup_agent_info: (params: {
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"lookup_agent_info">;
        previousToolCallFinished: Promise<void>;
        apiKey: string;
        databaseAgentCache: Map<string, import("@levelcode/common/types/agent-template").AgentTemplate | null>;
        localAgentTemplates: Record<string, import("@levelcode/common/types/agent-template").AgentTemplate>;
        logger: import("@levelcode/common/types/agent-template").Logger;
        fetchAgentFromDatabase: import("@levelcode/common/types/contracts/database").FetchAgentFromDatabaseFn;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"lookup_agent_info">;
    }>;
    propose_str_replace: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"propose_str_replace">;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        agentState: import("@levelcode/common/types/session-state").AgentState;
        runId: string;
        requestOptionalFile: import("@levelcode/common/types/contracts/client").RequestOptionalFileFn;
    } & import("@levelcode/common/types/function-params").ParamsExcluding<import("@levelcode/common/types/contracts/client").RequestOptionalFileFn, "filePath">) => Promise<{
        output: import("src").LevelCodeToolOutput<"propose_str_replace">;
    }>;
    propose_write_file: LevelCodeToolHandlerFunction<"propose_write_file">;
    read_docs: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"read_docs">;
        agentStepId: string;
        clientSessionId: string;
        fingerprintId: string;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        repoId: string | undefined;
        userId: string | undefined;
        userInputId: string;
        clientEnv: import("@levelcode/common/env-schema").ClientEnv;
        ciEnv: import("@levelcode/common/types/contracts/env").CiEnv;
    } & import("@levelcode/common/types/function-params").ParamsExcluding<typeof import("../../llm-api/context7-api").fetchContext7LibraryDocumentation, "query" | "topic" | "tokens">) => Promise<{
        output: import("src").LevelCodeToolOutput<"read_docs">;
        creditsUsed: number;
    }>;
    read_files: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"read_files">;
        fileContext: import("@levelcode/common/util/file").ProjectFileContext;
    } & import("@levelcode/common/types/function-params").ParamsExcluding<typeof import("../../get-file-reading-updates").getFileReadingUpdates, "requestedFiles">) => Promise<{
        output: import("src").LevelCodeToolOutput<"read_files">;
    }>;
    read_subtree: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"read_subtree">;
        fileContext: import("@levelcode/common/util/file").ProjectFileContext;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"read_subtree">;
    }>;
    run_file_change_hooks: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"run_file_change_hooks">;
        requestClientToolCall: (toolCall: import("src").ClientToolCall<"run_file_change_hooks">) => Promise<import("src").LevelCodeToolOutput<"run_file_change_hooks">>;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"run_file_change_hooks">;
    }>;
    run_terminal_command: ({ previousToolCallFinished, toolCall, requestClientToolCall, }: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"run_terminal_command">;
        requestClientToolCall: (toolCall: import("src").ClientToolCall<"run_terminal_command">) => Promise<import("src").LevelCodeToolOutput<"run_terminal_command">>;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"run_terminal_command">;
    }>;
    set_messages: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"set_messages">;
        agentState: import("@levelcode/common/types/session-state").AgentState;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"set_messages">;
    }>;
    set_output: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"set_output">;
        agentState: import("@levelcode/common/types/session-state").AgentState;
        apiKey: string;
        databaseAgentCache: Map<string, import("@levelcode/common/types/agent-template").AgentTemplate | null>;
        localAgentTemplates: Record<string, import("@levelcode/common/types/agent-template").AgentTemplate>;
        logger: import("@levelcode/common/types/agent-template").Logger;
        fetchAgentFromDatabase: import("@levelcode/common/types/contracts/database").FetchAgentFromDatabaseFn;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"set_output">;
    }>;
    skill: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"skill">;
        fileContext: import("@levelcode/common/util/file").ProjectFileContext;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"skill">;
    }>;
    spawn_agents: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"spawn_agents">;
        agentState: import("@levelcode/common/types/session-state").AgentState;
        agentTemplate: import("@levelcode/common/types/agent-template").AgentTemplate;
        fingerprintId: string;
        localAgentTemplates: Record<string, import("@levelcode/common/types/agent-template").AgentTemplate>;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        system: string;
        tools?: import("ai").ToolSet;
        trackEvent: import("@levelcode/common/types/contracts/analytics").TrackEventFn;
        userId: string | undefined;
        userInputId: string;
        sendSubagentChunk: import("./tool/spawn-agents").SendSubagentChunk;
        writeToClient: (chunk: string | import("src").PrintModeEvent) => void;
    } & import("@levelcode/common/types/function-params").ParamsExcluding<typeof import("./tool/spawn-agent-utils").validateAndGetAgentTemplate, "agentTypeStr" | "parentAgentTemplate"> & import("@levelcode/common/types/function-params").ParamsExcluding<typeof import("./tool/spawn-agent-utils").executeSubagent, "userInputId" | "prompt" | "spawnParams" | "agentTemplate" | "parentAgentState" | "agentState" | "fingerprintId" | "isOnlyChild" | "parentSystemPrompt" | "parentTools" | "onResponseChunk">) => Promise<{
        output: import("src").LevelCodeToolOutput<"spawn_agents">;
    }>;
    spawn_agent_inline: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"spawn_agent_inline">;
        agentState: import("@levelcode/common/types/session-state").AgentState;
        agentTemplate: import("@levelcode/common/types/agent-template").AgentTemplate;
        clientSessionId: string;
        fileContext: import("@levelcode/common/util/file").ProjectFileContext;
        fingerprintId: string;
        localAgentTemplates: Record<string, import("@levelcode/common/types/agent-template").AgentTemplate>;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        system: string;
        tools: import("ai").ToolSet;
        userId: string | undefined;
        userInputId: string;
        writeToClient: (chunk: string | import("src").PrintModeEvent) => void;
    } & import("@levelcode/common/types/function-params").ParamsExcluding<typeof import("./tool/spawn-agent-utils").executeSubagent, "userInputId" | "prompt" | "spawnParams" | "agentTemplate" | "parentAgentState" | "agentState" | "parentSystemPrompt" | "parentTools" | "onResponseChunk" | "clearUserPromptMessagesAfterResponse" | "fingerprintId">) => Promise<{
        output: import("src").LevelCodeToolOutput<"spawn_agent_inline">;
    }>;
    str_replace: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"str_replace">;
        fileProcessingState: import("./tool/write-file").FileProcessingState;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        requestClientToolCall: (toolCall: import("src").ClientToolCall<"str_replace">) => Promise<import("src").LevelCodeToolOutput<"str_replace">>;
        writeToClient: (chunk: string) => void;
        requestOptionalFile: import("@levelcode/common/types/contracts/client").RequestOptionalFileFn;
    } & import("@levelcode/common/types/function-params").ParamsExcluding<import("@levelcode/common/types/contracts/client").RequestOptionalFileFn, "filePath">) => Promise<{
        output: import("src").LevelCodeToolOutput<"str_replace">;
    }>;
    suggest_followups: (params: {
        previousToolCallFinished: Promise<unknown>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"suggest_followups">;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"suggest_followups">;
    }>;
    task_completed: ({ previousToolCallFinished, trackEvent, userId, logger, agentTemplate, }: {
        previousToolCallFinished: Promise<any>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"task_completed">;
        trackEvent: import("@levelcode/common/types/contracts/analytics").TrackEventFn;
        userId: string | undefined;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        agentTemplate: {
            name: string;
        };
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"task_completed">;
    }>;
    task_create: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"task_create">;
        agentStepId: string;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"task_create">;
    }>;
    task_get: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"task_get">;
        agentStepId: string;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"task_get">;
    }>;
    task_list: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"task_list">;
        agentStepId: string;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"task_list">;
    }>;
    task_update: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"task_update">;
        agentStepId: string;
        trackEvent: import("@levelcode/common/types/contracts/analytics").TrackEventFn;
        userId: string | undefined;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"task_update">;
    }>;
    send_message: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"send_message">;
        agentStepId: string;
        trackEvent: import("@levelcode/common/types/contracts/analytics").TrackEventFn;
        userId: string | undefined;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"send_message">;
    }>;
    team_create: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"team_create">;
        agentStepId: string;
        trackEvent: import("@levelcode/common/types/contracts/analytics").TrackEventFn;
        userId: string | undefined;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"team_create">;
    }>;
    team_delete: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"team_delete">;
        agentStepId: string;
        trackEvent: import("@levelcode/common/types/contracts/analytics").TrackEventFn;
        userId: string | undefined;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"team_delete">;
    }>;
    think_deeply: (params: {
        previousToolCallFinished: Promise<any>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"think_deeply">;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"think_deeply">;
    }>;
    update_subgoal: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"update_subgoal">;
        agentContext: Record<string, import("@levelcode/common/types/session-state").Subgoal>;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"update_subgoal">;
    }>;
    web_search: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"web_search">;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        apiKey: string;
        agentStepId: string;
        clientSessionId: string;
        fingerprintId: string;
        repoId: string | undefined;
        repoUrl: string | undefined;
        userInputId: string;
        userId: string | undefined;
        fetch: typeof globalThis.fetch;
        clientEnv: import("@levelcode/common/env-schema").ClientEnv;
        ciEnv: import("@levelcode/common/types/contracts/env").CiEnv;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"web_search">;
        creditsUsed: number;
    }>;
    write_file: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"write_file">;
        agentState: import("@levelcode/common/types/session-state").AgentState;
        clientSessionId: string;
        fileProcessingState: import("./tool/write-file").FileProcessingState;
        fingerprintId: string;
        logger: import("@levelcode/common/types/contracts/logger").Logger;
        prompt: string | undefined;
        userId: string | undefined;
        userInputId: string;
        requestClientToolCall: (toolCall: import("src").ClientToolCall<"write_file">) => Promise<import("src").LevelCodeToolOutput<"write_file">>;
        requestOptionalFile: import("@levelcode/common/types/contracts/client").RequestOptionalFileFn;
        writeToClient: (chunk: string) => void;
    } & import("@levelcode/common/types/function-params").ParamsExcluding<typeof import("../../process-file-block").processFileBlock, "path" | "instructions" | "fingerprintId" | "initialContentPromise" | "newContent" | "messages" | "lastUserPrompt"> & import("@levelcode/common/types/function-params").ParamsExcluding<import("@levelcode/common/types/contracts/client").RequestOptionalFileFn, "filePath">) => Promise<{
        output: import("src").LevelCodeToolOutput<"write_file">;
    }>;
    write_todos: (params: {
        previousToolCallFinished: Promise<void>;
        toolCall: import("@levelcode/common/tools/list").LevelCodeToolCall<"write_todos">;
    }) => Promise<{
        output: import("src").LevelCodeToolOutput<"write_todos">;
    }>;
};
