import { type TypedArrayType } from '../helper/encode.js';
/** 编码至 ubjson */
export declare abstract class EncoderBase {
    /** 序列化对象时排序属性 */
    sortObjectKeys: boolean;
    /** 当前写指针位置 */
    protected length: number;
    /** 数据 */
    protected data: Uint8Array;
    /** buffer 的 DataView */
    protected view: DataView;
    /**
     * 确保 buffer 还有 capacity 的空闲空间
     */
    protected abstract ensureCapacity(capacity: number): void;
    /** 编码至 ubjson，对于 `undefined` 写入 NOOP */
    protected writeValue(value: unknown): void;
    /** 写入一个对象 */
    private write;
    /** writeStringData */
    private writeStringData;
    /** 写入大字符串 */
    protected writeLargeStringData(value: string): void;
    /** 写入数组 */
    protected writeLargeTypedArrayData(type: TypedArrayType, value: ArrayBufferView): void;
}
//# sourceMappingURL=encoder.d.ts.map