import { InstructionCompiler } from "../../../Compilation/PackageSystem/Instructions/InstructionCompiler";
import { LocalizationItem } from "../../../Globalization/LocalizationItem";
import { Node } from "../../../NodeSystem/Node";
import { INodeSystemInstructionOptions } from "../NodeSystem/INodeSystemInstructionOptions";
import { NodeSystemInstruction } from "../NodeSystem/NodeSystemInstruction";
import { ILocalizationInstruction } from "./ILocalizationInstruction";
/**
 * Represents an instruction which provides localizations.
 */
export declare abstract class LocalizationInstruction<T extends LocalizationItem, TOptions> extends NodeSystemInstruction<T, TOptions> implements ILocalizationInstruction {
    /**
     * Initializes a new instance of the `TranslationInstruction<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 Type: string;
    /**
     * @inheritdoc
     */
    readonly TranslationDirectory: string;
    /**
     * @inheritdoc
     */
    readonly Compiler: InstructionCompiler<ILocalizationInstruction>;
    /**
     * @inheritdoc
     */
    GetMessages(): {
        [locale: string]: {
            [category: string]: {
                [key: string]: string;
            };
        };
    };
}
