import { Subscriber, Subscription } from "./_core";
import { Dispatcher, MCSNode } from "./_dispatcher";
import * as Sym from "./_symbols";
import { Transaction } from "./_tx";
import { HKT, Observable } from "./Observable";
export declare class Property extends Observable implements HKT> {
[Sym.HKT]: Property;
protected __isProperty: true;
constructor(d: PropertyDispatcher);
}
export declare function isProperty(x: any): x is Property;
export declare class PropertyDispatcher extends Dispatcher {
protected has: boolean;
protected val: T;
protected ended: boolean;
subscribe(subscriber: Subscriber, order: number): Subscription;
activate(subscriber: Subscriber, initialNeeded: boolean): void;
dispose(node: MCSNode): void;
next(tx: Transaction, val: T): void;
end(tx: Transaction): void;
replayState(subscriber: Subscriber): void;
}