import type { Readable } from 'node:stream'; import { type IBaseAdapter } from '@unchainedshop/utils'; import type { UploadedFile, UploadFileData } from '../file-types.ts'; export interface IFileAdapter extends IBaseAdapter { createDownloadURL: (file: UploadedFile, expiry?: number) => Promise; createSignedURL: (directoryName: string, fileName: string, unchainedAPI: Context) => Promise<(UploadFileData & { putURL: string; }) | null>; removeFiles: (files: UploadedFile[], unchainedContext: Context) => Promise; uploadFileFromStream: (directoryName: string, rawFile: any, unchainedAPI: Context, options?: Record) => Promise; uploadFileFromURL: (directoryName: string, fileInput: { fileLink: string; fileName: string; fileId?: string; headers?: Record; }, unchainedAPI: Context) => Promise; createDownloadStream: (file: UploadedFile, unchainedAPI: Context) => Promise; } export declare const FileAdapter: Omit;