export type RuntimeSchedulerPriority = "high" | "normal" | "low"; export interface RuntimeSchedulerPolicy { globalConcurrency: number; providerConcurrency: number; maxQueueSize: number; circuitBreakerFailures: number; circuitBreakerCooldownMs: number; } export interface RuntimeSchedulerTask { provider: string; taskId?: string; role?: string; priority?: RuntimeSchedulerPriority; run: () => Promise; } export interface RuntimeSchedulerSnapshot { active: number; queued: number; activeByProvider: Record; queuedByProvider: Record; openCircuits: Array<{ provider: string; failures: number; openedUntil: string; }>; } export interface RuntimeSchedulerEvent { type: "queued" | "started" | "completed" | "failed" | "rejected_backpressure" | "rejected_circuit_open"; provider: string; taskId?: string; role?: string; active: number; queued: number; timestamp: string; reason?: string; } export declare class RuntimeSchedulerError extends Error { readonly code: "backpressure" | "circuit_open"; constructor(code: RuntimeSchedulerError["code"], message: string); } export declare class RuntimeScheduler { private readonly policy; private readonly queue; private readonly activeByProvider; private readonly circuits; private readonly events; private active; private nextId; constructor(policy: RuntimeSchedulerPolicy); schedule(input: RuntimeSchedulerTask): Promise; snapshot(): RuntimeSchedulerSnapshot; drainEvents(): RuntimeSchedulerEvent[]; private startNow; private drain; private canStart; private assertCircuitClosed; private recordFailure; private resetCircuit; private sortQueue; private record; } export declare const DEFAULT_RUNTIME_SCHEDULER_POLICY: RuntimeSchedulerPolicy; export declare const defaultRuntimeScheduler: RuntimeScheduler; export declare function scheduleRuntimeProviderCall(input: RuntimeSchedulerTask, scheduler?: RuntimeScheduler): Promise;