import type { ReactNode } from 'react';
export type SelectWidgetOption = {
    value: string;
    label: ReactNode;
    description?: ReactNode;
    disabled?: boolean;
};
export type SelectWidgetProps = {
    id?: string;
    label: string;
    value: string | null;
    onChange: (value: string) => void;
    options: SelectWidgetOption[];
    description?: ReactNode;
    hint?: ReactNode;
    error?: ReactNode;
    placeholder?: string;
    triggerClassName?: string;
    size?: 'sm' | 'default';
    disabled?: boolean;
    className?: string;
    labelClassName?: string;
    descriptionClassName?: string;
    renderOption?: (option: SelectWidgetOption, state: {
        selected: boolean;
    }) => ReactNode;
    renderValue?: (option: SelectWidgetOption | undefined) => ReactNode;
    dataPath?: string;
};
/**
 * Standalone select widget with block-form styling parity. Supports custom option
 * renderers while maintaining accessible labelling and message semantics.
 */
export declare function SelectWidget(props: SelectWidgetProps): import("react/jsx-runtime").JSX.Element;
