import { CoreGraphNode } from './CoreGraphNode';
export type PostDirtyHook = (caller?: CoreGraphNode) => void;
export declare class DirtyController {
    private node;
    private _dirtyCount;
    private _dirty;
    private _dirtyTimestamp;
    private _cooker;
    private _postDirtyHooks;
    private _postDirtyHookNames;
    constructor(node: CoreGraphNode);
    dispose(): void;
    isDirty(): boolean;
    dirtyTimestamp(): number | undefined;
    dirtyCount(): number;
    hasPostDirtyHooks(): boolean;
    addPostDirtyHook(name: string, method: PostDirtyHook): void;
    removePostDirtyHook(name: string): void;
    hasHook(name: string): boolean;
    removeDirtyState(): void;
    setDirty(originalTriggerGraphNode?: CoreGraphNode | null, propagate?: boolean): void;
    runPostDirtyHooks(originalTriggerGraphNode?: CoreGraphNode): void;
    setSuccessorsDirty(originalTriggerGraphNode?: CoreGraphNode): void;
}
