import { JwtPayload } from './secure_jwt.cjs';

declare type SecureEncryptionConfig = {
    encrypt_key: string | string[];
    auth_tag_key: string;
};
declare type SecureEncryptionRequest = {
    config: SecureEncryptionConfig;
};
declare const SecureEncryption: (_request: SecureEncryptionRequest) => {
    encrypt: <T extends string | number | Record<string, any>>(data: T) => Record<string, string>;
    decrypt: <D extends string | number | Record<string, any> = any, R extends {
        decryptedData: D;
        otherJwtPayload: JwtPayload;
    } = {
        decryptedData: D;
        otherJwtPayload: JwtPayload;
    }, T_1 extends string | Record<string, any> = any>(jwtPayload: T_1) => R;
};

export { SecureEncryption, SecureEncryptionConfig, SecureEncryptionRequest };
