/** @module @airtable/blocks/ui: ViewPicker */ /** */
import * as PropTypes from 'prop-types';
import * as React from 'react';
import View from '../models/view';
import Table from '../models/table';
import { ViewType } from '../types/view';
import { SharedSelectBaseProps } from './select';
/**
 * Props shared between the {@link ViewPicker} and {@link ViewPickerSynced} components.
 */
export interface SharedViewPickerProps extends SharedSelectBaseProps {
    /** The parent table model to select views from. If `null` or `undefined`, the picker won't render. */
    table?: Table | null;
    /** An array indicating which view types can be selected. */
    allowedTypes?: Array<ViewType>;
    /** If set to `true`, the user can unset the selected view. */
    shouldAllowPickingNone?: boolean;
    /** The placeholder text when no view is selected. Defaults to `'Pick a view...'` */
    placeholder?: string;
    /** A function to be called when the selected view changes. */
    onChange?: (viewModel: View | null) => void;
}
export declare const sharedViewPickerPropTypes: {
    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 ViewType>[]>;
    shouldAllowPickingNone: PropTypes.Requireable<boolean>;
    placeholder: PropTypes.Requireable<string>;
    onChange: PropTypes.Requireable<(...args: any[]) => any>;
};
/**
 * Props for the {@link ViewPicker} component. Also accepts:
 * * {@link SelectStyleProps}
 *
 * @docsPath UI/components/ViewPicker
 */
interface ViewPickerProps extends SharedViewPickerProps {
    /** The selected view model. */
    view?: View | null;
}
declare const ForwardedRefViewPicker: React.ForwardRefExoticComponent<ViewPickerProps & React.RefAttributes<HTMLSelectElement>>;
export default ForwardedRefViewPicker;
