/** @module @airtable/blocks/ui: Select */ /** */
import * as PropTypes from 'prop-types';
import * as React from 'react';
/**
 * Supported value types for {@link SelectOption}.
 */
export declare type SelectOptionValue = string | number | boolean | null | undefined;
/** @internal */
export declare function isSelectOptionValue(value: unknown): value is SelectOptionValue;
/**
 * A select option for {@link Select}, {@link TablePicker}, {@link ViewPicker}, {@link FieldPicker}, and their `Synced` counterparts.
 */
export interface SelectOption {
    /** The value for the select option. */
    value: SelectOptionValue;
    /** The label for the select option. */
    label: React.ReactNode;
    /** If set to `true`, this option will not be selectable. */
    disabled?: boolean;
}
export declare const selectOptionValuePropType: PropTypes.Validator<string | number | boolean>;
export declare const validateOptions: (options: Array<SelectOption>) => {
    isValid: boolean;
    reason: string;
} | {
    isValid: boolean;
    reason?: undefined;
};
/** @internal */
export declare function optionValueToString(value: SelectOptionValue): string;
/** @internal */
export declare function stringToOptionValue(valueJson: string): SelectOptionValue;
