/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { Bytes } from "#util/Bytes.js"; import type { Directory } from "../fs/Directory.js"; import { MaybePromise } from "../util/Promises.js"; import { BaseStorageDriver, type StorageType } from "./BaseStorageDriver.js"; import { DatafileRoot } from "./DatafileRoot.js"; import type { DataNamespace } from "./DataNamespace.js"; /** * Storage driver for binary blob data, separate from key-value storage. * Contexts map to directories; keys map to individual blobs. */ export declare abstract class BlobStorageDriver extends BaseStorageDriver { readonly type: "blob"; abstract openBlob(contexts: string[], key: string): MaybePromise; abstract writeBlobFromStream(contexts: string[], key: string, stream: ReadableStream): MaybePromise; } /** * {@link BlobStorageDriver} subclass for drivers backed by the filesystem. * * Manages a {@link DatafileRoot.Lock} that is acquired during {@link initialize} and released during {@link close}. * Filesystem-specific blob drivers should extend this instead of {@link BlobStorageDriver} directly. */ export declare abstract class FilesystemBlobStorageDriver extends BlobStorageDriver { #private; constructor(namespace?: DataNamespace); get root(): DatafileRoot | undefined; initialize(): Promise; close(): Promise; } export declare namespace BlobStorageDriver { interface Descriptor { kind: string; type?: StorageType; } interface Implementation { id: string; create(namespace: DataNamespace, descriptor: D): MaybePromise; preinitialize?(parentDir: Directory, descriptor: D): MaybePromise; } } //# sourceMappingURL=BlobStorageDriver.d.ts.map