import { ISubscription } from '../subscription.type';
export declare type ISubscriptionManagerSetMode = 'skip' | 'replace' | 'throw';
export interface ISubscriptionManager {
    readonly size: number;
    has(key: string): boolean;
    get<GSubscription extends ISubscription<any>>(key: string): GSubscription | undefined;
    get<GSubscription extends ISubscription<any>>(key: string, mode: 'throw'): GSubscription | never;
    set<GSubscription extends ISubscription<any>>(key: string, subscription: GSubscription, mode?: ISubscriptionManagerSetMode): GSubscription;
    delete(key: string): void;
    clear(): void;
    activateAll(): void;
    deactivateAll(): void;
    [Symbol.iterator](): IterableIterator<[string, ISubscription<any>]>;
    entries(): IterableIterator<[string, ISubscription<any>]>;
    keys(): IterableIterator<string>;
    values(): IterableIterator<ISubscription<any>>;
}
