import { Config, Context, Duration, Layer, Redacted } from "effect"; export interface DdfRetryPolicy { readonly maxRetries?: number; readonly baseDelay?: Duration.Input; /** @deprecated use baseDelay */ readonly baseDelayMillis?: number; readonly retryableStatuses?: ReadonlyArray; } export interface DdfLogger { readonly debug?: (event: DdfLogEvent) => void; readonly warn?: (event: DdfLogEvent) => void; } export type DdfLogEvent = { readonly type: "token_request"; readonly url: string; readonly forceRefresh: boolean; } | { readonly type: "api_request"; readonly url: string; } | { readonly type: "api_retry"; readonly url: string; readonly status: number; readonly attempt: number; readonly delayMillis: number; } | { readonly type: "api_unauthorized_refresh"; readonly url: string; readonly status: number; }; export interface DdfClientConfig { readonly clientId: string; readonly clientSecret: string | Redacted.Redacted; readonly baseUrl?: string; readonly identityUrl?: string; readonly analyticsUrl?: string; readonly retryPolicy?: DdfRetryPolicy; readonly tokenExpiryBuffer?: Duration.Input; readonly logger?: DdfLogger; } declare const DdfConfig_base: Context.ServiceClass; export declare class DdfConfig extends DdfConfig_base { static readonly layer: (config: DdfClientConfig) => Layer.Layer; } export declare const ddfConfigFromEnv: Config.Config<{ clientId: string; clientSecret: Redacted.Redacted; baseUrl: string; identityUrl: string; analyticsUrl: string | undefined; }>; export {}; //# sourceMappingURL=Service.d.ts.map