import { INode } from "../../NodeSystem/Generic/INode";
import { ICategory } from "../../Options/Generic/ICategory";
import { Option } from "../../Options/Option";
import { IOptionInstruction } from "../../PackageSystem/Instructions/Options/IOptionInstruction";
import { ImportFileCompiler } from "../ImportFileCompiler";
/**
 * Provides the functionality to compile option-files.
 */
export declare abstract class OptionFileCompiler<T extends IOptionInstruction<TCategory, TOption>, TCategory extends ICategory<TOption>, TOption extends Option> extends ImportFileCompiler<T> {
    /**
     * The language-category which contains translations for options.
     */
    private languageCategory;
    /**
     * Initializes a new instance of the `OptionFileCompiler<T, TCategory, TOption>` class.
     *
     * @param item
     * The item to compile.
     *
     * @param languageCategory
     * The language-category which contains translations for options.
     */
    constructor(item: T);
    /**
     * Gets or sets the language-category which contains translations for options.
     */
    LanguageCategory: string;
    /**
     * @inheritdoc
     */
    protected CreateImport(): Element;
    /**
     * @inheritdoc
     */
    protected CreateDelete(): Element;
    /**
     * Serializes a category to xml.
     *
     * @param category
     * The category to serialize.
     */
    protected CreateCategory(category: INode<TCategory>): Element;
    /**
     * Serializes an option to xml.
     *
     * @param option
     * The option to serialize.
     */
    protected CreateOption(option: TOption): Element;
}
