import { BehaviorSubject } from 'rxjs';
import { Log } from '../../../json-crdt/log/Log';
import { DomController } from '../dom/DomController';
import type { PeritextPlugin } from '../react/types';
import type { Peritext } from '../../../json-crdt-extensions/peritext/Peritext';
import type { PeritextEventDefaults } from '../../../json-crdt-extensions/peritext/events/defaults/PeritextEventDefaults';
import type { UiLifeCycles } from '../types';
export declare class PeritextSurfaceState implements UiLifeCycles {
    readonly events: PeritextEventDefaults;
    readonly plugins: PeritextPlugin[];
    readonly peritext: Peritext;
    readonly dom: DomController;
    readonly log: Log;
    readonly render$: BehaviorSubject<number>;
    /** Overlay portal container element. */
    portalEl: HTMLDivElement | undefined;
    readonly rerender: () => void;
    constructor(events: PeritextEventDefaults, plugins: PeritextPlugin[]);
    /** -------------------------------------------------- {@link UiLifeCycles} */
    el: HTMLElement;
    start(): () => void;
}
