type OfflineQueueStorageStrategyAction = import("./OfflineQueueStorageStrategy.js").OfflineQueueStorageStrategy; /** * Métadonnées nécessaires pour rejouer une action offline sur le bon serveur. */ interface OfflineActionMeta { baseURL: string; accessToken?: string | null; refreshToken?: string | null; timestamp: number; } /** * Options passées à l'appel de l'endpoint lors du replay. */ interface OfflineActionOptions { transformResponseData?: boolean | ((...args: any[]) => any); validateResponseSchema?: boolean; } /** * Élément de la file d'attente offline. */ export interface OfflineAction { constant: string; data: unknown; options?: OfflineActionOptions; meta: OfflineActionMeta; } /** * Options d'attache du gestionnaire offline. */ interface AttachOptions { offlineStorageStrategy?: "auto" | "memory" | "localStorage" | "file"; disableOfflineMonitoring?: boolean; interval?: number; } export declare class OfflineClientManager { private _clients; private _client; private _offlineMode; private _pingInterval; private _offlineQueueStorage; private _offlineQueue; private _monitoringStarted; private _onlineHandler?; private _offlineHandler?; constructor(apiClient: any); static attachTo(apiClient: any, options?: AttachOptions): Promise; getClient(meta: OfflineActionMeta): Promise; replayAction(action: OfflineAction): Promise; startOfflineMonitoring({ interval, disableOfflineMonitoring }?: Pick): void; /** * Arrête le monitoring offline : libère l'interval de ping et retire les listeners * online/offline. À appeler pour le teardown (tests, SSR, démontage) afin d'éviter une * fuite de timer/listeners et un process Node qui ne se termine pas. */ stopOfflineMonitoring(): void; setOfflineMode(isOffline: boolean): void; isOffline(): boolean; _enqueueOfflineAction({ constant, data, options }: { constant: string; data: unknown; options?: OfflineActionOptions; }): Promise; _replayOfflineQueue(): Promise; _initOfflineQueue(storageStrategy: OfflineQueueStorageStrategyAction): Promise; } export default OfflineClientManager;