import * as Ast from '@unified-latex/unified-latex-types'; /** * Joins an array of arrays with the item `sep` */ export declare function arrayJoin(array: T[][], sep: T | T[]): T[]; /** * Split a list of nodes based on whether `splitFunc` returns `true`. * If `onlySplitOnFirstOccurrence` is set to true in the `options` object, then * there will be at most two segments returned. */ export declare function splitOnCondition(nodes: Ast.Node[], splitFunc?: (node: Ast.Node) => boolean, options?: { onlySplitOnFirstOccurrence?: boolean; }): { segments: Ast.Node[][]; separators: Ast.Node[]; }; /** * Split an array of AST nodes based on a macro. An object `{segments: [], macros: []}` * is returned. The original array is reconstructed as * `segments[0] + macros[0] + segments[1] + ...`. * * @param {[object]} ast * @param {(string|[string])} macroName * @returns {{segments: [object], macros: [object]}} */ export declare function splitOnMacro(ast: Ast.Node[], macroName: string | string[]): { segments: Ast.Node[][]; macros: Ast.Macro[]; }; /** * Does the reverse of `splitOnMacro` */ export declare function unsplitOnMacro({ segments, macros, }: { segments: Ast.Node[][]; macros: Ast.Node[] | Ast.Node[][]; }): Ast.Node[]; export { }