///
import { ProxyTarget, Target } from "./proxyObserve";
import { Transaction } from "./Transaction";
import { Memoization } from "./memoize";
export declare function setCurrentSelectorContext(currentSelectorContextIn: Observer | undefined): void;
export declare function setCurrentContext(currentContextIn: Observer | undefined): void;
export declare const getCurrentContext: () => Observer | undefined;
export declare const getCurrentSelectorContext: () => Observer | undefined;
interface ObserverOptionsAll {
batch: boolean;
delay: number | undefined;
notifyParents: boolean;
memo: boolean;
}
export declare type ObserverOptions = Partial;
export declare class Observer {
constructor(onChange: (target?: string, prop?: string, targetProxy?: ProxyTarget | Transaction) => void, options?: ObserverOptions, componentName?: string);
isSuspended: boolean;
options: ObserverOptions;
onChange: (target?: string, prop?: string, targetProxy?: ProxyTarget | Transaction) => void | undefined;
connectedProxyTargets: Map;
pendingProxyTargets: Array<[ProxyTarget | Transaction, string]>;
componentName: string;
renderCount: number;
target: Target | undefined;
changed(proxyTarget: ProxyTarget | Transaction | undefined, prop: string, isParent: boolean): void;
static forceBatch: boolean;
static beginBatch(): void;
static playBatch(clear?: boolean): void;
static inAction: boolean;
static observersPendingChange: Set;
static startTopLevelCall(): void;
static endTopLevelCall(): void;
timeout: NodeJS.Timeout | undefined;
scheduleChange(name: string, prop: string, proxyTarget: ProxyTarget | Transaction): void;
effectChange(): void;
referenced(proxyTarget: ProxyTarget | Transaction, prop: string): void;
referencedMemo(memo: Memoization): void;
processPendingReferences(): void;
processPendingReference(proxyTarget: ProxyTarget | Transaction, prop: string, logging: Array): void;
disconnect(proxyTarget: ProxyTarget): void;
cleanup(): void;
}
export {};