import type { S3Accessor } from '../../accessor/s3.ts'; import type { DeltaHook } from '../../watch/base.ts'; import type { PathSpec, WalkEntry } from '../../types.ts'; /** * Recursive `ListObjectsV2` feeding the generic listing differ. * * One paginated LIST with no Delimiter covers the whole subtree, so a pull * costs one request per 1000 keys rather than one per directory. Reads the * bucket directly, never through mirage's caches, as the DeltaHook contract * requires. * * Fingerprints on the object's ETag, which for a single-part upload is the MD5 * of the content, so an overwrite with identical bytes is correctly reported * as no change. Multipart ETags are a digest of the part digests, which still * changes with the content. */ export declare class S3Walk { private readonly accessor; constructor(accessor: S3Accessor); walk(root: PathSpec): AsyncGenerator; } export declare function buildDeltaHook(accessor: S3Accessor): DeltaHook; //# sourceMappingURL=watch.d.ts.map