///
import { ModuleMetadata, Provider, Type } from '@nestjs/common';
import * as jwt from 'jsonwebtoken';
export declare enum JwtSecretRequestType {
SIGN = 0,
VERIFY = 1
}
export interface JwtModuleOptions {
global?: boolean;
signOptions?: jwt.SignOptions;
secret?: string | Buffer;
publicKey?: string | Buffer;
privateKey?: jwt.Secret;
secretOrPrivateKey?: jwt.Secret;
secretOrKeyProvider?: (requestType: JwtSecretRequestType, tokenOrPayload: string | object | Buffer, options?: jwt.VerifyOptions | jwt.SignOptions) => jwt.Secret | Promise;
verifyOptions?: jwt.VerifyOptions;
}
export interface JwtOptionsFactory {
createJwtOptions(): Promise | JwtModuleOptions;
}
export interface JwtModuleAsyncOptions extends Pick {
global?: boolean;
useExisting?: Type;
useClass?: Type;
useFactory?: (...args: any[]) => Promise | JwtModuleOptions;
inject?: any[];
extraProviders?: Provider[];
}
export interface JwtSignOptions extends jwt.SignOptions {
secret?: string | Buffer;
privateKey?: jwt.Secret;
}
export interface JwtVerifyOptions extends jwt.VerifyOptions {
secret?: string | Buffer;
publicKey?: string | Buffer;
}
export type GetSecretKeyResult = string | Buffer | jwt.Secret;