import type { Logger, LogLevel } from "./logger.js"; export interface AutotaskApiCredentials { userName: string; secret: string; integrationCode: string; } export interface UpstashConfig { upstashRedisUrl: string; upstashRedisToken: string; hourlyLimit?: number; fiveMinuteLimit?: number; minuteLimit?: number; hourlyPrefix?: string; fiveMinutePrefix?: string; minutePrefix?: string; timeout?: number; } export interface RedisConfig { /** Redis connection URL, e.g. "redis://redis:6379" or "redis://user:pass@host:6379" */ url: string; hourlyLimit?: number; fiveMinuteLimit?: number; minuteLimit?: number; hourlyPrefix?: string; fiveMinutePrefix?: string; minutePrefix?: string; timeout?: number; } export interface RetryConfig { maxRetries?: number; initialBackoffMs?: number; maxBackoffMs?: number; backoffFactor?: number; jitterFactor?: number; } export interface AutotaskClientConfig extends AutotaskApiCredentials { /** Optional: Specify the base URL for the Autotask API. */ baseUrl?: string; /** Optional: Specify the API version. Defaults to "v1.0". */ apiVersion?: string; /** Optional: Configuration for SDK-side retry behavior. */ retryConfig?: RetryConfig; /** Optional: Configuration for Upstash Rate Limiting. */ upstash?: UpstashConfig; /** Optional: Configuration for self-hosted Redis rate limiting (e.g. Docker Compose Redis). */ redis?: RedisConfig; /** Optional: Inject a custom logger. Defaults to console. */ logger?: Logger; /** Optional: Set the minimum log level. Defaults to LogLevel.INFO. */ logLevel?: LogLevel; /** Optional: Request timeout in milliseconds. Defaults to no timeout. */ requestTimeoutMs?: number; } export interface UpstashRedisCredentials { upstashRedisUrl: string; upstashRedisToken: string; } export interface RateLimiterConfigOptions { hourlyLimit?: number; fiveMinuteLimit?: number; minuteLimit?: number; hourlyPrefix?: string; fiveMinutePrefix?: string; minutePrefix?: string; timeout?: number; } export declare const DEFAULT_RETRY_CONFIG: Required; //# sourceMappingURL=config.d.ts.map