/** * Send a `StoreFile` instance as a `ctx` response. * Handles byte range requests as well. May need some improvements to set some better * cache headers. * * @param {import("@aws-sdk/client-s3").S3Client} s3Client * @param {import("koa").Context} ctx * @param {import("./generated/common/types.d.ts").StoreFile} file * @param {{ * cacheControlHeader?: string, * }} [options] * @returns {Promise} */ export function fileSendResponse(s3Client: import("@aws-sdk/client-s3").S3Client, ctx: import("koa").Context, file: import("./generated/common/types.d.ts").StoreFile, options?: { cacheControlHeader?: string; }): Promise; /** * Wraps {@link fileSendResponse}, to include an image transformer compatible with Next.js * image loader. Only works if the input file is an image. It caches the results on in * the file.meta. * * Supported extensions: image/png, image/jpeg, image/jpg, image/webp, image/avif, * image/gif. It does not support 'animated' versions of image/webp and image/gif and * just sends those as is. See {@link FileType#mimeTypes} and {@link fileCreateOrUpdate} * to enforce this on file upload. * * Prefers to transform the image to `image/webp` or `image/avif` if the client supports * it. * * The transform happens via {@link jobFileTransformImage}. When a transform is not yet possible, * the original file is send out, while a transform job is inserted. * * @param {import("postgres").Sql} sql * @param {import("@aws-sdk/client-s3").S3Client} s3Client * @param {import("koa").Context} ctx * @param {import("./generated/common/types.d.ts").StoreFile} file * @param {{ * cacheControlHeader?: string, * }} [options] * @returns {Promise} */ export function fileSendTransformedImageResponse(sql: import("postgres").Sql, s3Client: import("@aws-sdk/client-s3").S3Client, ctx: import("koa").Context, file: import("./generated/common/types.d.ts").StoreFile, options?: { cacheControlHeader?: string; }): Promise;