import { EncoderBase } from './base/encoder.js';
import type { EncodeOptions } from './options.js';
/** 编码至 ubjson */
export declare class Encoder extends EncoderBase {
    private readonly flushedBuffers;
    /** 通过内存池减少分配 */
    private readonly pool;
    /** 缓存当前容量，避免对象访问耗时 */
    private capacity;
    /**
     * 确保 buffer 还有 capacity 的空闲空间
     */
    protected ensureCapacity(capacity: number): void;
    /** 提交并扩容 */
    protected flushBuffer(capacity: number): void;
    /** 分配 buffer */
    private allocUnsafe;
    /** 获取结果 */
    private getResult;
    /** 抛弃结果 */
    private cleanResult;
    /** 获取写入结果 */
    encode(value: unknown): Uint8Array<ArrayBuffer>;
    /** 获取写入结果 */
    encodeMany(value: Iterable<unknown>): Uint8Array<ArrayBuffer>;
}
/** 获取默认的编码器 */
export declare function getEncoder(options?: EncodeOptions): Encoder;
/** 重置编码器, For testing only */
export declare function resetEncoder(): void;
//# sourceMappingURL=encoder.d.ts.map