///
///
import { BinaryToTextEncoding } from 'crypto';
import jwt, { Secret, SignOptions, VerifyOptions } from 'jsonwebtoken';
/**
* Symmetric JWT secret
*/
export type JWTSecret = {
secret: string;
keyid?: string;
};
/**
* Encode a json object into JWT
*/
export declare function jwtSign(payload: string | Buffer | object, secretOrPrivateKey?: Secret, options?: SignOptions): string;
/**
* Decode a JWT into a json object
*/
export declare function jwtVerify(token: string, secretOrPublicKey: Secret, options?: VerifyOptions): object | string;
export declare function createHmacHash(seed: string, keyid?: string, encoding?: BinaryToTextEncoding): string;
/**
* Get the signing secret for JWTs
* @param keyid - Optional key id
* @returns
*/
export declare function getJwtSecret(keyid?: string, secrets?: JWTSecret[]): string;
/**
* Load JWT secrets from env vars
* @returns
*/
export declare function getJWtSecrets(): JWTSecret[];
/**
* Get the JWT issuer
* @returns
*/
export declare function getJwtIssuer(): string;
/**
* Get the JWT audience
* @returns
*/
export declare function getJwtAudience(): string;
export declare const decode: typeof jwt.decode, sign: typeof jwt.sign, verify: typeof jwt.verify;
export type { DecodeOptions, Jwt, JwtHeader, JwtPayload, Secret, SignOptions, VerifyOptions, } from 'jsonwebtoken';