import type { Printable } from 'tree-dump';
import type { PeritextEventTarget } from '../../events/PeritextEventTarget';
import type { UiLifeCycles } from '../types';
import type { Peritext } from '../../../json-crdt-extensions/peritext';
export interface CompositionControllerOpts {
    source: HTMLElement;
    txt: Peritext;
    et: PeritextEventTarget;
}
export declare class CompositionController implements UiLifeCycles, Printable {
    readonly opts: CompositionControllerOpts;
    composing: boolean;
    data: string;
    constructor(opts: CompositionControllerOpts);
    /** -------------------------------------------------- {@link UiLifeCycles} */
    start(): () => void;
    /** ----------------------------------------------------- {@link Printable} */
    toString(tab?: string): string;
}
