import { DocumentEditor, Operation } from '../../index';
/**
 * @private
 */
export declare class CollaborativeEditingHandler {
    /**
     * @private
     */
    version: number;
    /**
     * @private
     */
    documentEditor: DocumentEditor;
    /**
     * @private
     */
    roomName: string;
    private userMap;
    private connectionId;
    private acknowledgmentPending;
    private pendingOps;
    private commentsStart;
    private commentsEnd;
    private deletedComments;
    private serviceUrl;
    private isSyncServerChanges;
    private logEventEnabled;
    private message;
    constructor(documentEditor: DocumentEditor, roomName: string, version: number, serviceUrl: string);
    private isAcknowledgePending;
    /**
     * Update action to server.
     * @private
     * @param args
     * @returns
     */
    sendActionServer(operations: Operation[]): void;
    /**
     * Apply remote action to document.
     * @private
     */
    applyAction(action: string, data: string | ActionInfo): void;
    private handleAcknowledgementReceived;
    private updateVersion;
    private acknowledgementReceived;
    private sendLocalOperation;
    private dataReceived;
    private getVersionDifference;
    private handleRemoteOperation;
    private transform;
    private skipAction;
    private applyRemoteOperation;
    private updateList;
    private updateListCollection;
    private getObjectByCommentId;
    private transformOperation;
    private transformSection;
    private transformRemoteCursor;
    private updateRemoteSelection;
    private removeCarets;
    private getColorForMember;
    private updateCaretPositionInteral;
    private getBlockPosition;
    private getBlockTotalLength;
    private getRelativePositionFromAbsolutePosition;
    private getBlockIndexFromHeaderFooter;
    private getBlockByIndex;
    private insertImage;
    private buildTable;
    private buildRow;
    private buildCell;
    private buildDeleteCells;
    private transformSelectionOperation;
    private documentSettings;
    private checkAndRetriveChangesFromServer;
    private applyChangesFromServer;
    private insertCharaterFormat;
    private insertParagraphFormat;
    private insertTableFormat;
    private insertRowFormat;
    private insertCellFormat;
    private insertSectionFormat;
    private logMessage;
}
/**
 * @private
 */
export interface ActionInfo {
    connectionId?: string;
    version?: number;
    timeStamp?: string;
    fileName?: string;
    operations?: Operation[];
    currentUser?: string;
}
