import type { AgentType, Provider, MultiModelConfig } from '../types.js'; import type { AgentConfig } from '../types/config.js'; import type { Session } from '../types/run-result.js'; export type ProviderAuthMode = 'oauth' | 'api-key'; export interface AuthFailureDetails { code: 'missing_credentials' | 'invalid_api_key'; message: string; } export declare function resolveConfiguredApiKey(agentConfig: Pick, env?: NodeJS.ProcessEnv): string | undefined; export declare function resolveConfiguredAuthMode(agentConfig: Pick, env?: NodeJS.ProcessEnv): ProviderAuthMode; /** * Recognise an auth failure from a runner's error MESSAGE. * * Message-based on purpose: the error CODE is runner-specific and says only where the failure * surfaced (`codex_error`, `sdk_execution_error`, `turn_failed`), while the provider's own auth * text is what distinguishes "no credentials" from "the key was rejected". This took an * `errorCode` argument that every caller passed and nothing read — which made the codes look * load-bearing to anyone extending the classifier. */ export declare function classifyAuthFailure(args: { tier: AgentType; provider: 'claude' | 'codex'; errorMessage?: string; }): AuthFailureDetails | null; export declare class SafetyCeilingExceededError extends Error { readonly code = "safety_ceiling_exceeded"; constructor(current: number, ceiling: number); } export declare class TaskSessionLimitExceededError extends Error { readonly code = "task_session_limit_exceeded"; constructor(taskKey: string, limit: number); } export declare class MissingTaskIdentityError extends Error { readonly code = "missing_task_identity"; constructor(); } /** Test-only snapshot of the per-task live-sessions map. * Returns Maps of sessionId → Session (handles included). */ export declare function __liveByTask(): Map>; export declare function __setCoreTestProviderOverride(provider: Provider | null): void; export declare function __setCoreTestProviderOverrideMap(map: Map | null): void; export declare function createProvider(slot: AgentType, config: MultiModelConfig): Provider; //# sourceMappingURL=provider-factory.d.ts.map