import { Fragment } from './fragments';
import { Point } from "./util/ranges";
declare type CounterData = {
    value: number;
    scope: HTMLElement;
    pseudoScope?: boolean;
};
declare type CountersData = {
    [counterName: string]: CounterData;
};
export declare type Counters = Map<HTMLElement, CountersData>;
export declare type CountersPseudo = "before" | "after";
export declare type CountersStack = {
    [counterName: string]: {
        element: Element;
        value: number;
        elemScope?: boolean;
    }[];
};
export declare type CountersValue = {
    [counterName: string]: number;
};
export declare function parseCounterValue(value: string): CountersValue;
export declare function getCounterValue(element: Element, counterName: string): number;
export declare function getPageCounterValue(pages: Fragment[], element: Element): number;
export declare function parseCounters(root: Element, stop: Point): CountersStack;
export declare function addElementCounters(element: Element, counters: CountersStack, pseudo?: CountersPseudo, forceDisplay?: boolean): void;
export {};
