import { PureAbility } from '@casl/ability'; import Joi from 'joi'; import type { StringValue } from 'ms'; import { TokenKind } from '../type'; import { Algorithm, AuthBaseToken } from './auth-base-token'; import { BaseIdToken, Rule } from './auth-type'; import { RoleMetadata } from './auth-type-verify'; export type IdToken = BaseIdToken & { ability: PureAbility; rules?: Rule[]; rolesMetadata?: RoleMetadata[]; mfaVerified?: boolean; }; export type AuthIdTokenClaim = BaseIdToken & { uuid: string; iat?: number; exp?: number; }; export declare const schemaAuthIdTokenClaim: { uuid: Joi.StringSchema; iat: Joi.NumberSchema; exp: Joi.NumberSchema; userId: Joi.NumberSchema; userLogin: Joi.StringSchema; localeCode: Joi.StringSchema; orgId: Joi.NumberSchema; appDomain: Joi.StringSchema; productId: Joi.NumberSchema; extended: Joi.ObjectSchema; }; export declare class AuthIdToken extends AuthBaseToken { private static self; private constructor(); static init(secret: string, expiresIn: StringValue | number, algorithm?: Algorithm): typeof AuthIdToken; static term(): void; static get instance(): AuthIdToken; static get isEnabled(): boolean; get expiresIn(): number | StringValue; static decode(token: string, kind?: TokenKind): any; }