import { DomainCreateOptions } from '@node-c/core'; import { IAMAuthenticationType, IAMAuthenticationVerifyExternalAccessTokenResult } from '../authentication'; export interface BaseTokenEntityFields { externalToken?: string; externalTokenAuthService?: IAMAuthenticationType; } export type DecodedTokenContent = { exp?: number; iat: number; data?: TokenEntityFields & BaseTokenEntityFields; }; export type TokenEntity = { token: string; type: TokenType; } & TokenEntityFields & BaseTokenEntityFields; export type TokenManagerCreateData = Partial, 'token'>>; export type TokenManagerCreateOptions = { expiresInMinutes?: number; identifierDataField?: string; persist?: boolean; purgeOldFromData?: boolean; tokenContentOnlyFields?: string[]; ttl?: number; } & DomainCreateOptions; export declare enum TokenType { Access = "access", Id = "id", Refresh = "refresh" } export interface TokenManagerVerifyResult { content?: DecodedTokenContent; externalTokenData?: IAMAuthenticationVerifyExternalAccessTokenResult; error?: unknown; } export interface VerifyAccessTokenOptions { deleteFromStoreIfExpired?: boolean; identifierDataField?: string; newAccessTokenExpiresInMinutes?: number; persistNewToken?: boolean; purgeStoreOnRenew?: boolean; refreshToken?: string; refreshTokenAccessTokenIdentifierDataField?: string; } export interface VerifyAccessTokenReturnData { content?: DecodedTokenContent; newAccessToken?: string; newIdToken?: string; newRefreshToken?: string; }