import { StreamID } from '@streamr/protocol';
import { GroupKey } from '../encryption/GroupKey';
import { GroupKeyManager } from '../encryption/GroupKeyManager';
import { Authentication } from '../Authentication';
export interface GroupKeySequence {
    current: GroupKey;
    next?: GroupKey;
}
export declare class GroupKeyQueue {
    private currentGroupKey;
    private queuedGroupKey;
    private readonly streamId;
    private readonly authentication;
    private readonly groupKeyManager;
    static createInstance(streamId: StreamID, authentication: Authentication, groupKeyManager: GroupKeyManager): Promise<GroupKeyQueue>;
    private constructor();
    useGroupKey(): Promise<GroupKeySequence>;
    rotate(newKey?: GroupKey): Promise<GroupKey>;
    rekey(newKey?: GroupKey): Promise<GroupKey>;
}
