import type { S3Config } from './config.ts';
/**
 * Where one S3-compatible mount's bytes live, as one string.
 *
 * `cp` and `mv` compare two operands to decide whether they name the same
 * file. Within one mount the mount-relative path answers that; across mounts
 * it does not, since two prefixes can address one store and a move there would
 * copy an object over itself and then unlink the source.
 *
 * Endpoint, bucket and key prefix pin the object namespace. The endpoint
 * matters because the same bucket name on two providers (AWS vs MinIO vs R2)
 * is two different stores, so it, not an alias's name, tells them apart: an
 * s3 mount and a minio mount of one endpoint and bucket are one store. The
 * prefix joins path-like so two mounts whose prefixes nest still resolve to
 * one key once the mount-relative path is appended.
 *
 * Both runtimes call this rather than each writing it out: the node VFS
 * had it and the browser one did not, so the same two buckets compared equal
 * under node and distinct under the browser.
 *
 * @param config the mount's S3 config
 */
export declare function s3StorageLocation(config: S3Config): string;
//# sourceMappingURL=storage_id.d.ts.map