import { type CustomAuthConfig } from '../types'; interface CookieOptions { expires?: number; path?: string; secure?: boolean; sameSite?: 'strict' | 'lax' | 'none'; domain?: string; } interface TokenManagerConfig { baseUrl: string; refreshEndpoint: string; cookieOptions?: Partial; } export declare class TokenManager { private readonly cookieOptions; private readonly baseUrl; private readonly refreshEndpoint; constructor(config: TokenManagerConfig); setAccessToken(tokenInfo: T['TokenInfo']): void; getAccessToken(): { token: string | undefined; expiresAt: number | null; }; setRefreshToken(tokenInfo: T['TokenInfo']): void; getRefreshToken(): string | undefined; refreshTokens(): Promise; /** * Handles setting both access and refresh tokens with proper expiry */ handleSetAccessAndRefreshTokens(accessToken: string, refreshToken: string | undefined, accessTokenExpiresIn: number, refreshTokenExpiresIn?: number): void; clearAllTokens(): void; isAccessTokenExpired(): boolean; handleAuthTokens(authResponse: { accessToken: T['TokenInfo']; refreshToken?: T['TokenInfo']; }): void; private setCookie; private getCookie; private removeCookie; } export declare const createTokenManager: (config: TokenManagerConfig) => TokenManager; export declare const useTokenManager: (config: TokenManagerConfig) => TokenManager; export {};