import type { BaseStorageAdapter } from './adapters/BaseStorageAdapter.js'; import type { ModelNamesFor, UploadConfigForModel, UploadsConfig } from './prismaExtension.js'; import type { UrlSigner } from './UrlSigner.js'; type SetupStorageOptions = ModelNamesFor> = { uploadsConfig: UploadsConfig; storageAdapter: BaseStorageAdapter; urlSigner?: UrlSigner; }; export declare const setupStorage: = ModelNamesFor>({ uploadsConfig, storageAdapter, urlSigner, }: SetupStorageOptions) => { storagePrismaExtension: (client: any) => import("@prisma/client/extension").PrismaClientExtends; compute: (modelData: Record) => (this: T) => Promise; }; withSignedUrl: { needs: Record; compute: (modelData: Record) => (this: T, signArgs?: { expiresIn?: number; }) => T; }; }; }, {}, {}, {}> & import("@prisma/client/runtime/client").DefaultArgs>; saveFiles: { [K in `for${Capitalize}`]: >(data: T, overrideSaveOptions?: import("./adapters/BaseStorageAdapter.js").SaveOptionsOverride) => Promise<{ [K_2 in keyof T]: T[K_2] extends File ? string : T[K_2]; }>; } & { inList: (files?: File[], pathOverrideOnly?: { path?: string; }) => Promise; }; }; /** * This utility function ensures that you receive accurate type suggestions for your savers. * If you use the type UploadsConfig directly, you may receive suggestions for saveFiles.forY where Y hasn't been configured. * By using this utility function, you will only receive suggestions for the models that you have configured. * * @param uploadsConfig The uploads configuration object. * @returns The same uploads configuration object, but with filtered types */ export declare function createUploadsConfig]?: UploadConfigForModel; }>>(uploadsConfig: T): T; export type { ModelNamesFor, UploadsConfig } from './prismaExtension.js'; //# sourceMappingURL=index.d.ts.map