export interface IObserver<GValue> {
(value: GValue): void;
}
export declare type IGenericObserver = IObserver<any>;
export declare type IInferObserverGValue<GObserver extends IGenericObserver> = GObserver extends IObserver<infer GValue> ? GValue : never;