import { IObserver } from '../../observer/type/observer.type';
import { IObservable, IUnsubscribe } from '../../observable/type/observable.type';
import { ISubscription } from './subscription.type';
/**
 * TODO very close of a IEmitSubscribePair
 */
export declare class Subscription<GValue> implements ISubscription<GValue> {
    readonly subscribe: IObservable<GValue>;
    readonly emit: IObserver<GValue>;
    protected _unsubscribe: IUnsubscribe | null;
    constructor(subscribe: IObservable<GValue>, emit: IObserver<GValue>);
    isActivated(): boolean;
    activate(): this;
    deactivate(): this;
    toggle(activate?: boolean): this;
}
