import type { Observable as Observable1, Observer } from '../types/futures';
import type { MonkeyPatchedObservable as Observable2 } from '../types/monkey-patched-observable';
import { SymbolObservature } from '../constants';
type Observable<T> = Observable1<T> | Observable2<T>;
export interface IObservature<I, O = I> {
    value: O;
    Observature: true;
    [SymbolObservature]: true;
    addSource: (source: Observable<I>) => void;
    next: (value: O) => void;
    error: (error: unknown) => void;
    complete: () => void;
    subscribe: (observer: Observer<O>) => void;
}
export declare const CreateObservature: <I, O>(initial?: O) => IObservature<I, O>;
export declare class Observature<I, O> {
    constructor(initial: O);
}
export declare const isObservature: <I, O>(x: any) => x is IObservature<I, O>;
export {};
//# sourceMappingURL=observature.d.ts.map