import { CssContextOptions } from "./css";
import { Point } from "./util/ranges";
import { Areas, Box, Float, LayoutProcessor, LayoutProcessorEvents, LayoutProcessorOptions } from "./layout";
import Mutations from "./mutations";
export declare class Fragment {
    container: HTMLElement;
    body: HTMLElement;
    area: HTMLElement;
    areas: Areas;
    number: number;
}
export interface FragmentorOptions extends LayoutProcessorOptions, CssContextOptions {
    dest?: HTMLElement;
    maxFragmentTextLength: number;
}
export interface FragmentorEvents extends LayoutProcessorEvents {
}
export declare type LayoutProcessResult = {
    boxes: Box[];
    floats: Float[];
    overflowPoint: Point;
} | {
    breakPoint: Point;
};
export declare abstract class Fragmentor<Options extends FragmentorOptions = FragmentorOptions, Events extends FragmentorEvents = FragmentorEvents> extends LayoutProcessor<Options, Events> {
    static defaultOptions: FragmentorOptions;
    dest: HTMLElement;
    fragments: Fragment[];
    currentFragment: Fragment;
    fragmentStartMut: Mutations;
    imagesToLoad: Set<string>;
    logNoValidBreakPoint: boolean;
    protected constructor(source: HTMLElement, options?: Partial<Options>);
    onFragmentStart(fragment: Fragment, forcedBreak: boolean): void;
    onFragmentBreak(fragment: Fragment): void;
    setLastBreakedHeight(container: HTMLElement): void;
    addImagesToLoad(fragment: Fragment): void;
}
export declare function createAreas(fragment: Fragment, areasProp?: string): void;
export declare function cleanupAreas(fragment: Fragment): void;
