/// <reference types="react" />
import { SelectAsyncOption } from "./index";
type LoadOptionsParams = {
    search?: string;
    cursor?: any;
    page?: number;
    pageSize: number;
};
type LoadOptionsResult = {
    options: SelectAsyncOption[];
    hasMore: boolean;
    nextCursor?: any;
};
export interface SelectAsyncProps {
    name?: string;
    label?: string;
    placeholder?: string;
    isMultiple?: boolean;
    isClearable?: boolean;
    isDisabled?: boolean;
    pageSize?: number;
    /** Maps for option fields */
    textField?: string;
    valueField?: string;
    /** If provided, component becomes controlled by this tuple */
    selectedState?: [any, React.Dispatch<any>];
    /** Or provide explicit value/onChange like the regular Select */
    value?: any;
    onChange?: (value: any) => void;
    /** Async loader: must return a page of options */
    loadOptions: (params: LoadOptionsParams) => Promise<LoadOptionsResult>;
    /** Optional: show selected pills inside control the same as Select */
    showSelection?: boolean;
    /** Color theme for pills inside the select */
    pillColor?: string;
    /** Variant for pills (filled or outlined) */
    pillVariant?: "filled" | "outlined";
    className?: string;
    style?: React.CSSProperties;
    hideSelectedOptions?: boolean;
    noOptionsMessage?: () => React.ReactNode;
    /** If true, loads options when menu opens. If false, only loads when user types */
    loadOnOpen?: boolean;
    /** Callback fired when the component receives focus */
    onFocus?: () => void;
    /** Callback fired when the component loses focus */
    onBlur?: () => void;
    showPills?: boolean;
}
export {};
