import type { AutotaskClientConfig, RetryConfig } from "../types/index.js"; import type { Logger, LogLevel } from "../types/logger.js"; import { RateLimitManager } from "../rate-limiting/RateLimitManager.js"; import { type EntityRelationships } from "../relationships/index.js"; import type { AllAutotaskEntityNames } from "../autotask-types/index.js"; export declare const DEFAULT_RETRY_CONFIG: Required; export declare const DEFAULT_SDK_PAGE_SIZE = 25; export declare const AUTOTASK_API_MAX_RECORDS_LIMIT = 500; /** * Validated and processed client configuration */ export interface ProcessedClientConfig { clientConfig: AutotaskClientConfig; finalApiBaseUrl: string; retryConfig: Required; logger: Logger; currentLogLevel: LogLevel; rateLimitManager?: RateLimitManager; relationshipConfigs: Map; } /** * Validate required API credentials * @param config - Raw client configuration * @throws Error if required credentials are missing */ export declare function validateClientConfig(config: AutotaskClientConfig): void; export declare function createLogger(config: AutotaskClientConfig): { logger: Logger; currentLogLevel: LogLevel; }; /** * Create RateLimitManager if Redis config (self-hosted or Upstash) is provided. * Prefers `redis` (self-hosted) over `upstash` if both are supplied. * @param config - Client configuration * @param logger - Logger for warnings * @returns RateLimitManager instance or undefined */ export declare function createRateLimitManager(config: AutotaskClientConfig, logger: { warn?: (message: string) => void; }): RateLimitManager | undefined; /** * Create relationship configurations map * @returns Map of entity relationships */ export declare function createRelationshipConfigs(): Map; /** * Process and validate client configuration * @param config - Raw client configuration * @returns Processed configuration object */ export declare function processClientConfig(config: AutotaskClientConfig): ProcessedClientConfig; //# sourceMappingURL=config.d.ts.map