import type { ChunkManifest, InscribedFile } from './types.js'; /** * Determines if a file should be chunked based on its size * * @param fileSize - Size of the file in bytes * @param filePath - Path to the file (to check if it's index.html) * @param threshold - Size threshold in bytes (default: 4.5MB) * @returns true if file should be chunked */ export declare function shouldChunkFile(fileSize: number, filePath: string, threshold?: number): boolean; /** * Splits a buffer into chunks with progressive sizing for video files * * For video files, uses Fibonacci-like progression (1MB → 1MB → 2MB → 3MB → 5MB → 8MB → 10MB) * to enable fast playback startup while maintaining efficient streaming. * * For non-video files, uses uniform chunk size. * * @param buffer - The buffer to split * @param chunkSize - Maximum size of each chunk (used for non-video files) * @param filePath - Optional file path to detect video files * @returns Array of chunk buffers */ export declare function splitFileIntoChunks(buffer: Buffer, chunkSize?: number, filePath?: string): Buffer[]; /** * Creates a chunk manifest for client-side reassembly * * @param originalPath - Original file path * @param mimeType - MIME type of the file * @param totalSize - Total size of the complete file * @param chunkSize - Size of each chunk (for uniform chunking) or max chunk size (for progressive) * @param chunkInscriptions - Array of inscribed chunks * @returns Chunk manifest object */ export declare function createChunkManifest(originalPath: string, mimeType: string, totalSize: number, chunkSize: number, chunkInscriptions: InscribedFile[]): ChunkManifest; //# sourceMappingURL=chunker.d.ts.map