import { Node } from './latex_parser_types'; export type Typeguard = ((x: Node) => x is T) | ((x: Node) => boolean); export declare function getChildNodes(node: Node): Node[]; /** * A finder result. */ export type FindResult = { /** * The found node. */ node: T; /** * The parent node of the found node. */ parent?: FindResult

; }; /** * Find a node satisfying `typeguard` in `nodes` traversely. * @param nodes The array of nodes where to be searched. * @param typeguard If this is actually a type guard, the matched result will be typed. * @param parent internal-use only. */ export declare function find(nodes: Node[], typeguard?: Typeguard, parent?: FindResult): FindResult | undefined; /** * Find all the nodes satisfying `typeguard` in `nodes` traversely. * @param nodes The array of nodes where to be searched. * @param typeguard If this is actually a type guard, the matched result will be typed. * @param parent internal-use only. */ export declare function findAll(nodes: Node[], typeguard?: Typeguard, parent?: FindResult): FindResult[]; export type SequenceResult = { nodes: Ts; parent?: FindResult

; }; /** @ignore */ export declare function findAllSequences(nodes: Node[], typeguards: [Typeguard], parent?: FindResult): SequenceResult<[T]>[]; /** @ignore */ export declare function findAllSequences(nodes: Node[], typeguards: [Typeguard, Typeguard], parent?: FindResult): SequenceResult<[T1, T2]>[]; /** @ignore */ export declare function findAllSequences(nodes: Node[], typeguards: [Typeguard, Typeguard, Typeguard], parent?: FindResult): SequenceResult<[T1, T2, T3]>[]; /** @ignore */ export declare function findAllSequences(nodes: Node[], typeguards: [Typeguard, Typeguard, Typeguard, Typeguard], parent?: FindResult): SequenceResult<[T1, T2, T3, T4]>[]; /** @ignore */ export declare function findAllSequences(nodes: Node[], typeguards: [Typeguard, Typeguard, Typeguard, Typeguard, Typeguard], parent?: FindResult): SequenceResult<[T1, T2, T3, T4, T5]>[]; /** * Find all the sequences of nodes satisfying `typeguard[]` in `nodes` traversely. * @param nodes The array of nodes where to be searched. * @param typeguards The array of `typeguard`s. Each node must satisfy each `typeguard`, respectively. * If this is actually a type guard, the matched result will be typed. * @param parent internal-use only. */ export declare function findAllSequences(nodes: Node[], typeguards: Typeguard[], parent?: FindResult): SequenceResult[]; /** * Gives priority to line and column over offset. */ export type Position = PositionLc | PositionOs; /** * Line and column-based position. */ export type PositionLc = { /** * The one-based line value. */ line: number; /** * The one-based column value. */ column: number; /** * The zero-based offset value. */ offset?: number; includeStart?: boolean; includeEnd?: boolean; }; /** * Offset-based position. */ export type PositionOs = { /** * The one-based line value. */ line?: number; /** * The one-based column value. */ column?: number; /** * The zero-based offset value. */ offset: number; includeStart?: boolean; includeEnd?: boolean; }; /** * Find a node at the position. * @param nodes The array of nodes where to be searched * @param pos * @param parent internal-use only */ export declare function findNodeAt(nodes: Node[], pos: Position, parent?: FindResult): FindResult | undefined;