UNPKG

hackpro-sdk

Version:
37 lines (36 loc) 1.21 kB
/// <reference types="node" /> import { Hash } from 'crypto'; import * as XXHash from 'xxhash'; import { XXHash64 } from 'xxhash'; export declare type ChecksumType = 'crc32' | 'sha1' | 'sha256' | 'xxhash32' | 'xxhash64'; export interface Block { offset: number; length: number; } export interface BlocksWithChecksum { checksumType?: ChecksumType; checksum?: string; blocks: Block[]; } export interface SparseStreamChunk { buffer: Buffer; position: number; } export interface SparseReadable extends NodeJS.ReadableStream { blocks: BlocksWithChecksum[]; push(chunk: SparseStreamChunk): boolean; } declare class CRC32Hasher { private value; update(data: Buffer): void; digest(_encoding: 'hex'): string; } declare type AnyHasher = CRC32Hasher | Hash | XXHash | XXHash64; export interface SparseReaderState { block: BlocksWithChecksum; subBlock: Block; hasher?: AnyHasher; } export declare function createSparseReaderStateIterator(blocks: BlocksWithChecksum[], verify: boolean, generateChecksums: boolean): Iterator<SparseReaderState>; export declare function blocksLength(blocks: BlocksWithChecksum[]): number; export {};