import { MuteCrypto } from '../MuteCrypto';
import { Key } from './Key';
export declare class KeyAgreementBD extends MuteCrypto {
    key: Key | undefined;
    previousKey: Key | undefined;
    private isReady;
    private myId;
    private myCounter;
    private readonly members;
    private readonly cycles;
    private send;
    private _signingKey;
    constructor();
    encrypt(msg: Uint8Array): Promise<Uint8Array>;
    decrypt(ciphermsg: Uint8Array): Promise<Uint8Array>;
    set signingKey(key: CryptoKey);
    set onSend(send: (msg: Uint8Array, streamID: number) => void);
    addMember(id: number): void;
    removeMember(id: number): void;
    onMessage(senderId: number, msg: Uint8Array, key?: CryptoKey): Promise<void>;
    setMyId(id: number): void;
    setReady(): void;
    private checkCycles;
    private get isInitiator();
    private start;
    private createCycle;
}
