import type { S3Client } from "@aws-sdk/client-s3"; import type { Adapter } from "../index.js"; export interface WasabiAdapterOptions { /** Wasabi bucket name. The adapter scopes all operations to it. */ bucket: string; /** * Wasabi storage region, e.g. `"us-east-1"`, `"us-east-2"`, `"us-central-1"`, * `"us-west-1"`, `"ca-central-1"`, `"eu-central-1"`, `"eu-central-2"`, * `"eu-west-1"`, `"eu-west-2"`, `"ap-northeast-1"`, `"ap-northeast-2"`, * `"ap-southeast-1"`, `"ap-southeast-2"`. Drives the endpoint host * (`https://s3..wasabisys.com`); there's no env-var fallback. * Doubles as the SigV4 region. The region names mirror AWS but the * endpoints are Wasabi's own — buckets live in exactly one region. */ region: string; /** * Override the Wasabi endpoint. When unset, defaults to * `https://s3.${region}.wasabisys.com`. Wasabi routes by Host header — the * SDK prepends the bucket subdomain for virtual-hosted style. */ endpoint?: string; /** * Static access key ID. Falls back to `WASABI_ACCESS_KEY_ID`; required if * that env var isn't set. */ accessKeyId?: string; /** * Static secret access key. Falls back to `WASABI_SECRET_ACCESS_KEY`; * required if that env var isn't set. */ secretAccessKey?: string; /** * Use path-style addressing (`//`) rather than virtual-hosted * style. Defaults to `false` — virtual-hosted is canonical for Wasabi. */ forcePathStyle?: boolean; /** * Origin used to build URLs from `url()`. When set, `url(key)` returns * `${publicBaseUrl}/${key}` and skips signing — for buckets with public * read policy, the natural value is * `https://${bucket}.s3.${region}.wasabisys.com`; a custom CNAME fronting * the bucket also works. Wasabi has no built-in CDN, so leaving this * unset is the common case. When unset, `url()` falls back to a presigned * GetObject (default expiry: 1 hour). */ publicBaseUrl?: string; /** * Default expiry, in seconds, for the presigned URLs returned by `url()` * when `publicBaseUrl` is not set. Defaults to 3600 (1 hour). */ defaultUrlExpiresIn?: number; } export type WasabiAdapter = Adapter; export declare const wasabi: (opts: WasabiAdapterOptions) => WasabiAdapter; //# sourceMappingURL=index.d.ts.map