import { DynamicModule } from '@nestjs/common'; import { ZenStorageOptions } from '@filezen/js'; interface FileZenModuleOptions extends ZenStorageOptions { global?: boolean; controller?: FileZenControllerOptions; } interface FileZenModuleAsyncOptions { global?: boolean; useFactory: (...args: any[]) => Promise | FileZenModuleOptions; inject?: any[]; } interface FileZenControllerOptions { path?: string; enabled?: boolean; middleware?: (request: TRequest) => Promise | boolean; decorators?: { class?: any[]; method?: any[]; }; } interface SignedUrlRequest { path: string; fileKey: string; expiresIn?: number; } interface SignedUrlResponse { url: string; } declare class FileZenModule { static forRoot(options?: FileZenModuleOptions): DynamicModule; static forRootAsync(options: FileZenModuleAsyncOptions): DynamicModule; } declare const InjectZenStorage: () => PropertyDecorator & ParameterDecorator; declare const FILEZEN_MODULE_OPTIONS = "FILEZEN_MODULE_OPTIONS"; declare const FILEZEN_STORAGE = "FILEZEN_STORAGE"; declare function createFileZenController(options?: FileZenControllerOptions): any; export { FILEZEN_MODULE_OPTIONS, FILEZEN_STORAGE, type FileZenControllerOptions, FileZenModule, type FileZenModuleAsyncOptions, type FileZenModuleOptions, InjectZenStorage, type SignedUrlRequest, type SignedUrlResponse, createFileZenController };