import type { Fragment } from './fragments'; import type { GCPMContext } from "./gcpm"; import { type Pseudo } from "./gcpm.js"; import { type BreakedElement } from "./breaks.js"; import type Mutations from "./mutations.js"; import type { Page } from "./pages"; export type CountersValue = { [counterName: string]: number; }; export declare function parseCounterProp(value: string): CountersValue; export declare function getCounterProp(value: CountersValue): string; export type CountersPseudo = "before" | "after"; export declare const counterScopesSym: unique symbol; export declare const counterScopesCarrierSym: unique symbol; export declare const counterChangeScopesSym: unique symbol; declare global { interface Element { [counterScopesSym]?: CounterScopes; [counterScopesCarrierSym]?: BreakedElement; [counterChangeScopesSym]?: CounterScopes; } } export type CounterScopes = Record; export interface CounterScope { cursor?: number; changes: CounterChange[]; } export interface CounterChange { element: Element; pseudo?: Pseudo; reset?: boolean; value: number; } type CountersValueMap = Map; type CountersToWrite = { onElem: CountersValueMap; onDesc: CountersValueMap; }; export declare function parseCounters(root: Element, from?: Element, scopesElems?: Record, gcpmContext?: GCPMContext): void; export declare function addElementCounters(element: Element, scopesElems: Record, pseudo: Pseudo, style?: CSSStyleDeclaration): void; export declare function getCounterScopes(elem: Element): CounterScopes; export declare function reconstructScopeElems(start: Element): Record; export declare function writePageCounters(page: Page, mutations: Mutations): void; export declare function writeBreakCounters(root: BreakedElement, mutations: Mutations, countersToWrite?: CountersToWrite): void; export declare function writeElemCounters(elem: HTMLElement, mutations: Mutations, countersToWrite?: CountersToWrite): void; export declare function writeCounters(toWrite: CountersToWrite, mutations: Mutations): void; export declare function getScopeCounterValue(scope: CounterScope, elem: Element): number; export declare function getCounterValueFromStyle(element: Element, counterName: string): number; export declare function getCounterValueFromScopes(elem: Element, counterName: string): number; export declare function getPageRawCounterValue(pages: Fragment[], element: Element): number; export {};