import { z } from 'zod'; declare const CACHE_TYPES: readonly ["in-memory", "redis"]; type CacheType = (typeof CACHE_TYPES)[number]; declare const InMemoryCacheSchema: z.ZodObject<{ maxConnections: z.ZodOptional; idleTimeoutMillis: z.ZodOptional; connectionTimeoutMillis: z.ZodOptional; options: z.ZodOptional>; type: z.ZodLiteral<"in-memory">; }, z.core.$strict>; type InMemoryCacheConfig = z.output; declare const RedisCacheSchema: z.ZodObject<{ maxConnections: z.ZodOptional; idleTimeoutMillis: z.ZodOptional; connectionTimeoutMillis: z.ZodOptional; options: z.ZodOptional>; type: z.ZodLiteral<"redis">; url: z.ZodOptional>>; host: z.ZodOptional; port: z.ZodOptional; password: z.ZodOptional; database: z.ZodOptional; }, z.core.$strict>; type RedisCacheConfig = z.output; declare const CacheConfigSchema: z.ZodObject<{ type: z.ZodString; }, z.core.$loose>; type CacheConfig = z.output; declare const DATABASE_TYPES: readonly ["in-memory", "sqlite", "postgres"]; type DatabaseType = (typeof DATABASE_TYPES)[number]; declare const InMemoryDatabaseSchema: z.ZodObject<{ maxConnections: z.ZodOptional; idleTimeoutMillis: z.ZodOptional; connectionTimeoutMillis: z.ZodOptional; options: z.ZodOptional>; type: z.ZodLiteral<"in-memory">; }, z.core.$strict>; type InMemoryDatabaseConfig = z.output; declare const SqliteDatabaseSchema: z.ZodObject<{ maxConnections: z.ZodOptional; idleTimeoutMillis: z.ZodOptional; connectionTimeoutMillis: z.ZodOptional; options: z.ZodOptional>; type: z.ZodLiteral<"sqlite">; path: z.ZodString; }, z.core.$strict>; type SqliteDatabaseConfig = z.output; declare const PostgresDatabaseSchema: z.ZodObject<{ maxConnections: z.ZodOptional; idleTimeoutMillis: z.ZodOptional; connectionTimeoutMillis: z.ZodOptional; options: z.ZodOptional>; type: z.ZodLiteral<"postgres">; url: z.ZodOptional>>; connectionString: z.ZodOptional>>; host: z.ZodOptional; port: z.ZodOptional; database: z.ZodOptional; password: z.ZodOptional; keyPrefix: z.ZodOptional; }, z.core.$strict>; type PostgresDatabaseConfig = z.output; declare const DatabaseConfigSchema: z.ZodObject<{ type: z.ZodString; }, z.core.$loose>; type DatabaseConfig = z.output; /** * Built-in blob store types shipped by `@dexto/storage`. * Custom backends shipped via images are not included in this list. */ declare const BLOB_STORE_TYPES: readonly ["in-memory", "local"]; 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>; type InMemoryBlobStoreConfigInput = z.input; 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>; type LocalBlobStoreConfigInput = z.input; 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) */ 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. */ type BlobStoreConfig = InMemoryBlobStoreConfig | LocalBlobStoreConfig | { type: string; [key: string]: unknown; }; /** * Top-level storage configuration schema * Composes cache, database, and blob store configurations * * Note: detailed backend validation happens in the resolver (`@dexto/agent-config`) * via each image factory's `configSchema`. This schema validates only the structural * shape required for config parsing and defaults. */ declare const StorageSchema: z.core.$ZodBranded; database: z.ZodObject<{ type: z.ZodString; }, z.core.$loose>; blob: z.ZodObject<{ type: z.ZodString; }, z.core.$loose>; }, z.core.$strict>, "ValidatedStorageConfig", "out">; type StorageConfig = z.input; type ValidatedStorageConfig = z.output; export { BLOB_STORE_TYPES, type BlobStoreConfig, BlobStoreConfigSchema, type BlobStoreType, CACHE_TYPES, type CacheConfig, CacheConfigSchema, type CacheType, DATABASE_TYPES, type DatabaseConfig, DatabaseConfigSchema, type DatabaseType, type InMemoryBlobStoreConfig, type InMemoryBlobStoreConfigInput, InMemoryBlobStoreSchema, type InMemoryCacheConfig, InMemoryCacheSchema, type InMemoryDatabaseConfig, InMemoryDatabaseSchema, type LocalBlobStoreConfig, type LocalBlobStoreConfigInput, LocalBlobStoreSchema, type PostgresDatabaseConfig, PostgresDatabaseSchema, type RedisCacheConfig, RedisCacheSchema, type SqliteDatabaseConfig, SqliteDatabaseSchema, type StorageConfig, StorageSchema, type ValidatedStorageConfig };