import { default as React } from 'react';
import { FieldStyleOverrides } from '../../Shell';
export interface DropdownOption {
    value: string | number;
    icon?: React.ReactNode;
    _id?: string;
}
export interface DropdownProps {
    label: string;
    options: DropdownOption[];
    defaultValue?: string | number;
    /**
     * Canonical primitive-value onChange. Receives the resolved
     * selection value — `option._id` when present, otherwise
     * `option.value` — as a string. This collapses the previous
     * synthetic `ChangeEvent<HTMLSelectElement>` into the value-only
     * shape used by every other Field. Consumers that previously
     * destructured `e.target.value` simply use `value` directly.
     */
    onChange?: (value: string) => void;
    onBlur?: React.FocusEventHandler<HTMLButtonElement>;
    onFocus?: React.FocusEventHandler<HTMLButtonElement>;
    value?: string | number;
    showIdColumns?: boolean;
    helperText?: string;
    /** Error message rendered below the trigger; sets aria-invalid. */
    error?: string | boolean;
    /** Stable test selector — emitted as `data-field` on the wrapper. */
    dataField?: string;
    /** Stable test selector — emitted as `data-field-name` on the wrapper. */
    dataFieldName?: string;
    /**
     * Entity field key. Emitted as `data-field-name` (unless `dataFieldName`
     * is set explicitly) so a single `name="<entityFieldKey>"` gives the stable
     * test anchor the recommender targets via `[data-field-name="<key>"]`.
     */
    name?: string;
    styles?: FieldStyleOverrides & {
        fullWidth?: boolean;
    };
}
/**
 * Accessible single-select dropdown built on FieldShell, with a combobox
 * trigger, an absolutely-positioned listbox menu, and full keyboard navigation.
 * Auto-binds its value by `name` inside a goobs `<Form>` and emits the stable
 * `[role=combobox]`/`[role=option]` structure tests target.
 */
declare const Dropdown: React.FC<DropdownProps>;
export default Dropdown;
//# sourceMappingURL=index.d.ts.map