import { default as React } from 'react';
import { FormFieldStyles } from '../Field/Shell/types';
/** Styling contract for the `styles` prop — FormFieldStyles plus Select-specific keys. */
export interface SelectStyles extends FormFieldStyles {
    /** @deprecated No-op — use the top-level `variant` prop; scheduled for removal. */
    variant?: 'standard' | 'outlined' | 'filled';
    /** @deprecated No-op — use the top-level `size` prop; scheduled for removal. */
    size?: 'small' | 'medium';
    /** @deprecated No-op — use the top-level `fullWidth` prop; scheduled for removal. */
    fullWidth?: boolean;
}
export interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
    children?: React.ReactNode;
    styles?: SelectStyles;
    variant?: 'standard' | 'outlined' | 'filled';
    size?: 'small' | 'medium';
    fullWidth?: boolean;
    error?: boolean;
    displayEmpty?: boolean;
    /**
     * Form-engine binding key (also forwarded to the native `<select name>`).
     * When inside a `<Form>` with no explicit `value`, `useFieldBinding` pulls the
     * value/onChange from the form engine; otherwise the caller's explicit
     * value/onChange pass through unchanged (back-compat).
     */
    name?: string;
    /** Stable test selector — emitted as `data-field-name`; defaults to `name`. */
    dataFieldName?: string;
}
declare const Select: React.FC<SelectProps>;
export default Select;
//# sourceMappingURL=index.d.ts.map