import { ObjectSchema } from 'joi'; import { Algorithm, SignOptions } from 'jsonwebtoken'; import type { StringValue } from 'ms'; import { TokenKind } from '../type'; export type { Algorithm }; export declare abstract class AuthBaseToken { protected readonly secret: string; protected readonly schema: ObjectSchema; protected readonly signOptions: SignOptions; protected readonly kind: TokenKind; protected readonly extendedKind: TokenKind; constructor(secret: string, expiresIn: StringValue | number, schema: ObjectSchema, kind: TokenKind, extendedKind: TokenKind, algorithm?: Algorithm); sign(payload: T, expiresIn?: StringValue | number | Date, notBefore?: StringValue | number | Date): string; verify(token: string): any; protected static baseDecode(token: string, kind: TokenKind, schema: ObjectSchema): any; private static validate; }