import { Pangu } from '../shared/index.js';
import { DomWalker } from './dom/dom-walker.js';
import { VisibilityDetector } from './dom/visibility-detector.js';
import { TaskQueue, TaskScheduler, type TaskSchedulerConfig } from './scheduling/task-scheduler.js';
export interface AutoSpacePageConfig {
    pageDelayMs?: number;
    nodeDelayMs?: number;
    nodeMaxWaitMs?: number;
}
interface UnsettledTextNode {
    node: Text;
    unspaced: string;
}
export interface SettledTextNode extends UnsettledTextNode {
    settled: string;
}
export interface LateFix {
    node: Text;
    settled: string;
    data: string;
}
export declare class BrowserPangu extends Pangu {
    private static readonly trailingWhitespace;
    private static readonly leadingWhitespace;
    private static readonly maxSyncTextNodes;
    private autoSpacePageObserver;
    private lastWrittenData;
    private 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 isGridOrFlexContainer;
    private spaceTextNodes;
    private holdsLateFix;
    private emitTextNodesSettled;
    private applyTextNodeSpacing;
    private spaceNodeSync;
    private withNeighborTextNodes;
    private hasSpacedTextInSubtree;
    private insertPanguElement;
    private findPreviousElementLastChar;
    private scanBetweenTextNodes;
    private isPrecedingNodeHidden;
    private isNodeHidden;
    private schedule;
    private setupAutoSpacePageObserver;
}
export declare const pangu: BrowserPangu;
export { DomWalker, TaskQueue, TaskScheduler, VisibilityDetector };
export type { TaskSchedulerConfig };
export default pangu;
//# sourceMappingURL=index.d.ts.map