import { StructureSchema } from '@ephox/boulder'; import type { Optional, Result } from '@ephox/katamari'; import type { CardMenuItemSpec } from '../menu/CardMenuItem'; import { type SeparatorMenuItem, type SeparatorMenuItemSpec } from '../menu/SeparatorMenuItem'; export type ColumnTypes = number | 'auto'; export type SeparatorItemSpec = SeparatorMenuItemSpec; export interface AutocompleterItemSpec { type?: 'autocompleteitem'; value: string; text?: string; icon?: string; meta?: Record; } export type AutocompleterContents = SeparatorItemSpec | AutocompleterItemSpec | CardMenuItemSpec; export type SeparatorItem = SeparatorMenuItem; export interface AutocompleterItem { type: 'autocompleteitem'; value: string; text: Optional; icon: Optional; active: boolean; enabled: boolean; meta: Record; } export interface AutocompleterSpec { type?: 'autocompleter'; trigger: string; minChars?: number; columns?: ColumnTypes; matches?: (rng: Range, text: string, pattern: string) => boolean; fetch: (pattern: string, maxResults: number, fetchOptions: Record) => Promise; onAction: (autocompleterApi: AutocompleterInstanceApi, rng: Range, value: string, meta: Record) => void; maxResults?: number; highlightOn?: string[]; } export interface AutocompleterInstanceApi { hide: () => void; reload: (fetchOptions: Record) => void; } export interface Autocompleter { type: 'autocompleter'; trigger: string; minChars: number; columns: ColumnTypes; matches: Optional<(rng: Range, text: string, pattern: string) => boolean>; fetch: (pattern: string, maxResults: number, fetchOptions: Record) => Promise; onAction: (autocompleterApi: AutocompleterInstanceApi, rng: Range, value: string, meta: Record) => void; maxResults: number; highlightOn: string[]; } export declare const createSeparatorItem: (spec: SeparatorItemSpec) => Result>; export declare const createAutocompleterItem: (spec: AutocompleterItemSpec) => Result>; export declare const createAutocompleter: (spec: AutocompleterSpec) => Result>; //# sourceMappingURL=Autocompleter.d.ts.map