/**
* **FluentScrollLoadAutocompleteMenu**
*
* A drop‑in extension for MUI’s `<Autocomplete>` that:
*
* 1. Fetches paginated / sortable data from any REST endpoint
* 2. Implements infinite scrolling with automatic scroll‑position restore
* 3. Supports client‑side filtering, grouping
* 4. Displays a Material UI `<CircularProgress>` while loading and a MUI `<Alert>` on errors
*
* Internally it wraps **unity‑fluent‑library**’s `<FluentSelectMenu>` so you get the same
* keyboard navigation and styling as the rest of the Fluent controls.
*
* ---
*
* ### Typical usage
* ```jsx
* const endpoint = (q, page, size, sortCol, sortDir) =>
*   `/api/products?search=${q}&page=${page}&pageSize=${size}&sort=${sortCol}&dir=${sortDir}`;
*
* const map = (raw) => ({
*   items: raw.items,
*   total: raw.totalRows,
* });
*
* <FluentScrollLoadAutocompleteMenu
*   apiBaseUrl="https://api.example.com"
*   apiEndpoint={endpoint}
*   mapResponse={map}
*   onChange={(product) => console.log(product)}
* />
* ```
* ---
*
* @param {Object}   props
* @param {string}   props.apiBaseUrl   Base URL forwarded to **apiMutate**
* @param {Function} props.apiEndpoint  `(keyword, page, pageSize, sortCol, sortDir) => string`
* @param {Function} props.mapResponse  Maps raw API payload → `{ items, total }`
* @param {Function} [props.onChange]   Fires when the user selects/clears an option
* @param {Function} [props.getOptionLabel] Returns the display label for an item (default: `o.name`)
* @param {Function} [props.groupBy]    Returns a group heading string for an item
* @param {string}   [props.placeholder='Search…'] Placeholder text
* @param {string}   [props.displayProperty='name'] Property passed to `<FluentSelectMenu>`
* @param {number|string} [props.width=300] Fixed width of the component container
* @param {boolean}  [props.fetchEnabled=true] Disable to work fully offline
* @param {*}        [props.initialValue=null]  Pre‑selected value shown immediately
* @param {Array}    [props.initialOptions=[]]  Pre‑loaded options shown immediately
* @param {boolean}  [props.isPaginated=true]   Disable if your API returns the full list
* @param {boolean}  [props.isSortable=true]    Disable server‑side sorting
* @param {boolean}  [props.isFilterable=true]  Disable server‑side filtering
* @param {number}   [props.pageSize=50]        Items per page when paginating
* @param {string}   [props.sortColumn='Name']  Default sort column
* @param {'ASC'|'DESC'} [props.sortDirection='ASC'] Default sort direction
*
* @returns {JSX.Element}
*/
export declare const FluentScrollLoadAutocompleteMenu: {
    ({ apiBaseUrl, apiEndpoint, apiConfig, apiData, mapResponse, onChange, getOptionLabel, groupBy, placeholder, displayProperty, width, fetchEnabled, initialValue, initialOptions, isPaginated, isSortable, isFilterable, pageSize, sortColumn, sortDirection, }: {
        apiBaseUrl: string;
        apiEndpoint: Function;
        mapResponse: Function;
        onChange?: Function;
        getOptionLabel?: Function;
        groupBy?: Function;
        placeholder?: string;
        displayProperty?: string;
        width?: string | number;
        fetchEnabled?: boolean;
        initialValue?: any;
        initialOptions?: any[];
        isPaginated?: boolean;
        isSortable?: boolean;
        isFilterable?: boolean;
        pageSize?: number;
        sortColumn?: string;
        sortDirection?: "ASC" | "DESC";
    }): JSX.Element;
    propTypes: {
        /** Base URL used by apiMutate */
        apiBaseUrl: any;
        /** Builds the endpoint URL: (keyword, page, pageSize, sortCol, sortDir) => string */
        apiEndpoint: any;
        /** Additional config passed to apiMutate */
        apiConfig: any;
        /** Raw API data passed to apiMutate */
        apiData: any;
        /** Maps raw API payload into { items, total } */
        mapResponse: any;
        /** Called when the user selects or clears an option */
        onChange: any;
        /** Returns the text label for a given option */
        getOptionLabel: any;
        /** Returns the group heading for a given option */
        groupBy: any;
        placeholder: any;
        displayProperty: any;
        width: any;
        /* Behavior flags */
        fetchEnabled: any;
        initialValue: any;
        initialOptions: any;
        isPaginated: any;
        isSortable: any;
        isFilterable: any;
        pageSize: any;
        sortColumn: any;
        sortDirection: any;
    };
};
//# sourceMappingURL=FluentScrollLoadAutocompleteMenu.d.ts.map