export type CompressionType = 'none' | 'gzip' | 'zip' | 'brotli' | 'deflate'; export interface DecompressedJSONData { [key: string]: unknown; } /** * Détecte le type de compression d'un fichier basé sur son extension */ export declare const detectCompressionType: (filename: string) => CompressionType; /** * #381 — Détecte le type de compression aux OCTETS MAGIQUES du contenu, sans * regarder le nom. Renvoie `undefined` quand aucune signature connue n'est * reconnue (contenu clair, deflate brut, brotli — qui n'a pas de signature). */ export declare const detectCompressionTypeFromBytes: (data: ArrayBuffer) => CompressionType | undefined; /** * #381 — Type de compression effectif d'un contenu déjà en mémoire. * * **Le contenu fait foi, pas l'extension** : un diagramme gzippé dont le nom a * perdu son `.gz` (renommage, téléchargement, copie) doit s'ouvrir comme un * `.json.gz`. Le nom ne sert plus que de repli, pour les formats sans signature * reconnaissable (brotli, deflate brut). * * Cas miroir traité aussi : un nom qui annonce gzip/zip alors que le contenu est * du JSON clair (fichier déjà décompressé par le transport, ou renommé à * l'envers). La signature de ces deux formats étant obligatoire, son absence * devant un jeton JSON est une preuve, pas une supposition. */ export declare const resolveCompressionType: (data: ArrayBuffer, filename: string) => CompressionType; /** * Décompresse un buffer gzip. Accepte aussi un flux zlib/deflate brut, * distingué par les octets magiques du gzip (0x1f 0x8b). */ export declare function decompressGzipDataFixed(compressedData: ArrayBuffer): Promise; /** * Décompresse des données selon le type de compression */ export declare const decompressData: (data: ArrayBuffer, type: CompressionType, filename?: string) => Promise; /** * Charge et décompresse automatiquement un fichier JSON */ export declare const loadUniversalJSON: (url: string) => Promise; /** * Décompresse un fichier uploadé par l'utilisateur (tous formats) */ export declare const decompressUploadedFileUniversal: (file: File) => Promise; /** * Compresse des données JSON en format gzip */ export declare const compressJSONToGzip: (data: object) => Uint8Array;