/** @module @airtable/blocks/ui: FieldPicker */ /** */
import * as PropTypes from 'prop-types';
import * as React from 'react';
import Field from '../models/field';
import Table from '../models/table';
import { FieldType } from '../types/field';
import { SharedSelectBaseProps } from './select';
/**
 * Props shared between the {@link FieldPicker} and {@link FieldPickerSynced} components.
 */
export interface SharedFieldPickerProps extends SharedSelectBaseProps {
    /** The parent table model to select fields from. If `null` or `undefined`, the picker won't render. */
    table?: Table | null;
    /** An array indicating which field types can be selected. */
    allowedTypes?: Array<FieldType>;
    /** If set to `true`, the user can unset the selected field. */
    shouldAllowPickingNone?: boolean;
    /** The placeholder text when no field is selected. */
    placeholder?: string;
    /** A function to be called when the selected field changes. */
    onChange?: (fieldModel: Field | null) => void;
}
export declare const sharedFieldPickerPropTypes: {
    onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
    onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
    onClick: PropTypes.Requireable<(...args: any[]) => any>;
    hasOnClick: PropTypes.Requireable<boolean>;
    size: PropTypes.Validator<any>;
    autoFocus: PropTypes.Requireable<boolean>;
    disabled: PropTypes.Requireable<boolean>;
    id: PropTypes.Requireable<string>;
    name: PropTypes.Requireable<string>;
    tabIndex: PropTypes.Requireable<number>;
    className: PropTypes.Requireable<string>;
    style: PropTypes.Requireable<object>;
    "aria-label": PropTypes.Requireable<string>;
    "aria-labelledby": PropTypes.Requireable<string>;
    "aria-describedby": PropTypes.Requireable<string>;
    table: PropTypes.Requireable<Table>;
    allowedTypes: PropTypes.Requireable<import("../private_utils").ObjectValues<typeof FieldType>[]>;
    shouldAllowPickingNone: PropTypes.Requireable<boolean>;
    placeholder: PropTypes.Requireable<string>;
    onChange: PropTypes.Requireable<(...args: any[]) => any>;
};
/**
 * Props for the {@link FieldPicker} component. Also accepts:
 * * {@link SelectStyleProps}
 *
 * @docsPath UI/components/FieldPicker
 */
interface FieldPickerProps extends SharedFieldPickerProps {
    /** The selected field model. */
    field?: Field | null;
}
declare const ForwardedRefFieldPicker: React.ForwardRefExoticComponent<FieldPickerProps & React.RefAttributes<HTMLSelectElement>>;
export default ForwardedRefFieldPicker;
