/// <reference types="node" resolution-mode="require"/>
import { ReadLine } from "node:readline";
import { NestedPrompt } from "@manuth/generator-ts-project";
import { Answers } from "inquirer";
import { IApplicationQuestion } from "./IApplicationQuestion.js";
import { IApplicationQuestionOptions } from "./IApplicationQuestionOptions.js";
import { IWoltLabApplication } from "./IWoltLabApplication.js";
declare module "inquirer" {
    /**
     * @inheritdoc
     */
    interface QuestionMap<T> {
        /**
         * Represents the application-prompt.
         */
        [ApplicationPrompt.TypeName]: IApplicationQuestion<T>;
    }
}
/**
 * Provides a prompt for asking for a WoltLab-application.
 *
 * @template T
 * The type of the prompt-options.
 */
export declare class ApplicationPrompt<T extends IApplicationQuestionOptions> extends NestedPrompt<T> {
    /**
     * Gets the name of this prompt-type.
     */
    static readonly TypeName = "wcf-application";
    /**
     * Initializes a new instance of the {@link ApplicationPrompt `ApplicationPrompt<T>`} class.
     *
     * @param question
     * The options for the prompt.
     *
     * @param readLine
     * An object for reading from and writing to the console.
     *
     * @param answers
     * The answer-object.
     */
    constructor(question: T, readLine: ReadLine, answers: Answers);
    /**
     * Gets the applications which are listed as suggestions.
     */
    protected get SuggestedApplications(): IWoltLabApplication[];
    /**
     * Gets the default application.
     */
    protected get DefaultApplication(): IWoltLabApplication;
    /**
     * @inheritdoc
     *
     * @returns
     * The value to save to the answer-hash.
     */
    protected Prompt(): Promise<any>;
}
