import { InstructionCompiler } from "../../Compilation/PackageSystem/Instructions/InstructionCompiler.js";
import { Package } from "../Package.js";
import { IInstruction } from "./IInstruction.js";
import { IInstructionOptions } from "./IInstructionOptions.js";
import { InstructionSet } from "./InstructionSet.js";
/**
 * 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 {@link Instruction `Instruction`} class.
     *
     * @param options
     * The options of the instruction.
     */
    constructor(options: IInstructionOptions);
    /**
     * Gets the name of the type of the instruction.
     */
    abstract get Type(): string;
    /**
     * @inheritdoc
     */
    get Collection(): InstructionSet;
    /**
     * @inheritdoc
     */
    set Collection(value: InstructionSet);
    /**
     * @inheritdoc
     */
    get Package(): Package;
    /**
     * @inheritdoc
     */
    get DestinationRoot(): string;
    /**
     * @inheritdoc
     */
    get FileName(): string;
    /**
     * @inheritdoc
     */
    set FileName(value: string);
    /**
     * @inheritdoc
     */
    get FullName(): string;
    /**
     * @inheritdoc
     */
    get Standalone(): boolean;
    /**
     * @inheritdoc
     */
    set Standalone(value: boolean);
    /**
     * Gets the compiler for compiling the instruction.
     */
    get Compiler(): InstructionCompiler<IInstruction>;
    /**
     * @inheritdoc
     */
    get ObjectsByID(): Record<string, unknown>;
}
