import { IObserver } from '../../observer/type/observer.type';
export interface IObservable<GValue> {
    (emit: IObserver<GValue>): IUnsubscribe;
}
export interface IUnsubscribe {
    (): void;
}
export declare type IGenericObservable = IObservable<any>;
export declare type IInferObservableGValue<GObservable extends IGenericObservable> = GObservable extends IObservable<infer GValue> ? GValue : never;
