import type { RunnerConfig } from "./domain/runner.js"; import type { SuiteWorkspaceConfig } from "./domain/case.js"; import { type ScheduleMode } from "./domain/schedule.js"; export declare const SNAPSHOT_METRICS: readonly ["totalTokens", "inputTokens", "outputTokens", "reasoningTokens", "cacheTokens"]; export type SnapshotMetric = (typeof SNAPSHOT_METRICS)[number]; export interface SnapshotToleranceConfig { absolute?: number; percent?: number; } export interface SnapshotConfig { path?: string; metric?: SnapshotMetric; tolerance: SnapshotToleranceConfig; } export interface SkillgymConfig { run?: { cwd?: string; outputDir?: string; reporter?: string; schedule?: ScheduleMode; workspace?: SuiteWorkspaceConfig; maxSteps?: number; maxParallel?: number; repeat?: number; repeatFailure?: number; retryFailed?: number; tags?: string[]; }; defaults?: { timeoutMs?: number; }; runners: Record; snapshots?: SnapshotConfig; } export interface LoadedSkillgymConfig { filePath?: string; config: SkillgymConfig; } export declare function loadConfig(options: { suitePath: string; configPath?: string; }): Promise; export declare function parseConfig(raw: unknown): SkillgymConfig; export declare function resolveRunOptions(cliOptions: { cwd?: string; outputDir?: string; schedule?: string; maxParallel?: string; repeat?: string; repeatFailure?: string; retryFailed?: string; tags?: string[]; }, config: SkillgymConfig): { cwd: string; outputDir?: string; schedule: ScheduleMode; maxParallel?: number; repeat: number; repeatFailure: number; retryFailed: number; tags: string[]; }; export declare function resolveReporterOptions(cliOptions: { reporter?: string; cwd?: string; }, loadedConfig: LoadedSkillgymConfig): { reporter?: string; cwd: string; }; export declare function getCaseExecutionOptions(case_: { timeoutMs?: number; }, config: SkillgymConfig): { timeoutMs: number; };