import { Pangu } from '../shared/index.js';
import { VisibilityDetector } from './dom/visibility-detector.js';
import { TaskScheduler } from './scheduling/task-scheduler.js';
export interface AutoSpacePageConfig {
    pageDelayMs?: number;
    nodeDelayMs?: number;
    nodeMaxWaitMs?: number;
}
interface UnsettledTextNode {
    readonly node: Text;
    readonly unspaced: string;
}
export interface SettledTextNode extends UnsettledTextNode {
    readonly settled: string;
}
export interface LateFix {
    readonly node: Text;
    readonly settled: string;
    readonly data: string;
}
export declare class BrowserPangu extends Pangu {
    private static readonly maxSyncTextNodes;
    private autoSpacePageObserver;
    private readonly lastWrittenData;
    private readonly lateFixedTextNodes;
    readonly taskScheduler: TaskScheduler;
    readonly visibilityDetector: VisibilityDetector;
    onTextNodesSettled: ((settledTextNodes: SettledTextNode[]) => void) | null;
    autoSpacePage({ pageDelayMs, nodeDelayMs, nodeMaxWaitMs }?: AutoSpacePageConfig): void;
    spacePage(): void;
    spaceNode(node: Node): void;
    stopAutoSpacePage(): void;
    applyLateFixes(lateFixes: readonly LateFix[]): void;
    private isSpaceLikeSibling;
    private isGridOrFlexContainer;
    private spaceTextNodes;
    private holdsLateFix;
    private emitTextNodesSettled;
    private applyTextNodeSpacing;
    private spaceNodeSync;
    private withNeighborTextNodes;
    private hasSpacedTextInSubtree;
    private insertPanguElement;
    private findPreviousElementLastChar;
    private scanBetweenTextNodes;
    private isHiddenBoundaryBefore;
    private isHiddenBoundaryAfter;
    private schedule;
    private setupAutoSpacePageObserver;
}
export declare const pangu: BrowserPangu;
export default pangu;
//# sourceMappingURL=pangu.d.ts.map