/// <reference types="yeoman-generator" />
import { ComponentCollection, FileMappingCollectionEditor, GeneratorOptions, IComponentCollection, IFileMapping, ObjectCollectionEditor } from "@manuth/extended-yo-generator";
import { ITSProjectSettings } from "@manuth/generator-ts-project";
import { InstructionComponent } from "../../Components/InstructionComponent.js";
import { IWoltLabSettings } from "../../Settings/IWoltLabSettings.js";
import { WoltLabGenerator } from "../../WoltLabGenerator.js";
import { EntryPointFileMapping } from "./FileMappings/EntryPointFileMapping.js";
import { WoltLabPackageFileMapping } from "./FileMappings/WoltLabPackageFileMapping.js";
/**
 * Provides the functionality to generate WoltLab-packages.
 *
 * @template TSettings
 * The type of the generator-settings.
 *
 * @template TOptions
 * The type of the generator-options.
 */
export declare class WoltLabPackageGenerator<TSettings extends IWoltLabSettings = IWoltLabSettings, TOptions extends GeneratorOptions = GeneratorOptions> extends WoltLabGenerator<TSettings, TOptions> {
    /**
     * @inheritdoc
     */
    get TemplateRoot(): string;
    /**
     * Gets all {@see InstructionComponent `InstructionComponent<TSettings, TOptions, TComponentOptions>`} provided by this generator.
     */
    get InstructionComponents(): Array<InstructionComponent<TSettings, TOptions, any>>;
    /**
     * Gets a collection containing all {@see InstructionComponent `InstructionComponent<TSettings, TOptions, TComponentOptions>`} provided by this generator.
     */
    get InstructionComponentCollection(): ObjectCollectionEditor<InstructionComponent<TSettings, TOptions, any>>;
    /**
     * @inheritdoc
     */
    get Components(): IComponentCollection<TSettings, TOptions>;
    /**
     * @inheritdoc
     */
    protected get BaseComponents(): ComponentCollection<ITSProjectSettings, GeneratorOptions>;
    /**
     * @inheritdoc
     */
    protected get BaseFileMappings(): FileMappingCollectionEditor;
    /**
     * Gets the file-mapping for the woltlab-package.
     */
    get WoltLabPackageFileMapping(): WoltLabPackageFileMapping<TSettings, TOptions>;
    /**
     * Gets the file-mapping for the entry-point file.
     */
    get EntryPointFileMapping(): EntryPointFileMapping<TSettings, TOptions>;
    /**
     * @inheritdoc
     */
    get FileMappings(): Array<IFileMapping<TSettings, TOptions>>;
    /**
     * @inheritdoc
     */
    prompting(): Promise<void>;
    /**
     * @inheritdoc
     */
    writing(): Promise<void>;
    /**
     * @inheritdoc
     */
    install(): Promise<void>;
    /**
     * @inheritdoc
     */
    cleanup(): Promise<void>;
    /**
     * @inheritdoc
     */
    end(): Promise<void>;
}
