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
TypeScript
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 {};