import { walk } from "./util.js"; export type ForcedBreakType = 'always' | 'page' | 'column' | 'left' | 'right' | 'recto' | 'verso' | '-ps-column-span'; export interface Flow { range: Range; pageName: string; pageGroupStart: boolean; breakType: ForcedBreakType; maxTextLength: boolean; } /** Iterate over block elements except inner SVG elements */ export declare const flowPredicate: walk.NodePredicate; /** * Iterator of continuous flow * * A continuous flow is a range of contents not interrupted by forced page breaks. */ export declare class FlowIterator implements Iterable { walker: walk.TypedTreeWalker; rootPageName: string; remaining: Range; forcedBreakTypes: ForcedBreakType[]; nextBreakType: ForcedBreakType; nextPageGroupStart: boolean; maxTextLength: number; resetOnNext: boolean; columnSpanBreak: 'box' | 'element'; pageNames: string[]; /** * ContinuousFlowIterator constructor * @param root The root element to parse * @param forcedBreakTypes List of values to use as forced break * @param maxTextLength * @param firstBreakType Type of the break, usefull on repagination */ constructor(root: Element, forcedBreakTypes: ForcedBreakType[], maxTextLength?: number, firstBreakType?: ForcedBreakType); [Symbol.iterator](): Iterator; reset(): void; /** * Iterate to the next page break start */ next(): Flow; _checkBreakAfter(currentElement: HTMLElement, flow: Flow, style?: CSSStyleDeclaration): ForcedBreakType | null; }