import { CoreGraphNodeId } from './CoreGraph';
import { DirtyController, PostDirtyHook } from './DirtyController';
import { PolyScene } from '../../engine/scene/PolyScene';
export declare class CoreGraphNode {
    protected _scene: PolyScene;
    protected _name: string;
    private _graph;
    private _graph_node_id;
    private _dirty_controller;
    constructor(_scene: PolyScene, _name: string);
    dispose(): void;
    name(): string;
    setName(name: string): void;
    scene(): PolyScene;
    graphNodeId(): CoreGraphNodeId;
    get dirtyController(): DirtyController;
    setDirty(trigger?: CoreGraphNode | null): void;
    setSuccessorsDirty(trigger?: CoreGraphNode): void;
    removeDirtyState(): void;
    isDirty(): boolean;
    addPostDirtyHook(name: string, callback: PostDirtyHook): void;
    graphRemove(): void;
    addGraphInput(src: CoreGraphNode, check_if_graph_has_cycle?: boolean): boolean;
    removeGraphInput(src: CoreGraphNode): void;
    graphDisconnectPredecessors(): void;
    graphDisconnectSuccessors(): void;
    graphPredecessorIds(): CoreGraphNodeId[];
    graphPredecessors(): CoreGraphNode[];
    graphSuccessors(): CoreGraphNode[];
    graphAllPredecessors(): CoreGraphNode[];
    graphAllSuccessors(): CoreGraphNode[];
}
