import { z } from 'zod'; /** * Configuration schema for file storage providers */ declare const storageProvidersSchema: z.ZodObject<{ /** * AWS S3 Configuration * Used by: AWSFileStorage driver */ aws: z.ZodOptional; secretAccessKey: z.ZodOptional; region: z.ZodOptional; defaultBucket: z.ZodOptional; keyPrefix: z.ZodOptional; }, "strip", z.ZodTypeAny, { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }, { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }>>; /** * Azure Blob Storage Configuration * Used by: AzureFileStorage driver */ azure: z.ZodOptional; accountKey: z.ZodOptional; connectionString: z.ZodOptional; defaultContainer: z.ZodOptional; }, "strip", z.ZodTypeAny, { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }, { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }>>; /** * Google Cloud Storage Configuration * Used by: GoogleFileStorage driver */ googleCloud: z.ZodOptional; keyFilename: z.ZodOptional; keyJSON: z.ZodOptional; defaultBucket: z.ZodOptional; }, "strip", z.ZodTypeAny, { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }, { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }>>; /** * Google Drive Configuration * Used by: GoogleDriveFileStorage driver * Supports BOTH service account auth (keyFile, credentialsJSON) AND OAuth2 (clientID, etc.) */ googleDrive: z.ZodOptional; credentialsJSON: z.ZodOptional; clientID: z.ZodOptional; clientSecret: z.ZodOptional; refreshToken: z.ZodOptional; redirectURI: z.ZodOptional; rootFolderID: z.ZodOptional; }, "strip", z.ZodTypeAny, { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }, { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }>>; /** * Dropbox Configuration * Used by: DropboxFileStorage driver */ dropbox: z.ZodOptional; refreshToken: z.ZodOptional; clientID: z.ZodOptional; clientSecret: z.ZodOptional; rootPath: z.ZodOptional; }, "strip", z.ZodTypeAny, { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }, { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }>>; /** * Box.com Configuration * Used by: BoxFileStorage driver * Supports access token, refresh token, AND JWT/client credentials auth */ box: z.ZodOptional; clientSecret: z.ZodOptional; accessToken: z.ZodOptional; refreshToken: z.ZodOptional; enterpriseID: z.ZodOptional; rootFolderID: z.ZodOptional; }, "strip", z.ZodTypeAny, { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }, { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }>>; /** * SharePoint Configuration * Used by: SharePointFileStorage driver */ sharePoint: z.ZodOptional; clientSecret: z.ZodOptional; tenantID: z.ZodOptional; siteID: z.ZodOptional; driveID: z.ZodOptional; rootFolderID: z.ZodOptional; }, "strip", z.ZodTypeAny, { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }, { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }>>; }, "strip", z.ZodTypeAny, { aws?: { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }; azure?: { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }; googleCloud?: { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }; googleDrive?: { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }; dropbox?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }; box?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }; sharePoint?: { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }; }, { aws?: { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }; azure?: { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }; googleCloud?: { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }; googleDrive?: { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }; dropbox?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }; box?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }; sharePoint?: { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }; }>; /** * Complete configuration schema for MJStorage package */ declare const storageConfigSchema: z.ZodObject<{ /** * Storage provider configurations */ storageProviders: z.ZodDefault; secretAccessKey: z.ZodOptional; region: z.ZodOptional; defaultBucket: z.ZodOptional; keyPrefix: z.ZodOptional; }, "strip", z.ZodTypeAny, { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }, { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }>>; /** * Azure Blob Storage Configuration * Used by: AzureFileStorage driver */ azure: z.ZodOptional; accountKey: z.ZodOptional; connectionString: z.ZodOptional; defaultContainer: z.ZodOptional; }, "strip", z.ZodTypeAny, { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }, { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }>>; /** * Google Cloud Storage Configuration * Used by: GoogleFileStorage driver */ googleCloud: z.ZodOptional; keyFilename: z.ZodOptional; keyJSON: z.ZodOptional; defaultBucket: z.ZodOptional; }, "strip", z.ZodTypeAny, { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }, { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }>>; /** * Google Drive Configuration * Used by: GoogleDriveFileStorage driver * Supports BOTH service account auth (keyFile, credentialsJSON) AND OAuth2 (clientID, etc.) */ googleDrive: z.ZodOptional; credentialsJSON: z.ZodOptional; clientID: z.ZodOptional; clientSecret: z.ZodOptional; refreshToken: z.ZodOptional; redirectURI: z.ZodOptional; rootFolderID: z.ZodOptional; }, "strip", z.ZodTypeAny, { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }, { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }>>; /** * Dropbox Configuration * Used by: DropboxFileStorage driver */ dropbox: z.ZodOptional; refreshToken: z.ZodOptional; clientID: z.ZodOptional; clientSecret: z.ZodOptional; rootPath: z.ZodOptional; }, "strip", z.ZodTypeAny, { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }, { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }>>; /** * Box.com Configuration * Used by: BoxFileStorage driver * Supports access token, refresh token, AND JWT/client credentials auth */ box: z.ZodOptional; clientSecret: z.ZodOptional; accessToken: z.ZodOptional; refreshToken: z.ZodOptional; enterpriseID: z.ZodOptional; rootFolderID: z.ZodOptional; }, "strip", z.ZodTypeAny, { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }, { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }>>; /** * SharePoint Configuration * Used by: SharePointFileStorage driver */ sharePoint: z.ZodOptional; clientSecret: z.ZodOptional; tenantID: z.ZodOptional; siteID: z.ZodOptional; driveID: z.ZodOptional; rootFolderID: z.ZodOptional; }, "strip", z.ZodTypeAny, { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }, { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }>>; }, "strip", z.ZodTypeAny, { aws?: { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }; azure?: { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }; googleCloud?: { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }; googleDrive?: { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }; dropbox?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }; box?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }; sharePoint?: { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }; }, { aws?: { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }; azure?: { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }; googleCloud?: { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }; googleDrive?: { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }; dropbox?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }; box?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }; sharePoint?: { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }; }>>>; }, "strip", z.ZodTypeAny, { storageProviders?: { aws?: { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }; azure?: { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }; googleCloud?: { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }; googleDrive?: { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }; dropbox?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }; box?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }; sharePoint?: { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }; }; }, { storageProviders?: { aws?: { accessKeyID?: string; secretAccessKey?: string; region?: string; defaultBucket?: string; keyPrefix?: string; }; azure?: { accountName?: string; accountKey?: string; connectionString?: string; defaultContainer?: string; }; googleCloud?: { defaultBucket?: string; projectID?: string; keyFilename?: string; keyJSON?: string; }; googleDrive?: { refreshToken?: string; keyFile?: string; credentialsJSON?: string; clientID?: string; clientSecret?: string; redirectURI?: string; rootFolderID?: string; }; dropbox?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootPath?: string; }; box?: { refreshToken?: string; accessToken?: string; clientID?: string; clientSecret?: string; rootFolderID?: string; enterpriseID?: string; }; sharePoint?: { clientID?: string; clientSecret?: string; rootFolderID?: string; tenantID?: string; siteID?: string; driveID?: string; }; }; }>; export type StorageConfig = z.infer; export type StorageProvidersConfig = z.infer; /** * Gets the MJStorage configuration, loading it from mj.config.cjs if not already loaded * @returns The MJStorage configuration object */ export declare function getStorageConfig(): StorageConfig; /** * Gets the storage providers configuration * @returns The storage providers configuration object */ export declare function getStorageProvidersConfig(): StorageProvidersConfig; /** * Gets configuration for a specific storage provider * @param provider - The provider name ('aws', 'azure', 'googleCloud', etc.) * @returns The provider configuration or undefined if not configured */ export declare function getProviderConfig(provider: T): StorageProvidersConfig[T]; /** * Clears the cached configuration (useful for testing) */ export declare function clearStorageConfig(): void; export {}; //# sourceMappingURL=config.d.ts.map