import type { ModuleInput } from '@unchainedshop/mongodb'; import { mongodb } from '@unchainedshop/mongodb'; import { type File } from '../db/MediaObjectsCollection.ts'; import { type FilesSettingsOptions } from '../files-settings.ts'; export interface FileQuery { fileIds?: string[]; excludeFileId?: string; path?: string; paths?: string[]; meta?: Record; createdBefore?: Date; } export declare const configureFilesModule: ({ db, options: filesOptions, }: ModuleInput) => Promise<{ normalizeUrl: (url: string, params: Record) => string; findFile: (params: { fileId: string; } | { url: string; }, options?: mongodb.FindOptions) => Promise; findFiles: (query: FileQuery, options?: mongodb.FindOptions) => Promise; deleteMany: (fileIds: string[]) => Promise; create: (doc: Omit & Pick, "_id" | "created">) => Promise; update: (fileId: string, doc: Partial) => Promise; unexpire: (fileId: string) => Promise; delete: (fileId: string) => Promise; }>; export type FilesModule = Awaited>;