UNPKG

@phroun/paged-buffer

Version:

High-performance buffer system for editing massive files with intelligent memory management and undo/redo capabilities

85 lines 2.72 kB
/** * @fileoverview Operation Distance Calculator * Calculates logical distance between buffer operations for merge decisions * @author Jeffrey R. Day * @version 1.0.0 */ import { type OperationType, type BufferOperation, type DistanceCalculationOptions } from '../types/common'; /** * Represents position information for an operation */ declare class OperationPosition { preExecution: number; postExecution: number | null; constructor(preExecution: number, postExecution?: number | null); /** * Set the post-execution position */ setPostExecution(position: number): void; /** * Check if this position info is complete (has both pre and post execution positions) */ isComplete(): boolean; } /** * Lightweight operation descriptor for distance calculations */ declare class OperationDescriptor { type: OperationType; position: OperationPosition; dataLength: number; originalDataLength: number; operationNumber: number; constructor(type: OperationType, position: number, dataLength?: number, originalDataLength?: number, operationNumber?: number); /** * Create from a BufferOperation */ static fromBufferOperation(bufferOp: BufferOperation): OperationDescriptor; /** * Set post-execution position */ setPostExecutionPosition(position: number): void; /** * Get the length of content this operation adds to the final buffer */ getInsertedLength(): number; } /** * Calculator for logical distance between operations */ declare class OperationDistanceCalculator { /** * Calculate logical distance between two operations */ static calculateDistance(op1: OperationDescriptor, op2: OperationDescriptor, options?: DistanceCalculationOptions): number; /** * Calculate the range affected by an operation in post-execution coordinates */ private static _calculateOperationRange; /** * Calculate distance from an operation to a range */ private static _calculateDistanceToRange; /** * Calculate distance for insert operations */ private static _calculateInsertDistance; /** * Calculate distance for delete operations */ private static _calculateDeleteDistance; /** * Calculate distance for overwrite operations */ private static _calculateOverwriteDistance; /** * Log debug distance calculation */ private static _logDistanceCalculation; /** * Get debug distance calculation */ private static _getDebugDistanceCalculation; } export { OperationPosition, OperationDescriptor, OperationDistanceCalculator }; //# sourceMappingURL=operation-distance.d.ts.map