import { default as React } from 'react';

interface IOption {
    id: string | number;
    value: string | number;
    label: string | React.ReactNode;
    disabled?: boolean;
    isGroup?: boolean;
    options?: IOption[];
    searchLabel?: string;
}
interface CustomFetchApiParams {
    search?: string;
    filters?: any;
    limit: number;
    skip: number;
    select?: string;
    order?: string;
}
interface CustomFetchApiResponse {
    data: IOption[];
    pagination?: {
        totalCount: number;
    };
}
interface SearchableSelectProps {
    labelId: string;
    label: string;
    value: any;
    onChange?: (event: any, selectedData?: any) => void;
    options: IOption[];
    multiple?: boolean;
    placeholder?: string;
    size?: "small" | "medium";
    searchPlaceholder?: string;
    CustomDropDownIcon: React.ReactNode;
    customStyle: any;
    name?: string;
    defaultValue?: any;
    apiType?: string;
    isInternal?: boolean;
    autoFocus?: any;
    error?: any;
    disabled: any;
    customeFilter?: string;
    attributes?: string;
    getSelectedData?: (row: any) => void;
    disabledIds: any[];
    labelKey?: string;
    valueKey?: string;
    inputStyle?: any;
    onChipRemove?: (value: string) => void;
    selectedLabel?: string;
    is_loading?: boolean;
    hasParent?: boolean;
    sortOrder?: string;
    handleChange?: (value: string | string[]) => void;
    enable_footer?: boolean;
    onFooterClick?: () => void;
    showCancelButton?: boolean;
    /** Custom API function to fetch options from parent component */
    customFetchApi?: (params: CustomFetchApiParams) => Promise<CustomFetchApiResponse>;
    addType?: string;
    isMergeOptions?: boolean;
    attributes?: string[];
    modalComponentProps?: any;
}
declare const SearchableSelect: React.FC<SearchableSelectProps>;
export default SearchableSelect;
