/**
 * Choice option for select prompts
 */
export interface Choice<T> {
    /** Display label for the choice */
    label: string;
    /** Value returned when this choice is selected */
    value: T;
    /** Optional description shown below the label */
    description?: string;
}
/**
 * Service for interactive CLI prompts
 * Supports both interactive and non-interactive (CI/CD) modes
 */
export declare class PromptService {
    private isInteractive;
    constructor();
    /**
     * Display a yes/no confirmation prompt
     *
     * @param message - The question to ask the user
     * @param defaultValue - Default value if user presses Enter (true for Y, false for N)
     * @returns Promise resolving to user's choice
     *
     * @example
     * const proceed = await promptService.confirm('Continue?', true); // (Y/n)
     * const overwrite = await promptService.confirm('Overwrite?', false); // (y/N)
     */
    confirm(message: string, defaultValue: boolean): Promise<boolean>;
    /**
     * Display a multiple choice selection prompt
     *
     * @param message - The question to ask the user
     * @param choices - Array of choices to present
     * @returns Promise resolving to the selected value
     *
     * @example
     * const stage = await promptService.select('Select stage:', [
     *   { label: 'Development', value: 'dev' },
     *   { label: 'Production', value: 'prod' }
     * ]);
     */
    select<T>(message: string, choices: Choice<T>[]): Promise<T>;
    /**
     * Display a text input prompt
     *
     * @param message - The question to ask the user
     * @param defaultValue - Optional default value if user presses Enter
     * @returns Promise resolving to user's input
     *
     * @example
     * const name = await promptService.input('Project name:', 'my-app');
     */
    input(message: string, defaultValue?: string): Promise<string>;
    /**
     * Parse a confirmation response into a boolean
     * Handles case-insensitive variations of yes/no
     *
     * @param response - User's input string
     * @returns true for affirmative, false for negative
     * @throws Error if response is not recognized
     */
    private parseConfirmResponse;
    /**
     * Read a line of input from stdin
     *
     * @param prompt - The prompt to display
     * @returns Promise resolving to user's input
     */
    private readLine;
}
/**
 * Create a new prompt service instance
 *
 * @returns PromptService instance
 */
export declare function createPromptService(): PromptService;
