import type { TsCodeFragment } from '@baseplate-dev/core-generators';
declare const storageModuleConfigProvider: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{
    /** Map of file category name to the config fragment for the file category. */
    fileCategories: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>;
}>, "getValues">>;
export { storageModuleConfigProvider };
export declare const storageModuleGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<{
    fileModel: string;
    s3Adapters: {
        name: string;
        bucketConfigVar: string;
        hostedUrlConfigVar?: string | undefined;
    }[];
}, {
    paths: import("@baseplate-dev/sync").GeneratorTask<{
        fastifyStorageModulePaths: import("@baseplate-dev/sync").ProviderExport<import("./generated/template-paths.js").FastifyStorageModulePaths>;
    }, {
        appModule: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/fastify-generators").AppModuleProvider>;
    }, undefined>;
    imports: import("@baseplate-dev/sync").GeneratorTask<{
        storageModuleImports: import("@baseplate-dev/sync").ProviderExport<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            createFileCategory: {};
            createPresignedDownloadUrl: {};
            CreatePresignedUploadOptions: {
                isTypeOnly: true;
            };
            createPresignedUploadUrl: {};
            createS3Adapter: {};
            createUrlAdapter: {};
            downloadFile: {};
            FILE_CATEGORIES: {};
            FileCategory: {
                isTypeOnly: true;
            };
            FileCategoryName: {
                isTypeOnly: true;
            };
            fileInputInputType: {};
            FileMetadata: {
                isTypeOnly: true;
            };
            FileSize: {};
            FileUploadInput: {
                isTypeOnly: true;
            };
            FileUploadOptions: {
                isTypeOnly: true;
            };
            getCategoryByName: {};
            getCategoryByNameOrThrow: {};
            getEncodingFromContentType: {};
            getMimeTypeFromContentType: {};
            InvalidMimeTypeError: {};
            MimeTypes: {};
            PresignedUploadUrl: {
                isTypeOnly: true;
            };
            STORAGE_ADAPTERS: {};
            StorageAdapter: {
                isTypeOnly: true;
            };
            StorageAdapterKey: {
                isTypeOnly: true;
            };
            validateFileExtensionWithMimeType: {};
            validateFileInput: {};
            validateFileUploadOptions: {};
        }>>;
    }, {
        paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").FastifyStorageModulePaths>;
    }, undefined>;
    renderers: import("@baseplate-dev/sync").GeneratorTask<{
        fastifyStorageModuleRenderers: import("@baseplate-dev/sync").ProviderExport<import("./generated/template-renderers.js").FastifyStorageModuleRenderers>;
    }, {
        errorHandlerServiceImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            BadRequestError: {};
            ForbiddenError: {};
            handleZodRequestValidationError: {};
            HttpError: {};
            InternalServerError: {};
            logError: {};
            NotFoundError: {};
            UnauthorizedError: {};
        }>>;
        paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").FastifyStorageModulePaths>;
        pothosImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            builder: {};
        }>>;
        prismaUtilsImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            applyDataPipeOutput: {};
            applyDataPipeOutputToOperations: {};
            applyDataPipeOutputWithoutOperation: {};
            createOneToManyCreateData: {};
            createOneToManyUpsertData: {};
            createOneToOneCreateData: {};
            createOneToOneUpsertData: {};
            createPrismaDisconnectOrConnectData: {};
            CreateServiceInput: {
                isTypeOnly: true;
            };
            DataPipeOutput: {
                isTypeOnly: true;
            };
            DeleteServiceInput: {
                isTypeOnly: true;
            };
            mergePipeOperations: {};
            UpdateServiceInput: {
                isTypeOnly: true;
            };
            UpsertPayload: {
                isTypeOnly: true;
            };
        }>>;
        serviceContextImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            createServiceContext: {};
            createSystemServiceContext: {};
            createTestServiceContext: {};
            ServiceContext: {
                isTypeOnly: true;
            };
        }>>;
        typescriptFile: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").TypescriptFileProvider>;
    }, undefined>;
    config: import("@baseplate-dev/sync").GeneratorTask<import("@baseplate-dev/sync").ProviderExportMap<Record<string, import("@baseplate-dev/sync").Provider>> | undefined, import("@baseplate-dev/sync").ProviderDependencyMap<Record<string, import("@baseplate-dev/sync").Provider>>, import("@baseplate-dev/sync").ProviderExportMap<Record<string, import("@baseplate-dev/sync").Provider>> | undefined>;
    nodePackages: import("@baseplate-dev/sync").AnyGeneratorTask;
    setupFileInputSchema: import("@baseplate-dev/sync").GeneratorTask<any, {
        pothosConfig: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{
            pothosPlugins: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>;
            schemaTypeOptions: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>;
            schemaBuilderOptions: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>;
            schemaFiles: import("@baseplate-dev/utils").ArrayContainer<string>;
            enums: import("@baseplate-dev/utils").MapContainer<string, import("@baseplate-dev/fastify-generators").PothosTypeReference>;
            inputTypes: import("@baseplate-dev/utils").MapContainer<string, import("@baseplate-dev/fastify-generators").PothosTypeReference>;
            customScalars: import("@baseplate-dev/utils").MapContainer<"string" | "boolean" | "uuid" | "int" | "dateTime" | "float" | "decimal" | "json" | "date" | "enum", import("@baseplate-dev/fastify-generators").PothosCustomScalarConfig>;
        }>, "getValues">>;
        paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").FastifyStorageModulePaths>;
    }, any>;
    renderSchema: import("@baseplate-dev/sync").GeneratorTask<any, {
        appModule: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/fastify-generators").AppModuleProvider>;
        renderers: import("@baseplate-dev/sync").ProviderType<import("./generated/template-renderers.js").FastifyStorageModuleRenderers>;
        pothosSchema: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/fastify-generators").PothosSchemaProvider>;
        fileObjectType: import("@baseplate-dev/sync").ProviderDependency<import("@baseplate-dev/fastify-generators").PothosTypeOutputProvider>;
        paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").FastifyStorageModulePaths>;
    }, any>;
    configService: import("@baseplate-dev/sync").GeneratorTask<undefined, {
        provider: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{
            configFields: import("@baseplate-dev/utils").MapContainer<string, import("@baseplate-dev/fastify-generators").ConfigServiceField>;
        }>, "getValues">>;
    }, undefined>;
    build: import("@baseplate-dev/sync").GeneratorTask<any, {
        prismaOutput: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/fastify-generators").PrismaOutputProvider>;
        configServiceImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            config: {};
        }>>;
        renderers: import("@baseplate-dev/sync").ProviderType<import("./generated/template-renderers.js").FastifyStorageModuleRenderers>;
        storageModuleImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            createFileCategory: {};
            createPresignedDownloadUrl: {};
            CreatePresignedUploadOptions: {
                isTypeOnly: true;
            };
            createPresignedUploadUrl: {};
            createS3Adapter: {};
            createUrlAdapter: {};
            downloadFile: {};
            FILE_CATEGORIES: {};
            FileCategory: {
                isTypeOnly: true;
            };
            FileCategoryName: {
                isTypeOnly: true;
            };
            fileInputInputType: {};
            FileMetadata: {
                isTypeOnly: true;
            };
            FileSize: {};
            FileUploadInput: {
                isTypeOnly: true;
            };
            FileUploadOptions: {
                isTypeOnly: true;
            };
            getCategoryByName: {};
            getCategoryByNameOrThrow: {};
            getEncodingFromContentType: {};
            getMimeTypeFromContentType: {};
            InvalidMimeTypeError: {};
            MimeTypes: {};
            PresignedUploadUrl: {
                isTypeOnly: true;
            };
            STORAGE_ADAPTERS: {};
            StorageAdapter: {
                isTypeOnly: true;
            };
            StorageAdapterKey: {
                isTypeOnly: true;
            };
            validateFileExtensionWithMimeType: {};
            validateFileInput: {};
            validateFileUploadOptions: {};
        }>>;
        storageModuleConfigValues: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/utils").FieldMapValues<{
            /** Map of file category name to the config fragment for the file category. */
            fileCategories: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>;
        }>>;
    }, any>;
}>;
//# sourceMappingURL=storage-module.generator.d.ts.map