import type { S3Client } from "@aws-sdk/client-s3"; import type { Adapter } from "../index.js"; export interface HetznerAdapterOptions { /** Hetzner bucket name. The adapter scopes all operations to it. */ bucket: string; /** * Hetzner Object Storage location code, e.g. `"fsn1"` (Falkenstein), * `"nbg1"` (Nuremberg), `"hel1"` (Helsinki). Drives the endpoint host; * there's no env-var fallback. Doubles as the SigV4 region — Hetzner * ignores it for routing but the signature requires *some* value. */ region: string; /** * Override the Hetzner endpoint. When unset, defaults to * `https://${region}.your-objectstorage.com`. Hetzner routes by Host header * — the SDK prepends the bucket subdomain for virtual-hosted style. */ endpoint?: string; /** * Static credentials. Falls back to `HCLOUD_ACCESS_KEY_ID`; required if * that env var isn't set. */ accessKeyId?: string; /** * Static credentials. Falls back to `HCLOUD_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 Hetzner. */ forcePathStyle?: boolean; /** * Origin used to build URLs from `url()`. When set, `url(key)` returns * `${publicBaseUrl}/${key}` and skips signing — typical values are a * custom CNAME or reverse proxy fronting the bucket. Hetzner Object * Storage 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 HetznerAdapter = Adapter; export declare const hetzner: (opts: HetznerAdapterOptions) => HetznerAdapter; //# sourceMappingURL=index.d.ts.map