import { IInstruction } from "../../../PackageSystem/Instructions/IInstruction.js";
import { Compiler } from "../../Compiler.js";
import { InstructionCompiler } from "./InstructionCompiler.js";
/**
 * Provides the functionality to compile instructions which only depend on one file-compiler.
 *
 * @template T
 * The type of the instruction which can be compiled by this compiler.
 */
export declare abstract class InstructionFileCompiler<T extends IInstruction> extends InstructionCompiler<T> {
    /**
     * Initializes a new instance of the {@link InstructionFileCompiler `InstructionFileCompiler<T>`} class.
     *
     * @param instruction
     * The instruction to compile.
     */
    constructor(instruction: T);
    /**
     * Gets a component for compiling the file.
     */
    protected abstract get FileCompiler(): Compiler<T>;
    /**
     * @inheritdoc
     */
    protected Compile(): Promise<void>;
}
