hackpro-sdk
Version:
37 lines (36 loc) • 1.21 kB
TypeScript
/// <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 {};