import z from 'zod/v4';
import type { ToolName, PublishedToolName } from './constants';
import type { ToolMessage } from '../types/messages/codebuff-message';
import type { ToolCallPart, ToolResultPart } from '../types/messages/content-part';
export declare const $toolParams: {
    add_message: {
        toolName: "add_message";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            role: z.ZodEnum<{
                user: "user";
                assistant: "assistant";
            }>;
            content: z.ZodString;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[], null>;
    };
    add_subgoal: {
        toolName: "add_subgoal";
        endsAgentStep: false;
        parameters: z.ZodObject<{
            id: z.ZodString;
            objective: z.ZodString;
            status: z.ZodEnum<{
                NOT_STARTED: "NOT_STARTED";
                IN_PROGRESS: "IN_PROGRESS";
                COMPLETE: "COMPLETE";
                ABORTED: "ABORTED";
            }>;
            plan: z.ZodOptional<z.ZodString>;
            log: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodObject<{
                message: z.ZodString;
            }, z.core.$strip>;
        }, z.core.$strip>], null>;
    };
    browser_logs: {
        toolName: "browser_logs";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            type: z.ZodString;
            url: z.ZodString;
            waitUntil: z.ZodOptional<z.ZodEnum<{
                networkidle0: "networkidle0";
                load: "load";
                domcontentloaded: "domcontentloaded";
            }>>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodObject<{
                success: z.ZodBoolean;
                error: z.ZodOptional<z.ZodString>;
                logs: z.ZodArray<z.ZodObject<{
                    type: z.ZodEnum<{
                        error: "error";
                        warning: "warning";
                        info: "info";
                        debug: "debug";
                        verbose: "verbose";
                    }>;
                    message: z.ZodString;
                    timestamp: z.ZodNumber;
                    location: z.ZodOptional<z.ZodString>;
                    stack: z.ZodOptional<z.ZodString>;
                    category: z.ZodOptional<z.ZodString>;
                    level: z.ZodOptional<z.ZodNumber>;
                    source: z.ZodDefault<z.ZodEnum<{
                        tool: "tool";
                        browser: "browser";
                    }>>;
                }, z.core.$strip>>;
                logFilter: z.ZodOptional<z.ZodObject<{
                    types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
                        error: "error";
                        warning: "warning";
                        info: "info";
                        debug: "debug";
                        verbose: "verbose";
                    }>>>;
                    minLevel: z.ZodOptional<z.ZodNumber>;
                    categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
                }, z.core.$strip>>;
                networkEvents: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    url: z.ZodString;
                    method: z.ZodString;
                    status: z.ZodOptional<z.ZodNumber>;
                    errorText: z.ZodOptional<z.ZodString>;
                    timestamp: z.ZodNumber;
                }, z.core.$strip>>>;
                metrics: z.ZodOptional<z.ZodObject<{
                    loadTime: z.ZodNumber;
                    memoryUsage: z.ZodNumber;
                    jsErrors: z.ZodNumber;
                    networkErrors: z.ZodNumber;
                    ttfb: z.ZodOptional<z.ZodNumber>;
                    lcp: z.ZodOptional<z.ZodNumber>;
                    fcp: z.ZodOptional<z.ZodNumber>;
                    domContentLoaded: z.ZodOptional<z.ZodNumber>;
                    sessionDuration: z.ZodOptional<z.ZodNumber>;
                }, z.core.$strip>>;
                screenshots: z.ZodOptional<z.ZodObject<{
                    pre: z.ZodOptional<z.ZodObject<{
                        type: z.ZodLiteral<"image">;
                        source: z.ZodObject<{
                            type: z.ZodLiteral<"base64">;
                            media_type: z.ZodLiteral<"image/jpeg">;
                            data: z.ZodString;
                        }, z.core.$strip>;
                    }, z.core.$strip>>;
                    post: z.ZodObject<{
                        type: z.ZodLiteral<"image">;
                        source: z.ZodObject<{
                            type: z.ZodLiteral<"base64">;
                            media_type: z.ZodLiteral<"image/jpeg">;
                            data: z.ZodString;
                        }, z.core.$strip>;
                    }, z.core.$strip>;
                }, z.core.$strip>>;
            }, z.core.$strip>;
        }, z.core.$strip>], null>;
    };
    code_search: {
        toolName: "code_search";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            pattern: z.ZodString;
            flags: z.ZodOptional<z.ZodString>;
            cwd: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodUnion<readonly [z.ZodObject<{
                stdout: z.ZodString;
                stderr: z.ZodOptional<z.ZodString>;
                exitCode: z.ZodOptional<z.ZodNumber>;
                message: z.ZodString;
            }, z.core.$strip>, z.ZodObject<{
                errorMessage: z.ZodString;
            }, z.core.$strip>]>;
        }, z.core.$strip>], null>;
    };
    create_plan: {
        toolName: "create_plan";
        endsAgentStep: false;
        parameters: z.ZodObject<{
            path: z.ZodString;
            plan: z.ZodString;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodUnion<readonly [z.ZodObject<{
                file: z.ZodString;
                message: z.ZodString;
                unifiedDiff: z.ZodString;
            }, z.core.$strip>, z.ZodObject<{
                file: z.ZodString;
                errorMessage: z.ZodString;
                patch: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>]>;
        }, z.core.$strip>], null>;
    };
    end_turn: {
        toolName: "end_turn";
        endsAgentStep: true;
        parameters: z.ZodObject<{}, z.core.$strip>;
        outputs: z.ZodTuple<[], null>;
    };
    find_files: {
        toolName: "find_files";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            prompt: z.ZodString;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodUnion<readonly [z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
                path: z.ZodString;
                content: z.ZodString;
                referencedBy: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>, z.ZodObject<{
                path: z.ZodString;
                contentOmittedForLength: z.ZodLiteral<true>;
            }, z.core.$strip>]>>, z.ZodObject<{
                message: z.ZodString;
            }, z.core.$strip>]>;
        }, z.core.$strip>], null>;
    };
    read_docs: {
        toolName: "read_docs";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            libraryTitle: z.ZodString;
            topic: z.ZodString;
            max_tokens: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodObject<{
                documentation: z.ZodString;
            }, z.core.$strip>;
        }, z.core.$strip>], null>;
    };
    read_files: {
        toolName: "read_files";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            paths: z.ZodArray<z.ZodString>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
                path: z.ZodString;
                content: z.ZodString;
                referencedBy: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>, z.ZodObject<{
                path: z.ZodString;
                contentOmittedForLength: z.ZodLiteral<true>;
            }, z.core.$strip>]>>;
        }, z.core.$strip>], null>;
    };
    run_file_change_hooks: {
        toolName: "run_file_change_hooks";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            files: z.ZodArray<z.ZodString>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodArray<z.ZodUnion<readonly [z.ZodIntersection<z.ZodUnion<readonly [z.ZodObject<{
                command: z.ZodString;
                startingCwd: z.ZodOptional<z.ZodString>;
                message: z.ZodOptional<z.ZodString>;
                stderr: z.ZodOptional<z.ZodString>;
                stdout: z.ZodOptional<z.ZodString>;
                exitCode: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strip>, z.ZodObject<{
                command: z.ZodString;
                startingCwd: z.ZodOptional<z.ZodString>;
                message: z.ZodOptional<z.ZodString>;
                stderr: z.ZodOptional<z.ZodString>;
                stdoutOmittedForLength: z.ZodLiteral<true>;
                exitCode: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strip>, z.ZodObject<{
                command: z.ZodString;
                processId: z.ZodNumber;
                backgroundProcessStatus: z.ZodEnum<{
                    error: "error";
                    running: "running";
                    completed: "completed";
                }>;
            }, z.core.$strip>, z.ZodObject<{
                command: z.ZodString;
                errorMessage: z.ZodString;
            }, z.core.$strip>]>, z.ZodObject<{
                hookName: z.ZodString;
            }, z.core.$strip>>, z.ZodObject<{
                errorMessage: z.ZodString;
            }, z.core.$strip>]>>;
        }, z.core.$strip>], null>;
    };
    run_terminal_command: {
        toolName: "run_terminal_command";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            command: z.ZodString;
            process_type: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
                SYNC: "SYNC";
                BACKGROUND: "BACKGROUND";
            }>>>;
            cwd: z.ZodOptional<z.ZodString>;
            timeout_seconds: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodUnion<readonly [z.ZodObject<{
                command: z.ZodString;
                startingCwd: z.ZodOptional<z.ZodString>;
                message: z.ZodOptional<z.ZodString>;
                stderr: z.ZodOptional<z.ZodString>;
                stdout: z.ZodOptional<z.ZodString>;
                exitCode: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strip>, z.ZodObject<{
                command: z.ZodString;
                startingCwd: z.ZodOptional<z.ZodString>;
                message: z.ZodOptional<z.ZodString>;
                stderr: z.ZodOptional<z.ZodString>;
                stdoutOmittedForLength: z.ZodLiteral<true>;
                exitCode: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strip>, z.ZodObject<{
                command: z.ZodString;
                processId: z.ZodNumber;
                backgroundProcessStatus: z.ZodEnum<{
                    error: "error";
                    running: "running";
                    completed: "completed";
                }>;
            }, z.core.$strip>, z.ZodObject<{
                command: z.ZodString;
                errorMessage: z.ZodString;
            }, z.core.$strip>]>;
        }, z.core.$strip>], null>;
    };
    set_messages: {
        toolName: "set_messages";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            messages: z.ZodAny;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[], null>;
    };
    set_output: {
        toolName: "set_output";
        endsAgentStep: false;
        parameters: z.ZodObject<{}, z.core.$loose>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodObject<{
                message: z.ZodString;
            }, z.core.$strip>;
        }, z.core.$strip>], null>;
    };
    spawn_agents: {
        toolName: "spawn_agents";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            agents: z.ZodArray<z.ZodObject<{
                agent_type: z.ZodString;
                prompt: z.ZodOptional<z.ZodString>;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodArray<z.ZodIntersection<z.ZodObject<{
                agentType: z.ZodString;
            }, z.core.$strip>, z.ZodType<import("../types/json").JSONObject, unknown, z.core.$ZodTypeInternals<import("../types/json").JSONObject, unknown>>>>;
        }, z.core.$strip>], null>;
    };
    spawn_agents_async: {
        toolName: "spawn_agents_async";
        endsAgentStep: false;
        parameters: z.ZodObject<{
            agents: z.ZodArray<z.ZodObject<{
                agent_type: z.ZodString;
                prompt: z.ZodOptional<z.ZodString>;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodUnion<readonly [z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
                agentType: z.ZodString;
                success: z.ZodLiteral<true>;
                agentId: z.ZodString;
            }, z.core.$strip>, z.ZodObject<{
                agentType: z.ZodString;
                success: z.ZodLiteral<false>;
                errorMessage: z.ZodString;
            }, z.core.$strip>]>>, z.ZodArray<z.ZodIntersection<z.ZodObject<{
                agentType: z.ZodString;
            }, z.core.$strip>, z.ZodType<import("../types/json").JSONObject, unknown, z.core.$ZodTypeInternals<import("../types/json").JSONObject, unknown>>>>]>;
        }, z.core.$strip>], null>;
    };
    spawn_agent_inline: {
        toolName: "spawn_agent_inline";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            agent_type: z.ZodString;
            prompt: z.ZodOptional<z.ZodString>;
            params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[], null>;
    };
    str_replace: {
        toolName: "str_replace";
        endsAgentStep: false;
        parameters: z.ZodObject<{
            path: z.ZodString;
            replacements: z.ZodArray<z.ZodObject<{
                old: z.ZodString;
                new: z.ZodString;
                allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodUnion<readonly [z.ZodObject<{
                file: z.ZodString;
                message: z.ZodString;
                unifiedDiff: z.ZodString;
            }, z.core.$strip>, z.ZodObject<{
                file: z.ZodString;
                errorMessage: z.ZodString;
                patch: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>]>;
        }, z.core.$strip>], null>;
    };
    think_deeply: {
        toolName: "think_deeply";
        endsAgentStep: false;
        parameters: z.ZodObject<{
            thought: z.ZodString;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[], null>;
    };
    update_subgoal: {
        toolName: "update_subgoal";
        endsAgentStep: false;
        parameters: z.ZodObject<{
            id: z.ZodString;
            status: z.ZodOptional<z.ZodEnum<{
                NOT_STARTED: "NOT_STARTED";
                IN_PROGRESS: "IN_PROGRESS";
                COMPLETE: "COMPLETE";
                ABORTED: "ABORTED";
            }>>;
            plan: z.ZodOptional<z.ZodString>;
            log: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodObject<{
                message: z.ZodString;
            }, z.core.$strip>;
        }, z.core.$strip>], null>;
    };
    web_search: {
        toolName: "web_search";
        endsAgentStep: true;
        parameters: z.ZodObject<{
            query: z.ZodString;
            depth: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
                standard: "standard";
                deep: "deep";
            }>>>;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodUnion<readonly [z.ZodObject<{
                result: z.ZodString;
            }, z.core.$strip>, z.ZodObject<{
                errorMessage: z.ZodString;
            }, z.core.$strip>]>;
        }, z.core.$strip>], null>;
    };
    write_file: {
        toolName: "write_file";
        endsAgentStep: false;
        parameters: z.ZodObject<{
            path: z.ZodString;
            instructions: z.ZodString;
            content: z.ZodString;
        }, z.core.$strip>;
        outputs: z.ZodTuple<[z.ZodObject<{
            type: z.ZodLiteral<"json">;
            value: z.ZodUnion<readonly [z.ZodObject<{
                file: z.ZodString;
                message: z.ZodString;
                unifiedDiff: z.ZodString;
            }, z.core.$strip>, z.ZodObject<{
                file: z.ZodString;
                errorMessage: z.ZodString;
                patch: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>]>;
        }, z.core.$strip>], null>;
    };
};
export type CodebuffToolCall<T extends ToolName = ToolName> = {
    [K in ToolName]: {
        toolName: K;
        input: z.infer<(typeof $toolParams)[K]['parameters']>;
    } & Omit<ToolCallPart, 'type'>;
}[T];
export type CodebuffToolOutput<T extends ToolName = ToolName> = {
    [K in ToolName]: z.infer<(typeof $toolParams)[K]['outputs']>;
}[T];
export type CodebuffToolResult<T extends ToolName = ToolName> = {
    [K in ToolName]: {
        toolName: K;
        output: CodebuffToolOutput<K>;
    } & Omit<ToolResultPart, 'type'>;
}[T];
export type CodebuffToolMessage<T extends ToolName = ToolName> = ToolMessage & {
    [K in ToolName]: {
        toolName: K;
        content: {
            output: CodebuffToolOutput<K>;
        };
    };
}[T];
export type ClientToolName = (typeof clientToolNames)[number];
export declare const clientToolCallSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    toolName: z.ZodLiteral<"browser_logs">;
    input: z.ZodObject<{
        type: z.ZodString;
        url: z.ZodString;
        waitUntil: z.ZodOptional<z.ZodEnum<{
            networkidle0: "networkidle0";
            load: "load";
            domcontentloaded: "domcontentloaded";
        }>>;
    }, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
    toolName: z.ZodLiteral<"code_search">;
    input: z.ZodObject<{
        pattern: z.ZodString;
        flags: z.ZodOptional<z.ZodString>;
        cwd: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
    toolName: z.ZodLiteral<"create_plan">;
    input: z.ZodObject<{
        type: z.ZodEnum<{
            file: "file";
            patch: "patch";
        }>;
        path: z.ZodString;
        content: z.ZodString;
    }, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
    toolName: z.ZodLiteral<"run_file_change_hooks">;
    input: z.ZodObject<{
        files: z.ZodArray<z.ZodString>;
    }, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
    toolName: z.ZodLiteral<"run_terminal_command">;
    input: z.ZodIntersection<z.ZodObject<{
        command: z.ZodString;
        process_type: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
            SYNC: "SYNC";
            BACKGROUND: "BACKGROUND";
        }>>>;
        cwd: z.ZodOptional<z.ZodString>;
        timeout_seconds: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        mode: z.ZodEnum<{
            user: "user";
            assistant: "assistant";
        }>;
    }, z.core.$strip>>;
}, z.core.$strip>, z.ZodObject<{
    toolName: z.ZodLiteral<"str_replace">;
    input: z.ZodObject<{
        type: z.ZodEnum<{
            file: "file";
            patch: "patch";
        }>;
        path: z.ZodString;
        content: z.ZodString;
    }, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
    toolName: z.ZodLiteral<"write_file">;
    input: z.ZodObject<{
        type: z.ZodEnum<{
            file: "file";
            patch: "patch";
        }>;
        path: z.ZodString;
        content: z.ZodString;
    }, z.core.$strip>;
}, z.core.$strip>]>;
export declare const clientToolNames: ("code_search" | "run_file_change_hooks" | "run_terminal_command" | "str_replace" | "write_file" | "create_plan" | "browser_logs")[];
export type ClientToolCall<T extends ClientToolName = ClientToolName> = z.infer<typeof clientToolCallSchema> & {
    toolName: T;
} & Omit<ToolCallPart, 'type'>;
export type PublishedClientToolName = ClientToolName & PublishedToolName;
//# sourceMappingURL=list.d.ts.map