import * as Ast from '@unified-latex/unified-latex-types'; import { default as Trie } from 'trie-prefix-tree'; /** * Efficiently search for a large number of strings using a prefix-tree. * The longest match is returned. * * @param options.startIndex the index to start scanning at. Defaults to 0. * @param options.matchSubstrings whether to allow matching only part of a substring. * @param options.assumeOneCharStrings assume that all strings are one character long (for example, like they are in math mode) */ export declare function prefixMatch(nodes: Ast.Node[], prefixes: string | string[] | ReturnType, options?: { startIndex?: number; matchSubstrings?: boolean; assumeOneCharStrings?: boolean; }): { match: string; endNodeIndex: number; endNodePartialMatch: string | null; } | null; /** * Scan `nodes` looking for the first occurrence of `token`. * If `options.onlySkipWhitespaceAndComments==true`, then the scan * will only skip whitespace/comment nodes. */ export declare function scan(nodes: (Ast.Node | Ast.Argument)[], token: string | Ast.Node | Ast.Argument, options?: { /** * Index to start scanning. */ startIndex?: number; /** * If `true`, whitespace and comments will be skilled but any other * node that doesn't match `token` will cause the scan to terminate. */ onlySkipWhitespaceAndComments?: boolean; /** * If `true`, will look inside `Ast.String` nodes to see if the string contents * contain `token`. */ allowSubstringMatches?: boolean; }): number | null; export { Trie } export { }