/** * Token Manager - Handles token lifecycle and refresh */ import type { TokenFetchRetryConfig } from '../types'; export interface TokenManagerConfig { apiKey?: string; token?: string; tokenExpiresAt?: number; tokenEndpoint?: string; tokenFetchHeaders?: Record; tokenFetchRetry: TokenFetchRetryConfig; onTokenExpiring?: () => Promise<{ token: string; expiresAt: number; }>; autoRefreshToken: boolean; refreshBeforeExpiry: number; baseUrl: string; } export interface TokenManagerEvents { tokenFetchStarted: (source: 'endpoint' | 'api') => void; tokenFetchSucceeded: (data: { token: string; expiresAt: number; source: 'endpoint' | 'api'; }) => void; tokenFetchFailed: (error: Error, attempt: number, willRetry: boolean) => void; tokenExpiring: (data: { currentToken: string; expiresAt: number; }) => void; tokenRefreshed: (data: { token: string; expiresAt: number; }) => void; tokenRefreshFailed: (error: Error) => void; } /** * Manages authentication tokens with automatic refresh */ export declare class TokenManager { private currentToken; private tokenExpiresAt; private tokenRefreshTimer; private isRefreshingToken; private readonly config; private readonly eventHandlers; constructor(config: TokenManagerConfig); /** * Register event handler */ on(event: K, handler: TokenManagerEvents[K]): void; /** * Emit event */ private emit; /** * Get current valid token */ getToken(): Promise; /** * Check if current token is valid */ isTokenValid(): boolean; /** * Fetch token from appropriate source */ fetchToken(): Promise; /** * Refresh token using configured callback */ refreshToken(): Promise; /** * Schedule automatic token refresh */ private scheduleTokenRefresh; /** * Cancel scheduled token refresh */ private cancelTokenRefresh; /** * Fetch token from endpoint (browser) */ private fetchTokenFromEndpoint; /** * Fetch token from API using API key (Node.js) */ private fetchTokenFromApi; /** * Fetch token using https module (fallback) */ private fetchTokenWithHttps; /** * Cleanup resources */ destroy(): void; } //# sourceMappingURL=TokenManager.d.ts.map