import type { ElicitationRequest, TextFieldOptions, NumberFieldOptions, BooleanFieldOptions, EnumFieldOptions, MultiSelectOptions } from '../../types/elicitation.js';
/**
 * Fluent builder for constructing MCP elicitation requests.
 *
 * @example
 * ```ts
 * const request = new ElicitationBuilder('Confirm deployment')
 *   .addText('name', 'Service name', { required: true })
 *   .addEnum('env', 'Target environment', ['staging', 'production'])
 *   .addBoolean('notify', 'Notify on Slack?')
 *   .build();
 * ```
 */
export declare class ElicitationBuilder {
    private readonly title;
    private readonly fields;
    private description?;
    constructor(title: string);
    /** Set an optional description displayed below the title. */
    withDescription(description: string): this;
    /** Add a free-text input field. */
    addText(key: string, label: string, options?: TextFieldOptions): this;
    /** Add a numeric input field with optional min/max bounds. */
    addNumber(key: string, label: string, options?: NumberFieldOptions): this;
    /** Add a boolean toggle / checkbox field. */
    addBoolean(key: string, label: string, options?: BooleanFieldOptions): this;
    /** Add a single-select enum field constrained to the given options list. */
    addEnum(key: string, label: string, options: string[], fieldOptions?: EnumFieldOptions): this;
    /** Add a multi-select field allowing zero or more items from the options list. */
    addMultiSelect(key: string, label: string, options: string[], fieldOptions?: MultiSelectOptions): this;
    /**
     * Build the final ElicitationRequest.
     * @throws {Error} when no fields have been added.
     */
    build(): ElicitationRequest;
}
//# sourceMappingURL=builder.d.ts.map