import type { Employee, Session } from "./types.js"; /** * Resolve the effort level for a session. * * Valid effort levels come from the model registry (`validLevels`) for the * session's engine+model — NOT a hardcoded set — so e.g. codex's `xhigh` * validates and passes through instead of being silently dropped. Unknown or * unsupported levels are dropped with a logged warning (graceful degradation), * never a silent pass or a hard throw. * * For child sessions (has parentSessionId), resolution chain: * 1. config.engines..childEffortOverride — global cost-control knob * 2. session.effortLevel — COO's per-task judgment (from API body) * 3. employee.effortLevel — employee YAML default * 4. config.engines..effortLevel — engine fallback * * For non-child sessions, session.effortLevel wins when the user selected it in * the composer, then an assigned employee's default, then engine effortLevel. * * When the engine/model has no effort concept (validLevels empty, e.g. * Antigravity), returns the default without warnings — effort is just ignored. */ export declare function resolveEffort(engineConfig: { effortLevel?: string; childEffortOverride?: string; }, session: Pick, employee: Pick | null | undefined, validLevels: string[]): string; //# sourceMappingURL=effort.d.ts.map