import { Node } from "../../../NodeSystem/Node";
import { NodeItem } from "../../../NodeSystem/NodeItem";
import { Instruction } from "../Instruction";
import { INodeSystemInstruction } from "./INodeSystemInstruction";
import { INodeSystemInstructionOptions } from "./INodeSystemInstructionOptions";
/**
 * Represents an instruction which provides nodes.
 */
export declare abstract class NodeSystemInstruction<T extends NodeItem, TOptions> extends Instruction implements INodeSystemInstruction<T> {
    /**
     * The nodes provides by the instruction.
     */
    private nodes;
    /**
     * Initializes a new instance of the `NodeSystemInstruction<T>` class.
     *
     * @param options
     * The options for generating the object.
     *
     * @param generator
     * The generator-function for generating sub-nodes.
     */
    constructor(options: INodeSystemInstructionOptions<TOptions>, generator: (node: Node<T, TOptions>, options: TOptions) => T);
    /**
     * @inheritdoc
     */
    readonly Nodes: Array<Node<T, TOptions>>;
    /**
     * @inheritdoc
     */
    readonly ObjectsByID: {
        [id: string]: any;
    };
}
