import { SignalProtocolAddress } from '@privacyresearch/libsignal-protocol-typescript';
import { DBFactory } from '../db/DBFactory';
import { SignalProtocolStore } from './SignalProtocolStore';
export declare class SignalUtil {
    store: SignalProtocolStore | undefined;
    private _initPromise;
    constructor(dbFactory?: DBFactory, ownUserId?: string);
    initSignal(dbFactory?: DBFactory): Promise<void>;
    generatePreKeyBundle(preKeyId: number, signedPreKeyId: number): Promise<{
        identityKey: ArrayBuffer;
        registrationId: any;
        preKey: {
            keyId: number;
            publicKey: ArrayBuffer;
        };
        signedPreKey: {
            keyId: number;
            publicKey: ArrayBuffer;
            signature: ArrayBuffer;
        };
    }>;
    serializePreKeyBundle(preKeyBundle: any): any;
    deserializePreKeyBundle(preKeyBundle: any): {
        identityKey: ArrayBuffer;
        registrationId: any;
        preKey: {
            keyId: any;
            publicKey: ArrayBuffer;
        };
        signedPreKey: {
            keyId: any;
            publicKey: ArrayBuffer;
            signature: ArrayBuffer;
        };
    };
    getPreKeyBundle(): Promise<string>;
    addContact(address: SignalProtocolAddress, preKeyBundle: string): Promise<void>;
    encryptTo(address: SignalProtocolAddress | string, message: string): Promise<string>;
    decryptFrom(address: SignalProtocolAddress, ciphertext: string): Promise<string>;
    getOwnUserId(): Promise<string>;
}
//# sourceMappingURL=SignalUtil.d.ts.map