export interface NodeOptions {
    name?: string;
}
export declare class Node {
    private _name?;
    private _promise;
    private _data?;
    private mutex?;
    private locked;
    constructor(promise: () => Promise<any>, options?: NodeOptions);
    get name(): string | undefined;
    /**
     * Await data.
     * @returns A `Promise<T | null>` that resolves when the node's data is ready.
     */
    data(): Promise<any>;
    signalDependenciesReady(): void;
    setData(data: any): void;
    /**
     * Resets node. Clears all node data and resets its mutex.
     */
    reset(): void;
    clearMutex(): void;
    hasData(): boolean;
    clearData(): void;
}
