import type { Universe } from '@ephox/boss'; import type { Optional } from '@ephox/katamari'; import * as Extract from '../../extract/Extract'; import * as ExtractText from '../../extract/ExtractText'; import * as Find from '../../extract/Find'; import type { TypedItem } from '../data/TypedItem'; import type { SpotPoint } from '../data/Types'; type FromApi = (universe: Universe, item: E, optimise?: (e: E) => boolean) => TypedItem[]; const from: FromApi = Extract.typed; type AllApi = (universe: Universe, item: E, optimise?: (e: E) => boolean) => E[]; const all: AllApi = Extract.items; type ExtractApi = (universe: Universe, child: E, offset: number, optimise?: (e: E) => boolean) => SpotPoint; const extract: ExtractApi = Extract.extract; type ExtractToApi = (universe: Universe, child: E, offset: number, pred: (e: E) => boolean, optimise?: (e: E) => boolean) => SpotPoint; const extractTo: ExtractToApi = Extract.extractTo; type FindApi = (universe: Universe, parent: E, offset: number, optimise?: (e: E) => boolean) => Optional>; const find: FindApi = Find.find; type ToTextApi = (universe: Universe, item: E, optimise?: (e: E) => boolean) => string; const toText: ToTextApi = ExtractText.from; export { extract, extractTo, all, from, find, toText };