import { AutocompleteScopeApi, BaseItem } from './AutocompleteApi'; import { AutocompleteOptions } from './AutocompleteOptions'; import { PluginReshape } from './AutocompleteReshape'; import { OnSelectParams, OnActiveParams, OnResolveParams } from './AutocompleteSource'; declare type PluginSubscriber = (params: TParams) => void; export interface PluginSubscribeParams extends AutocompleteScopeApi { onSelect(fn: PluginSubscriber>): void; onActive(fn: PluginSubscriber>): void; onResolve(fn: PluginSubscriber>): void; } export declare type AutocompletePlugin = Partial, 'onStateChange' | 'onSubmit' | 'onReset'> & Pick, 'getSources'>> & { /** * The function called when Autocomplete starts. * * It lets you subscribe to lifecycle hooks and interact with the instance's state and context. * * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/plugins/#param-subscribe */ subscribe?(params: PluginSubscribeParams): void; /** * An extra plugin object to expose properties and functions as APIs. * * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/plugins/#param-data */ data?: TData; /** * A name to identify the plugin. * * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/plugins/#param-name */ name?: string; /** * A function to reshape the sources. * * It gets called before the user's reshape function. */ reshape?: PluginReshape; /** * @internal */ __autocomplete_pluginOptions?: Record; }; export {};