import type { FullToolInfo, JsonModelMessage } from '@polka-codes/core';
import type { z } from 'zod';
import type { CliWorkflowContext } from '../agent/types';
export interface AgentToolConfig {
    includeInteractive?: boolean;
    additionalTools?: {
        search?: FullToolInfo;
        mcpTools?: FullToolInfo[];
    };
}
export declare function buildAgentToolList(config?: AgentToolConfig): FullToolInfo[];
/**
 * Options for running an agent workflow
 */
export interface RunAgentWithSchemaOptions<T extends z.ZodSchema> {
    systemPrompt: string;
    userMessage: string;
    schema: T;
    tools?: FullToolInfo[];
    toolConfig?: AgentToolConfig;
    maxToolRoundTrips?: number;
    model?: string;
}
/**
 * Typed wrapper for agent workflow that ensures schema validation
 * and provides consistent error handling.
 */
export declare function runAgentWithSchema<T extends z.ZodSchema>(context: CliWorkflowContext, options: RunAgentWithSchemaOptions<T>): Promise<z.infer<T>>;
export interface RunAgentOptions {
    systemPrompt: string;
    userMessage: string;
    tools?: FullToolInfo[];
    toolConfig?: AgentToolConfig;
    maxToolRoundTrips?: number;
    model?: string;
}
export declare function runAgent(context: CliWorkflowContext, options: RunAgentOptions): Promise<string>;
export interface ContinueAgentOptions {
    messages: JsonModelMessage[];
    tools?: FullToolInfo[];
    toolConfig?: AgentToolConfig;
    maxToolRoundTrips?: number;
    model?: string;
}
export declare function continueAgent(context: CliWorkflowContext, options: ContinueAgentOptions): Promise<{
    message: string;
    messages: JsonModelMessage[];
}>;
//# sourceMappingURL=agent-builder.d.ts.map