import { InstructionCompiler } from "../../Compilation/PackageSystem/Instructions/InstructionCompiler";
import { IInstruction } from "./IInstruction";
import { IInstructionOptions } from "./IInstructionOptions";
import { InstructionSet } from "./InstructionSet";
/**
 * Represents a step of a package-installation.
 */
export declare abstract class Instruction implements IInstruction {
    /**
     * The package this instruction belongs to.
     */
    private collection;
    /**
     * The name of the file to save the compiled instruction to.
     */
    private fileName;
    /**
     * A value indicating whether the instruction should be executed in standalone-mode.
     */
    private standalone;
    /**
     * Initializes a new instance of the `Instruction` class.
     */
    constructor(options: IInstructionOptions);
    /**
     * Gets the name of the type of the instruction.
     */
    abstract readonly Type: string;
    /**
     * @inheritdoc
     */
    /**
    * @inheritdoc
    */
    Collection: InstructionSet;
    /**
     * @inheritdoc
     */
    readonly DestinationRoot: string;
    /**
     * @inheritdoc
     */
    /**
    * @inheritdoc
    */
    FileName: string;
    /**
     * @inheritdoc
     */
    readonly FullName: string;
    /**
     * @inheritdoc
     */
    /**
    * @inheritdoc
    */
    Standalone: boolean;
    /**
     * Gets the compiler for compiling the instruction.
     */
    readonly Compiler: InstructionCompiler<IInstruction>;
    /**
     * @inheritdoc
     */
    readonly ObjectsByID: {
        [id: string]: any;
    };
}
