import { TokensFromRefresh } from "./model.js"; declare function scheduleRefreshUnlocked({ abort, tokensCb, isRefreshingCb, }?: { abort?: AbortSignal; tokensCb?: (res: TokensFromRefresh | null) => void | Promise; isRefreshingCb?: (isRefreshing: boolean) => unknown; }): Promise; export declare function scheduleRefresh(args?: Parameters[0]): Promise; /** * Token types and interfaces */ type TokenPayload = { refreshToken?: string; accessToken?: string; username?: string; deviceKey?: string; expireAt?: Date; authMethod?: "SRP" | "FIDO2" | "PLAINTEXT" | "REDIRECT"; }; /** * Refresh tokens using the refresh token */ export declare function refreshTokens({ abort, tokensCb, isRefreshingCb, tokens, force, }?: { abort?: AbortSignal; tokensCb?: (res: TokensFromRefresh) => void | Promise; isRefreshingCb?: (isRefreshing: boolean) => unknown; tokens?: TokenPayload; force?: boolean; }): Promise; /** * Force an immediate token refresh */ export declare function forceRefreshTokens(args?: Omit[0], "force">): Promise; /** * Clean up all refresh-related timers and event listeners. * Call this when unmounting the application or switching users. * @param username - Optional username to clean up specific user state */ export declare function cleanupRefreshSystem(username?: string): void; export {};