import { DeepRequired, DeepPartial } from '../../common/types/custom_type.types.cjs';

declare const DEFAULT_CONFIG_SECURE_JWT: () => {
    encrypt_key: string | undefined;
    sign_key: string | undefined;
    auth_tag_key: string;
    expired_in: string;
    issuer: string;
};
declare type ConfigSecureJwtService = DeepRequired<ReturnType<typeof DEFAULT_CONFIG_SECURE_JWT>>;
declare type JwtPayload = {
    [key: string]: any;
    exp: number;
    iat: number;
    issuer: string;
    exsd: Record<string, any>;
};
declare const SecureJWT: (initConfig?: DeepPartial<ConfigSecureJwtService>) => {
    decryptToken: <R extends Record<string, any>>(token: string, options?: {
        ignoreExpired: false;
    }) => {
        payload: R;
        jwtPayload: JwtPayload;
    };
    encryptPayload: <T extends Record<string, any>>(payload: T, options?: {
        exposeData?: Record<string, any>;
        expiresIn?: string | number;
    }) => string;
};

export { ConfigSecureJwtService, DEFAULT_CONFIG_SECURE_JWT, JwtPayload, SecureJWT };
