import type { Observer } from './Subscription';
import Subscription from './Subscription';
import PassiveSubscription, { PassiveObserver } from './PassiveSubscription';
export default class Subscribable<PayloadType> {
    protected listeners: Subscription<PayloadType>[];
    subscribe(observer: Observer<PayloadType>): Subscription<PayloadType>;
    subscribePassive(observer: PassiveObserver<PayloadType>): PassiveSubscription<PayloadType>;
    unsubscribe(subscription: Subscription<PayloadType>): void;
}
