/** * @license * Copyright (c) 2015 - 2026 Vaadin Ltd. * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ */ import type { Constructor } from '@open-wc/dedupe-mixin'; export type ComboBoxDataProviderCallback = (items: TItem[], size?: number) => void; export interface ComboBoxDataProviderParams { page: number; pageSize: number; filter: string; } export type ComboBoxDataProvider = ( params: ComboBoxDataProviderParams, callback: ComboBoxDataProviderCallback, ) => void; export declare function ComboBoxDataProviderMixin>( base: T, ): Constructor> & T; export declare class ComboBoxDataProviderMixinClass { /** * Number of items fetched at a time from the dataprovider. * @attr {number} page-size */ pageSize: number; /** * Total number of items. */ size: number | undefined; /** * Function that provides items lazily. Receives arguments `params`, `callback` * * `params.page` Requested page index * * `params.pageSize` Current page size * * `params.filter` Currently applied filter * * `callback(items, size)` Callback function with arguments: * - `items` Current page of items * - `size` Total number of items. */ dataProvider: ComboBoxDataProvider | null | undefined; /** * Clears the cached pages and reloads data from dataprovider when needed. */ clearCache(): void; }