import { z } from 'zod'; /** * Built-in blob store types shipped by `@dexto/storage`. * Custom backends shipped via images are not included in this list. */ export declare const BLOB_STORE_TYPES: readonly ["in-memory", "local"]; export type BlobStoreType = (typeof BLOB_STORE_TYPES)[number]; /** * In-memory blob store configuration */ declare const InMemoryBlobStoreSchema: z.ZodObject<{ type: z.ZodLiteral<"in-memory">; maxBlobSize: z.ZodDefault>; maxTotalSize: z.ZodDefault>; }, z.core.$strict>; export type InMemoryBlobStoreConfigInput = z.input; export type InMemoryBlobStoreConfig = z.output; /** * Local filesystem blob store configuration */ declare const LocalBlobStoreSchema: z.ZodObject<{ type: z.ZodLiteral<"local">; storePath: z.ZodString; maxBlobSize: z.ZodDefault>; maxTotalSize: z.ZodDefault>; cleanupAfterDays: z.ZodDefault>; }, z.core.$strict>; export type LocalBlobStoreConfigInput = z.input; export type LocalBlobStoreConfig = z.output; /** * Blob store configuration schema. * * This schema uses `.passthrough()` to accept any backend-specific configuration. * It only validates that a `type` field exists as a string. * * Detailed validation happens in the product-layer resolver (`@dexto/agent-config`) via * each image factory's `configSchema`. Built-in backends are validated by their factory schemas. * * This approach allows: * - Custom backends to be provided by a custom image * - Each backend to define its own configuration structure and strict schema * * Example flow: * 1. Config passes this schema (basic structure check) * 2. Product layer resolves backend via image + validates against factory schema * 3. Core receives a concrete `BlobStore` instance (DI) */ export declare const BlobStoreConfigSchema: z.ZodObject<{ type: z.ZodString; }, z.core.$loose>; /** * Blob store configuration type. * * Union type including built-in backends (local, in-memory) and a catch-all * for custom backends provided via images at runtime. */ export type BlobStoreConfig = InMemoryBlobStoreConfig | LocalBlobStoreConfig | { type: string; [key: string]: unknown; }; export { InMemoryBlobStoreSchema, LocalBlobStoreSchema }; //# sourceMappingURL=schemas.d.ts.map