import { z } from 'zod';
/** Named LMDB backing-store connection. */
export declare const LmdbConnectionConfigZod: z.ZodObject<{
    access: z.ZodOptional<z.ZodEnum<{
        read: "read";
        write: "write";
    }>>;
    root: z.ZodString;
    store: z.ZodOptional<z.ZodString>;
    type: z.ZodLiteral<"lmdb">;
}, z.core.$strip>;
/** MongoDB backing-store connection. */
export declare const MongoConnectionConfigZod: z.ZodObject<{
    type: z.ZodLiteral<"mongo">;
    connectionString: z.ZodOptional<z.ZodString>;
    database: z.ZodOptional<z.ZodString>;
    domain: z.ZodOptional<z.ZodString>;
    password: z.ZodOptional<z.ZodString>;
    username: z.ZodOptional<z.ZodString>;
    collection: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/** JSON-RPC wire connection (HTTP or postMessage). */
export declare const RpcConnectionConfigZod: z.ZodObject<{
    type: z.ZodLiteral<"rpc">;
    protocol: z.ZodDefault<z.ZodString>;
    url: z.ZodOptional<z.ZodString>;
    networkId: z.ZodOptional<z.ZodString>;
    sessionId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/** HTTP REST read connection (CDN / public read base URL). */
export declare const RestConnectionConfigZod: z.ZodObject<{
    type: z.ZodLiteral<"rest">;
    baseUrl: z.ZodString;
}, z.core.$strip>;
/** S3-compatible object storage connection (API + optional public read URL). */
export declare const S3ConnectionConfigZod: z.ZodObject<{
    bucket: z.ZodOptional<z.ZodString>;
    endpoint: z.ZodOptional<z.ZodString>;
    prefix: z.ZodOptional<z.ZodString>;
    readUrl: z.ZodOptional<z.ZodString>;
    type: z.ZodLiteral<"s3">;
    accessKeyId: z.ZodOptional<z.ZodString>;
    accountId: z.ZodOptional<z.ZodString>;
    secretAccessKey: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/** EVM JSON-RPC connection. */
export declare const EvmRpcConnectionConfigZod: z.ZodObject<{
    type: z.ZodLiteral<"evm-rpc">;
    url: z.ZodString;
    chainId: z.ZodOptional<z.ZodString>;
    eventQueryBlockChunkSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>;
/** In-process shared-memory connection (ephemeral; backed by a MemoryArchivist). */
export declare const MemoryConnectionConfigZod: z.ZodObject<{
    type: z.ZodLiteral<"memory">;
}, z.core.$strip>;
/** Discriminated union of all supported connection kinds. */
export declare const ConnectionConfigZod: z.ZodDiscriminatedUnion<[z.ZodObject<{
    access: z.ZodOptional<z.ZodEnum<{
        read: "read";
        write: "write";
    }>>;
    root: z.ZodString;
    store: z.ZodOptional<z.ZodString>;
    type: z.ZodLiteral<"lmdb">;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"mongo">;
    connectionString: z.ZodOptional<z.ZodString>;
    database: z.ZodOptional<z.ZodString>;
    domain: z.ZodOptional<z.ZodString>;
    password: z.ZodOptional<z.ZodString>;
    username: z.ZodOptional<z.ZodString>;
    collection: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"rpc">;
    protocol: z.ZodDefault<z.ZodString>;
    url: z.ZodOptional<z.ZodString>;
    networkId: z.ZodOptional<z.ZodString>;
    sessionId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"rest">;
    baseUrl: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    bucket: z.ZodOptional<z.ZodString>;
    endpoint: z.ZodOptional<z.ZodString>;
    prefix: z.ZodOptional<z.ZodString>;
    readUrl: z.ZodOptional<z.ZodString>;
    type: z.ZodLiteral<"s3">;
    accessKeyId: z.ZodOptional<z.ZodString>;
    accountId: z.ZodOptional<z.ZodString>;
    secretAccessKey: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"evm-rpc">;
    url: z.ZodString;
    chainId: z.ZodOptional<z.ZodString>;
    eventQueryBlockChunkSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"memory">;
}, z.core.$strip>], "type">;
export type LmdbConnectionConfig = z.infer<typeof LmdbConnectionConfigZod>;
export type MongoConnectionConfig = z.infer<typeof MongoConnectionConfigZod>;
export type RpcConnectionConfig = z.infer<typeof RpcConnectionConfigZod>;
export type RestConnectionConfig = z.infer<typeof RestConnectionConfigZod>;
export type S3ConnectionConfig = z.infer<typeof S3ConnectionConfigZod>;
export type EvmRpcConnectionConfig = z.infer<typeof EvmRpcConnectionConfigZod>;
export type MemoryConnectionConfig = z.infer<typeof MemoryConnectionConfigZod>;
export type ConnectionConfig = z.infer<typeof ConnectionConfigZod>;
/** Map of connection name → connection configuration. */
export declare const ConnectionsConfigZod: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
    access: z.ZodOptional<z.ZodEnum<{
        read: "read";
        write: "write";
    }>>;
    root: z.ZodString;
    store: z.ZodOptional<z.ZodString>;
    type: z.ZodLiteral<"lmdb">;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"mongo">;
    connectionString: z.ZodOptional<z.ZodString>;
    database: z.ZodOptional<z.ZodString>;
    domain: z.ZodOptional<z.ZodString>;
    password: z.ZodOptional<z.ZodString>;
    username: z.ZodOptional<z.ZodString>;
    collection: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"rpc">;
    protocol: z.ZodDefault<z.ZodString>;
    url: z.ZodOptional<z.ZodString>;
    networkId: z.ZodOptional<z.ZodString>;
    sessionId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"rest">;
    baseUrl: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    bucket: z.ZodOptional<z.ZodString>;
    endpoint: z.ZodOptional<z.ZodString>;
    prefix: z.ZodOptional<z.ZodString>;
    readUrl: z.ZodOptional<z.ZodString>;
    type: z.ZodLiteral<"s3">;
    accessKeyId: z.ZodOptional<z.ZodString>;
    accountId: z.ZodOptional<z.ZodString>;
    secretAccessKey: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"evm-rpc">;
    url: z.ZodString;
    chainId: z.ZodOptional<z.ZodString>;
    eventQueryBlockChunkSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"memory">;
}, z.core.$strip>], "type">>>;
export type ConnectionsConfig = z.infer<typeof ConnectionsConfigZod>;
export type ConnectionKind = ConnectionConfig['type'];
//# sourceMappingURL=Connection.d.ts.map