/// <reference types="yeoman-generator" />
import { GeneratorOptions, IFileMapping } from "@manuth/extended-yo-generator";
import { IPathQuestion } from "@manuth/generator-ts-project";
import { Question } from "inquirer";
import { IApplicationQuestion } from "../../../Components/Inquiry/Prompts/IApplicationQuestion.js";
import { IFileUploadComponentOptions } from "../../../Settings/IFileUploadComponentOptions.js";
import { IWoltLabSettings } from "../../../Settings/IWoltLabSettings.js";
import { WoltLabGenerator } from "../../../WoltLabGenerator.js";
import { TemplateComponent } from "./TemplateComponent.js";
/**
 * Provides a component for generating acp-templates.
 *
 * @template TSettings
 * The type of the settings of the generator.
 *
 * @template TOptions
 * The type of the options of the generator.
 *
 * @template TComponentOptions
 * The type of the options of the component.
 */
export declare class ACPTemplateComponent<TSettings extends IWoltLabSettings, TOptions extends GeneratorOptions, TComponentOptions extends IFileUploadComponentOptions> extends TemplateComponent<TSettings, TOptions, TComponentOptions> {
    /**
     * Initializes a new instance of the {@link ACPTemplateComponent `ACPTemplateComponent<TSettings, TOptions, TComponentOptions>`} class.
     *
     * @param generator
     * The generator of the component.
     */
    constructor(generator: WoltLabGenerator<TSettings, TOptions>);
    /**
     * @inheritdoc
     */
    get ID(): string;
    /**
     * @inheritdoc
     */
    get DisplayName(): string;
    /**
     * @inheritdoc
     */
    protected get DefaultSourceBaseName(): string;
    /**
     * @inheritdoc
     */
    protected get AppQuestion(): IApplicationQuestion<TComponentOptions>;
    /**
     * @inheritdoc
     */
    protected get SourceQuestion(): IPathQuestion<TComponentOptions>;
    /**
     * @inheritdoc
     */
    protected get TemplateFileMapping(): IFileMapping<TSettings, TOptions>;
    /**
     * Transforms the message of the question accordingly.
     *
     * @param question
     * The question to transform.
     */
    protected TransformQuestion(question: Question<TComponentOptions>): void;
    /**
     * @inheritdoc
     *
     * @param options
     * The options which have been provided by the user.
     *
     * @returns
     * The name of the instruction-class.
     */
    protected GetClassName(options: TComponentOptions): string;
}
