export interface EncryptedPayload {
    iv: string;
    data: string;
}
export interface PermissionCrypto {
    encrypt<T>(value: T): EncryptedPayload;
    decrypt<T = unknown>(payload: unknown): T | null;
    decryptAuthPayload<T extends Record<string, any>>(payload: T, fields?: readonly string[]): T;
}
/**
 * Creates an AES-CBC helper compatible with the encrypted permission payloads
 * returned by Jervis authentication APIs.
 */
export declare function createPermissionCrypto(rawSecret: string): PermissionCrypto;
export declare function createPermissionDecryptor(secret: string): (payload: unknown) => string[];
//# sourceMappingURL=crypto.d.ts.map