UNPKG

@pagamio/frontend-commons-lib

Version:

Pagamio library for Frontend reusable components like the form engine and table container

44 lines (43 loc) 1.59 kB
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<CookieOptions>; } export declare class TokenManager<T extends CustomAuthConfig> { 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<boolean>; /** * 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: <T extends CustomAuthConfig>(config: TokenManagerConfig) => TokenManager<T>; export declare const useTokenManager: <T extends CustomAuthConfig>(config: TokenManagerConfig) => TokenManager<T>; export {};