export type S3HelperConfig = {
    endpoint: string;
    region: string;
    accessKeyId: string;
    secretAccessKey: string;
    bucket: string;
};
/**
 * Thin wrapper around the AWS SDK for S3-compatible Hetzner Object
 * Storage. Holds the bucket so call sites only pass keys.
 *
 * The presigned URL has a 15-min validity. We deliberately do not
 * persist the URL anywhere — it is minted on every read so a leaked
 * URL has at most 15 minutes of authority, and re-listing always
 * re-verifies env ownership.
 */
export declare class S3Helper {
    private readonly client;
    private readonly bucket;
    constructor(config: S3HelperConfig);
    presignDownload(key: string): Promise<string>;
    headSize(key: string): Promise<number | null>;
}
//# sourceMappingURL=s3.d.ts.map