import { S3Client } from "bun"; interface StorageDriver { put(path: string, contents: string | Uint8Array): Promise; get(path: string): Promise; delete(path: string): Promise; } interface S3StorageConfig { accessKeyId: string; secretAccessKey: string; bucket: string; region?: string; endpoint?: string; } declare class LocalStorageDriver implements StorageDriver { private readonly rootDirectory?; constructor(rootDirectory?: string | undefined); private resolveRootDirectory; private resolvePath; put(path: string, contents: string | Uint8Array): Promise; get(path: string): Promise; delete(path: string): Promise; } declare class S3StorageDriver implements StorageDriver { private readonly client; constructor(client: S3Client); put(path: string, contents: string | Uint8Array): Promise; get(path: string): Promise; delete(path: string): Promise; } declare class StorageManager { private readonly driver; constructor(driver: StorageDriver); put(path: string, contents: string | Uint8Array): Promise; get(path: string): Promise; delete(path: string): Promise; } declare function resolveS3Config(): S3StorageConfig; declare function createS3Client(config?: S3StorageConfig): S3Client; declare function createStorageDriver(): StorageDriver; declare function storage(): StorageManager; /** Test hook: drop the process-wide storage singleton (e.g. after changing STORAGE_PATH). */ declare function resetDefaultStorage(): void; export type { S3StorageConfig, StorageDriver }; export { createS3Client, createStorageDriver, LocalStorageDriver, resetDefaultStorage, resolveS3Config, S3StorageDriver, StorageManager, storage, };