import { CopyObjectCommandInput, GetObjectCommandInput, HeadObjectCommandInput, ListObjectsV2CommandInput, S3ClientConfig, S3PaginationConfiguration } from '@aws-sdk/client-s3'; import { Options } from '@aws-sdk/lib-storage'; import { DeepOmit } from 'ts-essentials'; import { StorageEnum } from '../enum'; import { UploadFileLocalOptionsInterface } from './local-storage.interface'; import { BaseStorageOptionsInterface } from './storage-module-options.interface'; export type AwsS3StorageOptionsType = S3ClientConfig & { Bucket: string; }; /** * Interface for configuring aws s3 storage options. */ export interface AwsS3StorageInterface extends BaseStorageOptionsInterface { options: AwsS3StorageOptionsType; } export type S3UploadOptionsType = DeepOmit; export interface UploadS3FileOptionsInterface extends Omit { cloud?: S3UploadOptionsType; } export type DeleteS3OptionsType = Omit; export interface GetFilesCursorS3OptionsInterface { config?: Omit; input?: Omit; } export type CopyFileS3OptionsType = Omit; export type MoveFileS3OptionsType = Omit; export type GetFileStatsS3OptionsType = Omit; export type GetFileStreamS3OptionsType = Omit;