/**
 * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
import type { CompressedOperationsData, CompressionInput, DecompressionInput } from '../compressor.js';
import type { ProtobufDescriptor } from '../protobuffactory.js';
import type { Operation } from '@ckeditor/ckeditor5-engine';
/**
 * Compresses and decompresses single operation to the binary format.
 */
export declare class OperationCompressor {
    constructor(id: number, operationName: string, protobufDescriptor: ProtobufDescriptor);
    /**
     * Serializes and consumes the first operation from the list.
     *
     * @param result Object to which compression result will be added.
     * @param input Input data to compress. The operation compressor will compress one operation (at `input.index`) and increment
     * `input.index`.
     */
    compress(result: CompressedOperationsData, input: CompressionInput): boolean;
    /**
     * Deserializes and consumes buffered operation.
     *
     * @param result Decompressed operation.
     * @param input Input data to decompress.
     */
    decompress(result: Array<Operation>, input: DecompressionInput): void;
}
