import { type PathSpec } from '../../types.ts';
import type { S3Accessor } from '../../accessor/s3.ts';
/**
 * An object's MD5, read off its ETag when the ETag is one.
 *
 * A store names an object's MD5 as its ETag only for a single-part upload
 * kept unencrypted, or on AWS under SSE-S3: a multipart ETag ends in `-N`, and
 * an object under SSE-KMS or SSE-C carries some other 32 hex digits, which no
 * look at the ETag tells apart, so the head's encryption decides. `aws` says
 * the store is AWS itself, where SSE-S3 keeps the MD5. Every other algorithm
 * is null. A digest answered is recorded as the read it stands in for, with
 * the ETag and version the head saw, so a snapshot pins them and a
 * conditional write later in the line is conditioned on them. Mirrors
 * Python's core/s3/checksum.py.
 */
export declare function checksum(accessor: S3Accessor, path: PathSpec, algorithm: string, aws: boolean): Promise<string | null>;
//# sourceMappingURL=checksum.d.ts.map