import { BidirectionalCollection } from "../../Collections/BidirectionalCollection.js";
import { Package } from "../Package.js";
import { Instruction } from "./Instruction.js";
/**
 * Represents a collection of instructions.
 */
export declare class InstructionSet extends BidirectionalCollection<InstructionSet, Instruction> {
    /**
     * The package the collection belongs to.
     */
    private package;
    /**
     * The directory to save the set to.
     */
    private directory;
    /**
     * Initializes a new instance of the {@link InstructionSet `InstructionSet`} class.
     *
     * @param extensionPackage
     * The extension of the instruction-set.
     */
    constructor(extensionPackage: Package);
    /**
     * @inheritdoc
     */
    get Owner(): InstructionSet;
    /**
     * Gets or sets the package the collection belongs to.
     */
    get Package(): Package;
    /**
     * @inheritdoc
     */
    set Package(value: Package);
    /**
     * Gets or sets the directory to save the components of this set.
     */
    get Directory(): string;
    /**
     * @inheritdoc
     */
    set Directory(value: string);
    /**
     * Serializes the instruction-set to an xml dom-element.
     *
     * @returns
     * An element representing this instruction.
     */
    Serialize(): Element;
    /**
     * @inheritdoc
     *
     * @param child
     * The child whose parent to return.
     *
     * @returns
     * The parent of the {@link child `child`}.
     */
    protected GetParent(child: Instruction): InstructionSet;
    /**
     * Sets the parent of a child.
     *
     * @param child
     * The child whose parent is to be set.
     *
     * @param parent
     * The parent to set.
     */
    protected SetParent(child: Instruction, parent: InstructionSet): void;
}
