import CssClasses from './classes' import { debounce, hasClassInTree, isEqual } from './helpers' import Render from './render' import Select from './select' import Settings from './settings' import Store, { Option, Optgroup } from './store' // Export classes export { Settings, Option, Optgroup } // Export interfaces from render export type { Main, Content, Search } from './render' export interface Config { select: string | Element data?: (Partial)[] settings?: Partial cssClasses?: Partial events?: Events } export interface Events { search?: ( searchValue: string, currentData: (Option | Optgroup)[] ) => Promise<(Partial)[]> | (Partial)[] searchFilter?: (option: Option, search: string) => boolean addable?: ( value: string ) => Promise | string> | Partial