export type SelectOption<T> = {
    value: T;
    label: string;
    hint?: string;
};
/**
 * Single-choice selection. On a raw-capable TTY this is arrow-key driven with a
 * live highlighted cursor; otherwise it falls back to a numbered prompt read
 * from stdin (so piped input and non-raw terminals still work). Returns the
 * default when input is empty or unparseable.
 */
export declare function select<T>(input: {
    message: string;
    options: ReadonlyArray<SelectOption<T>>;
    defaultIndex?: number;
}): Promise<T>;
/** Yes/no confirmation. Returns `defaultValue` on empty input. */
export declare function confirm(input: {
    message: string;
    defaultValue?: boolean;
}): Promise<boolean>;
/** Free-text prompt. Returns `defaultValue` (or "") on empty input. */
export declare function text(input: {
    message: string;
    defaultValue?: string;
}): Promise<string>;
/** A success line for the end of a wizard. */
export declare function done(message: string): void;
/** A neutral note line. */
export declare function note(message: string): void;
