export interface Subscription {
    unsubscribe: () => void;
}
export declare class Observable<T> {
    private onFirstSubscribe?;
    private observers;
    private onLastUnsubscribe?;
    constructor(onFirstSubscribe?: ((observable: Observable<T>) => (() => void) | void) | undefined);
    subscribe(f: (data: T) => void): Subscription;
    notify(data: T): void;
}
export declare function mergeObservables<T>(...observables: Array<Observable<T>>): Observable<T>;
