import type { Channel } from './channels.js';

export interface RetryPolicy {
  max_attempts: number; // 1 - 5
  backoff_ms: number;   // base backoff in ms
}

export type RoutingDefaults = Record<Channel, string[]>;
export type TimeoutConfig = Record<Channel, number>;

export type ChannelStrategy = 'failover' | 'round-robin';

export interface RoutingConfig {
  default: RoutingDefaults;
  strategies?: Partial<Record<Channel, ChannelStrategy>>;
  retry: RetryPolicy;
  timeout_ms: TimeoutConfig;
  circuit_breaker?: {
    failure_threshold?: number; // default 3
    recovery_time_seconds?: number; // default 20
  };
}

