export interface TextOptions {
    message: string;
    initial?: string;
    hint?: string;
    /**
     * Pre-generated suggestion shown dim in the hint line.
     * Submitting empty input accepts the placeholder.
     * Unlike `initial`, this is rendered visibly so the user knows what they'll get.
     */
    placeholder?: string;
    validate?: (value: string) => boolean | string | Promise<boolean | string>;
}
export interface ConfirmOptions {
    message: string;
    initial?: boolean;
}
export interface SelectOption<T = string> {
    value: T;
    label: string;
    hint?: string;
}
export interface SelectOptions<T = string> {
    message: string;
    options: SelectOption<T>[];
    initial?: T;
}
export interface MultiSelectOptions<T = string> {
    message: string;
    options: SelectOption<T>[];
    initial?: T[];
}
/**
 * Main prompt flow class
 */
export declare class PromptFlow {
    private states;
    private isInteractive;
    private nonInteractiveError;
    /**
     * Display intro banner
     */
    intro(title: string): void;
    /**
     * Display outro message
     */
    outro(...messages: string[]): void;
    /**
     * Text input prompt
     *
     * Two render paths:
     *  - With `placeholder`: custom raw-keypress renderer that paints the placeholder
     *    inline as dim ghost text at the cursor (autofill style). Vanishes on the first
     *    keystroke; Enter on an empty buffer accepts the placeholder.
     *  - Without `placeholder`: original readline-based renderer (untouched).
     */
    text(options: TextOptions): Promise<string>;
    /**
     * Text input with inline ghost-text placeholder (autofill style).
     *
     * Layout:
     *   ◆  <message>
     *   │  <hint>           (optional)
     *   │  <typed>│<ghost>   ghost is dim, vanishes on first keystroke
     *
     * Behavior:
     *   - Typing any char hides the ghost permanently for this prompt instance.
     *   - Backspacing back to empty does NOT bring the ghost back.
     *   - Enter on empty buffer → resolves to placeholder.
     *   - Enter with typed text → resolves to typed text.
     *   - Validation error: shows inline error, ghost stays gone, user must type.
     *   - Ctrl+C: cancels.
     */
    private textWithGhost;
    /**
     * Confirm (yes/no) prompt
     */
    confirm(options: ConfirmOptions): Promise<boolean>;
    /**
     * Select (single choice) prompt
     */
    select<T = string>(options: SelectOptions<T>): Promise<T>;
    /**
     * Multi-select (multiple choices) prompt
     */
    multiselect<T = string>(options: MultiSelectOptions<T>): Promise<T[]>;
    /**
     * Cancel the flow
     */
    cancel(message: string): void;
}
/**
 * Create a new prompt flow instance
 */
export declare function createPrompt(): PromptFlow;
//# sourceMappingURL=prompt.d.ts.map