interface EncryptionParams {
    A: number[][];
    E: number[];
    q: number;
}
interface EncryptedData {
    data: string;
    params: EncryptionParams;
}
declare class AntiganeEncryption {
    private m;
    private n;
    private q;
    private A;
    private s;
    private e;
    constructor(m: number, n: number, q?: number);
    private mod;
    private getSecureRandom;
    private defineA;
    private defineE;
    private generateHash;
    private sVector;
    private calculateB;
    encrypt(msg: string, password: string, encryptParams?: EncryptionParams): Promise<EncryptedData>;
    decrypt(encryptedData: EncryptedData, password: string): Promise<string>;
    private arrayToBase64;
    private base64ToArray;
}
declare const createEncryptionService: (m?: number, n?: number, q?: number) => AntiganeEncryption;

export { AntiganeEncryption, type EncryptedData, type EncryptionParams, createEncryptionService };
