import { ContentPack } from './types'; import { XpspackCompression, XpspackManifestV1 } from './xpspackManifest'; export type ContentPackLoadErrorCode = 'xpspack-zip-invalid' | 'xpspack-size-limit' | 'xpspack-manifest-missing' | 'xpspack-manifest-invalid' | 'xpspack-manifest-noncanonical' | 'xpspack-entry-set' | 'xpspack-signature-required' | 'xpspack-signature-missing' | 'xpspack-signature-untrusted' | 'xpspack-signature-invalid' | 'xpspack-root-chunk' | 'xpspack-encryption-unsupported' | 'xpspack-compression-unsupported' | 'xpspack-chunk-size' | 'xpspack-chunk-hash' | 'xpspack-chunk-invalid' | 'xpspack-asset-size' | 'xpspack-asset-hash' | 'xpspack-asset-invalid' | 'xpspack-key-unavailable' | 'xpspack-decryption-failed' | 'xpspack-pack-invalid' | 'xpspack-pack-id'; export declare class ContentPackLoadError extends Error { readonly code: ContentPackLoadErrorCode; readonly cause?: unknown; constructor(code: ContentPackLoadErrorCode, message: string, cause?: unknown); } export interface XpspackDecompressionRequest { compression: Exclude; bytes: Uint8Array; expectedBytes: number; } export interface ContentPackLoadOptions { trustedSigningKeys?: Record; requireSignature?: boolean; crypto?: SubtleCrypto; decompress?: (request: XpspackDecompressionRequest) => Promise; keyProvider?: (request: { packId: string; chunkId: string; keyId: string; }) => Promise; } export interface LoadedContentPack { manifest: XpspackManifestV1; pack: ContentPack; loadChunk(id: string): Promise; } /** Loads and verifies an xpspack without importing Node or authoring-tool code. */ export declare const loadContentPackFromXpspack: (input: Uint8Array | ArrayBuffer, options?: ContentPackLoadOptions) => Promise;