import type { Command as Program } from 'commander';
/**
 * Commander option bag for opting out of every interactive question.
 *
 * @private internal utility of `promptbookCli`
 */
export type QuestionsCliOptions = {
    readonly questions: boolean;
};
/**
 * Normalized interactive-questions option shared by every `ptbk coder` command which can ask something.
 *
 * @private internal utility of `promptbookCli`
 */
export type NormalizedQuestionsCliOptions = {
    readonly isAskingQuestionsEnabled: boolean;
};
/**
 * Description block shared by the `ptbk coder` commands which can ask interactive questions.
 *
 * @private internal utility of `promptbookCli`
 */
export declare const QUESTIONS_DESCRIPTION: string;
/**
 * Registers the shared `--no-questions` option on a `ptbk coder` command which can ask interactive questions.
 *
 * @private internal utility of `promptbookCli`
 */
export declare function addQuestionsOption(command: Program): void;
/**
 * Converts the Commander questions flag into the normalized interactive-questions option.
 *
 * @private internal utility of `promptbookCli`
 */
export declare function normalizeQuestionsCliOptions(cliOptions: QuestionsCliOptions): NormalizedQuestionsCliOptions;
/**
 * Asserts that a command which waits for a user confirmation before each prompt is allowed to ask for it.
 *
 * @throws {NotAllowed} when `--no-auto` is combined with `--no-questions`
 * @private internal utility of `promptbookCli`
 */
export declare function assertUserConfirmationIsAllowed(options: {
    readonly isAskingQuestionsEnabled: boolean;
    readonly isWaitingForUser: boolean;
}): void;
