import type { AgentConfig, SignalConfig, OperationType, ApprovalLevel } from './types.js'; /** On-disk config file schema (user-facing, more forgiving than AgentConfig) */ export interface AgentConfigFile { name?: string; description?: string; scope?: { allowedDirectories?: string[]; allowedCommands?: string[]; allowedUrls?: string[]; blockedPatterns?: string[]; maxFileSize?: number; }; limits?: { maxActionsPerHour?: number; maxTokensPerHour?: number; maxConcurrentSteps?: number; maxPlanSteps?: number; commandTimeoutMs?: number; maxSessionCostCents?: number; }; signals?: SignalConfig[]; approvalDefaults?: Partial>; modelId?: string; experienceStorePath?: string; controlPort?: number; jsonLogs?: boolean; } /** * Load agent config from .assay/agent.json, falling back to defaults. * Returns null if no config file exists. */ export declare function loadAgentConfigFile(targetPath: string): Promise; /** * Merge a config file's values into default AgentConfig. * CLI args take precedence over file config. */ export declare function mergeConfigFile(defaults: AgentConfig, file: AgentConfigFile): AgentConfig; /** * Generate a default .assay/agent.json config file. */ export declare function generateDefaultConfig(targetPath: string): Promise;