import { z } from 'zod';
/**
 * Schema for model parameters configuration
 * Defines common parameters for language models
 */
export declare const ModelParametersSchema: z.ZodOptional<z.ZodObject<{
    temperature: z.ZodOptional<z.ZodNumber>;
    maxTokens: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    presencePenalty: z.ZodOptional<z.ZodNumber>;
    frequencyPenalty: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
    temperature?: number;
    maxTokens?: number;
    topP?: number;
    topK?: number;
    presencePenalty?: number;
    frequencyPenalty?: number;
    stopSequences?: string[];
}, {
    temperature?: number;
    maxTokens?: number;
    topP?: number;
    topK?: number;
    presencePenalty?: number;
    frequencyPenalty?: number;
    stopSequences?: string[];
}>>;
/**
 * Schema for model configuration
 * Defines the language model to use with an agent
 */
export declare const ModelConfigSchema: z.ZodObject<{
    provider: z.ZodString;
    name: z.ZodString;
    parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
    provider?: string;
    name?: string;
    parameters?: Record<string, unknown>;
}, {
    provider?: string;
    name?: string;
    parameters?: Record<string, unknown>;
}>;
/**
 * Schema for agent configuration
 * Defines the structure for an agent configuration file
 */
export declare const AgentConfigSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodString;
    role: z.ZodString;
    model: z.ZodObject<{
        provider: z.ZodString;
        name: z.ZodString;
        parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, "strip", z.ZodTypeAny, {
        provider?: string;
        name?: string;
        parameters?: Record<string, unknown>;
    }, {
        provider?: string;
        name?: string;
        parameters?: Record<string, unknown>;
    }>;
    tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    maxSteps: z.ZodOptional<z.ZodNumber>;
    maxRetries: z.ZodOptional<z.ZodNumber>;
    verbose: z.ZodOptional<z.ZodBoolean>;
    enableCaching: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    tools?: string[];
    name?: string;
    description?: string;
    role?: string;
    model?: {
        provider?: string;
        name?: string;
        parameters?: Record<string, unknown>;
    };
    maxSteps?: number;
    maxRetries?: number;
    verbose?: boolean;
    enableCaching?: boolean;
}, {
    tools?: string[];
    name?: string;
    description?: string;
    role?: string;
    model?: {
        provider?: string;
        name?: string;
        parameters?: Record<string, unknown>;
    };
    maxSteps?: number;
    maxRetries?: number;
    verbose?: boolean;
    enableCaching?: boolean;
}>;
export type ModelParameters = z.infer<typeof ModelParametersSchema>;
export type ModelConfig = z.infer<typeof ModelConfigSchema>;
export type AgentConfig = z.infer<typeof AgentConfigSchema>;
/**
 * Default agent configuration
 * Basic code assistant with Claude model
 */
export declare const DEFAULT_CODE_ASSISTANT: AgentConfig;
/**
 * Default review agent configuration
 * Specialized agent for code reviews
 */
export declare const DEFAULT_CODE_REVIEWER: AgentConfig;
