export declare function countItems(arr: T[]): { item: T; count: number; }[]; export declare function countConsecutiveItems(arr: T[]): { item: T; count: number; }[]; declare abstract class BufferCursor { buffer: Uint8Array; pointer: number; constructor(bufOrLength: Uint8Array | number); /** * 安全地将 pointer 向前移动指定字节数。 * @param bytes 要移动的字节数 * @returns 原来 pointer 的值 * @throws RangeError 如果越界 */ protected increasePointer(bytes: number): number; } export declare class BufferWriter extends BufferCursor { constructor(length: number); writeUint32LE(value: number): this; writeUint32BE(value: number): this; writeUint16LE(value: number): this; writeUint16BE(value: number): this; writeUint8(value: number): this; writeString(str: string): this; } export declare class BufferReader extends BufferCursor { constructor(buf: Uint8Array); readUint32LE(): number; readUint32BE(): number; readUint16LE(): number; readUint16BE(): number; readUint8(): number; readString(length: number): string; readRemaining(): Uint8Array; } export declare const arrayEquals: (a: T[], b: T[]) => boolean; export {};