import type { FileSystem } from '../internal/filesystem.js'; import { type _SyncFSKeys, type AsyncFSMethods, type Mixin } from './shared.js'; /** * @internal * @category Internals */ export type AsyncOperation = { [K in keyof AsyncFSMethods]: [K, ...Parameters]; }[keyof AsyncFSMethods]; /** * @internal * @category Internals */ export interface AsyncMixin extends Pick> { /** * @internal @protected */ _sync?: FileSystem; /** * @deprecated Use {@link sync | `sync`} instead */ queueDone(): Promise; ready(): Promise; sync(): Promise; } /** * Async() implements synchronous methods on an asynchronous file system * * Implementing classes must define `_sync` for the synchronous file system used as a cache. * * Synchronous methods on an asynchronous FS are implemented by performing operations over the in-memory copy, * while asynchronously pipelining them to the backing store. * During loading, the contents of the async file system are preloaded into the synchronous store. * @category Internals */ export declare function Async FileSystem>(FS: T): Mixin;