/**
 * FILE: src/config.schema.ts
 * DESCRIPTION: Defines the Zod validation schemas for the entire library's configuration.
 * These schemas are the single source of truth for the configuration's structure and types.
 */
import { z } from 'zod';
import { Transport } from './logger/transports/Transport';
import { IHttpClientAdapter } from './http/adapters/adapter.types';
import { IBrokerAdapter } from './brokers/adapter.types';
import { MaskingStrategy } from './masking/MaskingEngine';
/**
 * @description Schema for a single Redis instance, using a discriminated union for different connection modes.
 */
export declare const redisInstanceConfigSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
    mode: z.ZodLiteral<"single">;
    instanceName: z.ZodString;
    url: z.ZodString;
    retryOptions: z.ZodOptional<z.ZodObject<{
        maxRetries: z.ZodOptional<z.ZodNumber>;
        retryDelay: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    }, {
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    }>>;
    logging: z.ZodOptional<z.ZodObject<{
        /** Level for successful commands. @default 'debug' */
        onSuccess: z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>;
        /** Level for failed commands. @default 'error' */
        onError: z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>;
        /** Whether to log command parameters. @default true */
        logCommandValues: z.ZodDefault<z.ZodBoolean>;
        /** Whether to log the return value of commands. @default false */
        logReturnValue: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        onSuccess: "info" | "debug" | "trace";
        onError: "fatal" | "error" | "warn";
        logCommandValues: boolean;
        logReturnValue: boolean;
    }, {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logCommandValues?: boolean | undefined;
        logReturnValue?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    mode: "single";
    instanceName: string;
    url: string;
    retryOptions?: {
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    } | undefined;
    logging?: {
        onSuccess: "info" | "debug" | "trace";
        onError: "fatal" | "error" | "warn";
        logCommandValues: boolean;
        logReturnValue: boolean;
    } | undefined;
}, {
    mode: "single";
    instanceName: string;
    url: string;
    retryOptions?: {
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    } | undefined;
    logging?: {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logCommandValues?: boolean | undefined;
        logReturnValue?: boolean | undefined;
    } | undefined;
}>, z.ZodObject<{
    mode: z.ZodLiteral<"sentinel">;
    instanceName: z.ZodString;
    name: z.ZodString;
    sentinels: z.ZodArray<z.ZodObject<{
        host: z.ZodString;
        port: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        host: string;
        port: number;
    }, {
        host: string;
        port: number;
    }>, "many">;
    sentinelPassword: z.ZodOptional<z.ZodString>;
    retryOptions: z.ZodOptional<z.ZodObject<{
        maxRetries: z.ZodOptional<z.ZodNumber>;
        retryDelay: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    }, {
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    }>>;
    logging: z.ZodOptional<z.ZodObject<{
        onSuccess: z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>;
        onError: z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>;
        logCommandValues: z.ZodDefault<z.ZodBoolean>;
        logReturnValue: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        onSuccess: "info" | "debug" | "trace";
        onError: "fatal" | "error" | "warn";
        logCommandValues: boolean;
        logReturnValue: boolean;
    }, {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logCommandValues?: boolean | undefined;
        logReturnValue?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    name: string;
    mode: "sentinel";
    instanceName: string;
    sentinels: {
        host: string;
        port: number;
    }[];
    retryOptions?: {
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    } | undefined;
    logging?: {
        onSuccess: "info" | "debug" | "trace";
        onError: "fatal" | "error" | "warn";
        logCommandValues: boolean;
        logReturnValue: boolean;
    } | undefined;
    sentinelPassword?: string | undefined;
}, {
    name: string;
    mode: "sentinel";
    instanceName: string;
    sentinels: {
        host: string;
        port: number;
    }[];
    retryOptions?: {
        maxRetries?: number | undefined;
        retryDelay?: number | undefined;
    } | undefined;
    logging?: {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logCommandValues?: boolean | undefined;
        logReturnValue?: boolean | undefined;
    } | undefined;
    sentinelPassword?: string | undefined;
}>, z.ZodObject<{
    mode: z.ZodLiteral<"cluster">;
    instanceName: z.ZodString;
    rootNodes: z.ZodArray<z.ZodObject<{
        host: z.ZodString;
        port: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        host: string;
        port: number;
    }, {
        host: string;
        port: number;
    }>, "many">;
    logging: z.ZodOptional<z.ZodObject<{
        /** Level for successful commands. @default 'debug' */
        onSuccess: z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>;
        /** Level for failed commands. @default 'error' */
        onError: z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>;
        /** Whether to log command parameters. @default true */
        logCommandValues: z.ZodDefault<z.ZodBoolean>;
        /** Whether to log the return value of commands. @default false */
        logReturnValue: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        onSuccess: "info" | "debug" | "trace";
        onError: "fatal" | "error" | "warn";
        logCommandValues: boolean;
        logReturnValue: boolean;
    }, {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logCommandValues?: boolean | undefined;
        logReturnValue?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    mode: "cluster";
    instanceName: string;
    rootNodes: {
        host: string;
        port: number;
    }[];
    logging?: {
        onSuccess: "info" | "debug" | "trace";
        onError: "fatal" | "error" | "warn";
        logCommandValues: boolean;
        logReturnValue: boolean;
    } | undefined;
}, {
    mode: "cluster";
    instanceName: string;
    rootNodes: {
        host: string;
        port: number;
    }[];
    logging?: {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logCommandValues?: boolean | undefined;
        logReturnValue?: boolean | undefined;
    } | undefined;
}>]>;
/**
 * @description Schema for the main Redis configuration block, containing all Redis instances.
 */
export declare const redisConfigSchema: z.ZodOptional<z.ZodObject<{
    /** An array of Redis instance configurations. */
    instances: z.ZodArray<z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
        mode: z.ZodLiteral<"single">;
        instanceName: z.ZodString;
        url: z.ZodString;
        retryOptions: z.ZodOptional<z.ZodObject<{
            maxRetries: z.ZodOptional<z.ZodNumber>;
            retryDelay: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        }, {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        }>>;
        logging: z.ZodOptional<z.ZodObject<{
            /** Level for successful commands. @default 'debug' */
            onSuccess: z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>;
            /** Level for failed commands. @default 'error' */
            onError: z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>;
            /** Whether to log command parameters. @default true */
            logCommandValues: z.ZodDefault<z.ZodBoolean>;
            /** Whether to log the return value of commands. @default false */
            logReturnValue: z.ZodDefault<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            onSuccess: "info" | "debug" | "trace";
            onError: "fatal" | "error" | "warn";
            logCommandValues: boolean;
            logReturnValue: boolean;
        }, {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logCommandValues?: boolean | undefined;
            logReturnValue?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        mode: "single";
        instanceName: string;
        url: string;
        retryOptions?: {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        } | undefined;
        logging?: {
            onSuccess: "info" | "debug" | "trace";
            onError: "fatal" | "error" | "warn";
            logCommandValues: boolean;
            logReturnValue: boolean;
        } | undefined;
    }, {
        mode: "single";
        instanceName: string;
        url: string;
        retryOptions?: {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        } | undefined;
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logCommandValues?: boolean | undefined;
            logReturnValue?: boolean | undefined;
        } | undefined;
    }>, z.ZodObject<{
        mode: z.ZodLiteral<"sentinel">;
        instanceName: z.ZodString;
        name: z.ZodString;
        sentinels: z.ZodArray<z.ZodObject<{
            host: z.ZodString;
            port: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            host: string;
            port: number;
        }, {
            host: string;
            port: number;
        }>, "many">;
        sentinelPassword: z.ZodOptional<z.ZodString>;
        retryOptions: z.ZodOptional<z.ZodObject<{
            maxRetries: z.ZodOptional<z.ZodNumber>;
            retryDelay: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        }, {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        }>>;
        logging: z.ZodOptional<z.ZodObject<{
            onSuccess: z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>;
            onError: z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>;
            logCommandValues: z.ZodDefault<z.ZodBoolean>;
            logReturnValue: z.ZodDefault<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            onSuccess: "info" | "debug" | "trace";
            onError: "fatal" | "error" | "warn";
            logCommandValues: boolean;
            logReturnValue: boolean;
        }, {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logCommandValues?: boolean | undefined;
            logReturnValue?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        mode: "sentinel";
        instanceName: string;
        sentinels: {
            host: string;
            port: number;
        }[];
        retryOptions?: {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        } | undefined;
        logging?: {
            onSuccess: "info" | "debug" | "trace";
            onError: "fatal" | "error" | "warn";
            logCommandValues: boolean;
            logReturnValue: boolean;
        } | undefined;
        sentinelPassword?: string | undefined;
    }, {
        name: string;
        mode: "sentinel";
        instanceName: string;
        sentinels: {
            host: string;
            port: number;
        }[];
        retryOptions?: {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        } | undefined;
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logCommandValues?: boolean | undefined;
            logReturnValue?: boolean | undefined;
        } | undefined;
        sentinelPassword?: string | undefined;
    }>, z.ZodObject<{
        mode: z.ZodLiteral<"cluster">;
        instanceName: z.ZodString;
        rootNodes: z.ZodArray<z.ZodObject<{
            host: z.ZodString;
            port: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            host: string;
            port: number;
        }, {
            host: string;
            port: number;
        }>, "many">;
        logging: z.ZodOptional<z.ZodObject<{
            /** Level for successful commands. @default 'debug' */
            onSuccess: z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>;
            /** Level for failed commands. @default 'error' */
            onError: z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>;
            /** Whether to log command parameters. @default true */
            logCommandValues: z.ZodDefault<z.ZodBoolean>;
            /** Whether to log the return value of commands. @default false */
            logReturnValue: z.ZodDefault<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            onSuccess: "info" | "debug" | "trace";
            onError: "fatal" | "error" | "warn";
            logCommandValues: boolean;
            logReturnValue: boolean;
        }, {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logCommandValues?: boolean | undefined;
            logReturnValue?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        mode: "cluster";
        instanceName: string;
        rootNodes: {
            host: string;
            port: number;
        }[];
        logging?: {
            onSuccess: "info" | "debug" | "trace";
            onError: "fatal" | "error" | "warn";
            logCommandValues: boolean;
            logReturnValue: boolean;
        } | undefined;
    }, {
        mode: "cluster";
        instanceName: string;
        rootNodes: {
            host: string;
            port: number;
        }[];
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logCommandValues?: boolean | undefined;
            logReturnValue?: boolean | undefined;
        } | undefined;
    }>]>, "many">;
    /** The name of the default Redis instance to use when no name is provided to `getInstance()`. */
    default: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    instances: ({
        mode: "single";
        instanceName: string;
        url: string;
        retryOptions?: {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        } | undefined;
        logging?: {
            onSuccess: "info" | "debug" | "trace";
            onError: "fatal" | "error" | "warn";
            logCommandValues: boolean;
            logReturnValue: boolean;
        } | undefined;
    } | {
        name: string;
        mode: "sentinel";
        instanceName: string;
        sentinels: {
            host: string;
            port: number;
        }[];
        retryOptions?: {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        } | undefined;
        logging?: {
            onSuccess: "info" | "debug" | "trace";
            onError: "fatal" | "error" | "warn";
            logCommandValues: boolean;
            logReturnValue: boolean;
        } | undefined;
        sentinelPassword?: string | undefined;
    } | {
        mode: "cluster";
        instanceName: string;
        rootNodes: {
            host: string;
            port: number;
        }[];
        logging?: {
            onSuccess: "info" | "debug" | "trace";
            onError: "fatal" | "error" | "warn";
            logCommandValues: boolean;
            logReturnValue: boolean;
        } | undefined;
    })[];
    default?: string | undefined;
}, {
    instances: ({
        mode: "single";
        instanceName: string;
        url: string;
        retryOptions?: {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        } | undefined;
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logCommandValues?: boolean | undefined;
            logReturnValue?: boolean | undefined;
        } | undefined;
    } | {
        name: string;
        mode: "sentinel";
        instanceName: string;
        sentinels: {
            host: string;
            port: number;
        }[];
        retryOptions?: {
            maxRetries?: number | undefined;
            retryDelay?: number | undefined;
        } | undefined;
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logCommandValues?: boolean | undefined;
            logReturnValue?: boolean | undefined;
        } | undefined;
        sentinelPassword?: string | undefined;
    } | {
        mode: "cluster";
        instanceName: string;
        rootNodes: {
            host: string;
            port: number;
        }[];
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logCommandValues?: boolean | undefined;
            logReturnValue?: boolean | undefined;
        } | undefined;
    })[];
    default?: string | undefined;
}>>;
/**
 * @description Schema for a single HTTP client instance.
 */
export declare const httpInstanceConfigSchema: z.ZodObject<{
    instanceName: z.ZodString;
    adapter: z.ZodType<IHttpClientAdapter, z.ZodTypeDef, IHttpClientAdapter>;
    isDefault: z.ZodOptional<z.ZodBoolean>;
    propagate: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    propagateFullContext: z.ZodOptional<z.ZodBoolean>;
    logging: z.ZodOptional<z.ZodObject<{
        onSuccess: z.ZodOptional<z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>>;
        onError: z.ZodOptional<z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>>;
        logSuccessBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        logSuccessHeaders: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        onRequest: z.ZodOptional<z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>>;
        logRequestBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        logRequestHeaders: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    }, "strip", z.ZodTypeAny, {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logSuccessBody?: boolean | undefined;
        logSuccessHeaders?: boolean | undefined;
        onRequest?: "info" | "debug" | "trace" | undefined;
        logRequestBody?: boolean | undefined;
        logRequestHeaders?: boolean | undefined;
    }, {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logSuccessBody?: boolean | undefined;
        logSuccessHeaders?: boolean | undefined;
        onRequest?: "info" | "debug" | "trace" | undefined;
        logRequestBody?: boolean | undefined;
        logRequestHeaders?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    instanceName: string;
    adapter: IHttpClientAdapter;
    logging?: {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logSuccessBody?: boolean | undefined;
        logSuccessHeaders?: boolean | undefined;
        onRequest?: "info" | "debug" | "trace" | undefined;
        logRequestBody?: boolean | undefined;
        logRequestHeaders?: boolean | undefined;
    } | undefined;
    isDefault?: boolean | undefined;
    propagate?: string[] | undefined;
    propagateFullContext?: boolean | undefined;
}, {
    instanceName: string;
    adapter: IHttpClientAdapter;
    logging?: {
        onSuccess?: "info" | "debug" | "trace" | undefined;
        onError?: "fatal" | "error" | "warn" | undefined;
        logSuccessBody?: boolean | undefined;
        logSuccessHeaders?: boolean | undefined;
        onRequest?: "info" | "debug" | "trace" | undefined;
        logRequestBody?: boolean | undefined;
        logRequestHeaders?: boolean | undefined;
    } | undefined;
    isDefault?: boolean | undefined;
    propagate?: string[] | undefined;
    propagateFullContext?: boolean | undefined;
}>;
/**
 * @description Schema for the main HTTP configuration block.
 */
export declare const httpConfigSchema: z.ZodOptional<z.ZodObject<{
    /** An array of HTTP client instance configurations. */
    instances: z.ZodArray<z.ZodObject<{
        instanceName: z.ZodString;
        adapter: z.ZodType<IHttpClientAdapter, z.ZodTypeDef, IHttpClientAdapter>;
        isDefault: z.ZodOptional<z.ZodBoolean>;
        propagate: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        propagateFullContext: z.ZodOptional<z.ZodBoolean>;
        logging: z.ZodOptional<z.ZodObject<{
            onSuccess: z.ZodOptional<z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>>;
            onError: z.ZodOptional<z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>>;
            logSuccessBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
            logSuccessHeaders: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
            onRequest: z.ZodOptional<z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>>;
            logRequestBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
            logRequestHeaders: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        }, "strip", z.ZodTypeAny, {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logSuccessBody?: boolean | undefined;
            logSuccessHeaders?: boolean | undefined;
            onRequest?: "info" | "debug" | "trace" | undefined;
            logRequestBody?: boolean | undefined;
            logRequestHeaders?: boolean | undefined;
        }, {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logSuccessBody?: boolean | undefined;
            logSuccessHeaders?: boolean | undefined;
            onRequest?: "info" | "debug" | "trace" | undefined;
            logRequestBody?: boolean | undefined;
            logRequestHeaders?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        instanceName: string;
        adapter: IHttpClientAdapter;
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logSuccessBody?: boolean | undefined;
            logSuccessHeaders?: boolean | undefined;
            onRequest?: "info" | "debug" | "trace" | undefined;
            logRequestBody?: boolean | undefined;
            logRequestHeaders?: boolean | undefined;
        } | undefined;
        isDefault?: boolean | undefined;
        propagate?: string[] | undefined;
        propagateFullContext?: boolean | undefined;
    }, {
        instanceName: string;
        adapter: IHttpClientAdapter;
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logSuccessBody?: boolean | undefined;
            logSuccessHeaders?: boolean | undefined;
            onRequest?: "info" | "debug" | "trace" | undefined;
            logRequestBody?: boolean | undefined;
            logRequestHeaders?: boolean | undefined;
        } | undefined;
        isDefault?: boolean | undefined;
        propagate?: string[] | undefined;
        propagateFullContext?: boolean | undefined;
    }>, "many">;
    /** The name of the default HTTP client instance to use when no name is provided to `getInstance()`. */
    default: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    instances: {
        instanceName: string;
        adapter: IHttpClientAdapter;
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logSuccessBody?: boolean | undefined;
            logSuccessHeaders?: boolean | undefined;
            onRequest?: "info" | "debug" | "trace" | undefined;
            logRequestBody?: boolean | undefined;
            logRequestHeaders?: boolean | undefined;
        } | undefined;
        isDefault?: boolean | undefined;
        propagate?: string[] | undefined;
        propagateFullContext?: boolean | undefined;
    }[];
    default?: string | undefined;
}, {
    instances: {
        instanceName: string;
        adapter: IHttpClientAdapter;
        logging?: {
            onSuccess?: "info" | "debug" | "trace" | undefined;
            onError?: "fatal" | "error" | "warn" | undefined;
            logSuccessBody?: boolean | undefined;
            logSuccessHeaders?: boolean | undefined;
            onRequest?: "info" | "debug" | "trace" | undefined;
            logRequestBody?: boolean | undefined;
            logRequestHeaders?: boolean | undefined;
        } | undefined;
        isDefault?: boolean | undefined;
        propagate?: string[] | undefined;
        propagateFullContext?: boolean | undefined;
    }[];
    default?: string | undefined;
}>>;
/**
 * @description Schema for a single message broker client instance.
 * It validates that a valid `IBrokerAdapter` is provided.
 * @private
 */
export declare const brokerInstanceConfigSchema: z.ZodObject<{
    instanceName: z.ZodString;
    adapter: z.ZodType<IBrokerAdapter, z.ZodTypeDef, IBrokerAdapter>;
    /**
     * An array of context keys to propagate as message headers/properties.
     * To propagate all keys, provide an array with a single wildcard: `['*']`.
     * If not provided, only `correlationId` and `transactionId` are propagated by default.
     */
    propagate: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    /**
     * @deprecated Use `propagate` instead.
     * If true, propagates the entire asynchronous context map as headers.
     * If false (default), only propagates `correlationId` and `transactionId`.
     */
    propagateFullContext: z.ZodOptional<z.ZodBoolean>;
    isDefault: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    instanceName: string;
    adapter: IBrokerAdapter;
    isDefault?: boolean | undefined;
    propagate?: string[] | undefined;
    propagateFullContext?: boolean | undefined;
}, {
    instanceName: string;
    adapter: IBrokerAdapter;
    isDefault?: boolean | undefined;
    propagate?: string[] | undefined;
    propagateFullContext?: boolean | undefined;
}>;
/**
 * @description Schema for the main message broker configuration block.
 */
export declare const brokerConfigSchema: z.ZodOptional<z.ZodObject<{
    /** An array of broker client instance configurations. */
    instances: z.ZodArray<z.ZodObject<{
        instanceName: z.ZodString;
        adapter: z.ZodType<IBrokerAdapter, z.ZodTypeDef, IBrokerAdapter>;
        /**
         * An array of context keys to propagate as message headers/properties.
         * To propagate all keys, provide an array with a single wildcard: `['*']`.
         * If not provided, only `correlationId` and `transactionId` are propagated by default.
         */
        propagate: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        /**
         * @deprecated Use `propagate` instead.
         * If true, propagates the entire asynchronous context map as headers.
         * If false (default), only propagates `correlationId` and `transactionId`.
         */
        propagateFullContext: z.ZodOptional<z.ZodBoolean>;
        isDefault: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        instanceName: string;
        adapter: IBrokerAdapter;
        isDefault?: boolean | undefined;
        propagate?: string[] | undefined;
        propagateFullContext?: boolean | undefined;
    }, {
        instanceName: string;
        adapter: IBrokerAdapter;
        isDefault?: boolean | undefined;
        propagate?: string[] | undefined;
        propagateFullContext?: boolean | undefined;
    }>, "many">;
    /** The name of the default broker instance to use when no name is provided to `getInstance()`. */
    default: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    instances: {
        instanceName: string;
        adapter: IBrokerAdapter;
        isDefault?: boolean | undefined;
        propagate?: string[] | undefined;
        propagateFullContext?: boolean | undefined;
    }[];
    default?: string | undefined;
}, {
    instances: {
        instanceName: string;
        adapter: IBrokerAdapter;
        isDefault?: boolean | undefined;
        propagate?: string[] | undefined;
        propagateFullContext?: boolean | undefined;
    }[];
    default?: string | undefined;
}>>;
/**
 * @description The main schema for the entire SyntropyLog configuration.
 * This is the single source of truth for validating the user's configuration object.
 */
export declare const syntropyLogConfigSchema: z.ZodObject<{
    /** Logger-specific configuration. */
    logger: z.ZodOptional<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        level: z.ZodOptional<z.ZodEnum<["fatal", "error", "warn", "info", "debug", "trace", "silent"]>>;
        serviceName: z.ZodOptional<z.ZodString>;
        /**
         * An array of transport instances to be used by the logger.
         */
        transports: z.ZodOptional<z.ZodArray<z.ZodType<Transport, z.ZodTypeDef, Transport>, "many">>;
        /**
         * A dictionary of custom serializer functions. The key is the field
         * to look for in the log object, and the value is the function that transforms it.
         */
        serializers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodUnknown>, z.ZodString>>>;
        /**
         * The maximum time in milliseconds a custom serializer can run before being timed out.
         * @default 50
         */
        serializerTimeoutMs: z.ZodDefault<z.ZodNumber>;
        /** Configuration for pretty printing logs in development. */
        prettyPrint: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
        }, {
            enabled?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        serializerTimeoutMs: number;
        name?: string | undefined;
        level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent" | undefined;
        serviceName?: string | undefined;
        transports?: Transport[] | undefined;
        serializers?: Record<string, (args_0: any, ...args: unknown[]) => string> | undefined;
        prettyPrint?: {
            enabled: boolean;
        } | undefined;
    }, {
        name?: string | undefined;
        level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent" | undefined;
        serviceName?: string | undefined;
        transports?: Transport[] | undefined;
        serializers?: Record<string, (args_0: any, ...args: unknown[]) => string> | undefined;
        serializerTimeoutMs?: number | undefined;
        prettyPrint?: {
            enabled?: boolean | undefined;
        } | undefined;
    }>>;
    /** Declarative matrix to control context data in logs. */
    loggingMatrix: z.ZodOptional<z.ZodObject<{
        /** An array of context keys to include in logs by default. Can be overridden by level-specific rules. */
        default: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        /** An array of context keys to include for 'trace' level logs. Use `['*']` to include all context properties. */
        trace: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        /** An array of context keys to include for 'debug' level logs. Use `['*']` to include all context properties. */
        debug: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        /** An array of context keys to include for 'info' level logs. Use `['*']` to include all context properties. */
        info: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        /** An array of context keys to include for 'warn' level logs. Use `['*']` to include all context properties. */
        warn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        /** An array of context keys to include for 'error' level logs. Use `['*']` to include all context properties. */
        error: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        /** An array of context keys to include for 'fatal' level logs. Use `['*']` to include all context properties. */
        fatal: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        fatal?: string[] | undefined;
        error?: string[] | undefined;
        warn?: string[] | undefined;
        info?: string[] | undefined;
        debug?: string[] | undefined;
        trace?: string[] | undefined;
        default?: string[] | undefined;
    }, {
        fatal?: string[] | undefined;
        error?: string[] | undefined;
        warn?: string[] | undefined;
        info?: string[] | undefined;
        debug?: string[] | undefined;
        trace?: string[] | undefined;
        default?: string[] | undefined;
    }>>;
    /** Redis client configuration. */
    redis: z.ZodOptional<z.ZodObject<{
        /** An array of Redis instance configurations. */
        instances: z.ZodArray<z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
            mode: z.ZodLiteral<"single">;
            instanceName: z.ZodString;
            url: z.ZodString;
            retryOptions: z.ZodOptional<z.ZodObject<{
                maxRetries: z.ZodOptional<z.ZodNumber>;
                retryDelay: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            }, {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            }>>;
            logging: z.ZodOptional<z.ZodObject<{
                /** Level for successful commands. @default 'debug' */
                onSuccess: z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>;
                /** Level for failed commands. @default 'error' */
                onError: z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>;
                /** Whether to log command parameters. @default true */
                logCommandValues: z.ZodDefault<z.ZodBoolean>;
                /** Whether to log the return value of commands. @default false */
                logReturnValue: z.ZodDefault<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            }, {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            mode: "single";
            instanceName: string;
            url: string;
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            } | undefined;
        }, {
            mode: "single";
            instanceName: string;
            url: string;
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            } | undefined;
        }>, z.ZodObject<{
            mode: z.ZodLiteral<"sentinel">;
            instanceName: z.ZodString;
            name: z.ZodString;
            sentinels: z.ZodArray<z.ZodObject<{
                host: z.ZodString;
                port: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                host: string;
                port: number;
            }, {
                host: string;
                port: number;
            }>, "many">;
            sentinelPassword: z.ZodOptional<z.ZodString>;
            retryOptions: z.ZodOptional<z.ZodObject<{
                maxRetries: z.ZodOptional<z.ZodNumber>;
                retryDelay: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            }, {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            }>>;
            logging: z.ZodOptional<z.ZodObject<{
                onSuccess: z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>;
                onError: z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>;
                logCommandValues: z.ZodDefault<z.ZodBoolean>;
                logReturnValue: z.ZodDefault<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            }, {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            mode: "sentinel";
            instanceName: string;
            sentinels: {
                host: string;
                port: number;
            }[];
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            } | undefined;
            sentinelPassword?: string | undefined;
        }, {
            name: string;
            mode: "sentinel";
            instanceName: string;
            sentinels: {
                host: string;
                port: number;
            }[];
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            } | undefined;
            sentinelPassword?: string | undefined;
        }>, z.ZodObject<{
            mode: z.ZodLiteral<"cluster">;
            instanceName: z.ZodString;
            rootNodes: z.ZodArray<z.ZodObject<{
                host: z.ZodString;
                port: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                host: string;
                port: number;
            }, {
                host: string;
                port: number;
            }>, "many">;
            logging: z.ZodOptional<z.ZodObject<{
                /** Level for successful commands. @default 'debug' */
                onSuccess: z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>;
                /** Level for failed commands. @default 'error' */
                onError: z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>;
                /** Whether to log command parameters. @default true */
                logCommandValues: z.ZodDefault<z.ZodBoolean>;
                /** Whether to log the return value of commands. @default false */
                logReturnValue: z.ZodDefault<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            }, {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            mode: "cluster";
            instanceName: string;
            rootNodes: {
                host: string;
                port: number;
            }[];
            logging?: {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            } | undefined;
        }, {
            mode: "cluster";
            instanceName: string;
            rootNodes: {
                host: string;
                port: number;
            }[];
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            } | undefined;
        }>]>, "many">;
        /** The name of the default Redis instance to use when no name is provided to `getInstance()`. */
        default: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        instances: ({
            mode: "single";
            instanceName: string;
            url: string;
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            } | undefined;
        } | {
            name: string;
            mode: "sentinel";
            instanceName: string;
            sentinels: {
                host: string;
                port: number;
            }[];
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            } | undefined;
            sentinelPassword?: string | undefined;
        } | {
            mode: "cluster";
            instanceName: string;
            rootNodes: {
                host: string;
                port: number;
            }[];
            logging?: {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            } | undefined;
        })[];
        default?: string | undefined;
    }, {
        instances: ({
            mode: "single";
            instanceName: string;
            url: string;
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            } | undefined;
        } | {
            name: string;
            mode: "sentinel";
            instanceName: string;
            sentinels: {
                host: string;
                port: number;
            }[];
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            } | undefined;
            sentinelPassword?: string | undefined;
        } | {
            mode: "cluster";
            instanceName: string;
            rootNodes: {
                host: string;
                port: number;
            }[];
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            } | undefined;
        })[];
        default?: string | undefined;
    }>>;
    /** HTTP client configuration. */
    http: z.ZodOptional<z.ZodObject<{
        /** An array of HTTP client instance configurations. */
        instances: z.ZodArray<z.ZodObject<{
            instanceName: z.ZodString;
            adapter: z.ZodType<IHttpClientAdapter, z.ZodTypeDef, IHttpClientAdapter>;
            isDefault: z.ZodOptional<z.ZodBoolean>;
            propagate: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            propagateFullContext: z.ZodOptional<z.ZodBoolean>;
            logging: z.ZodOptional<z.ZodObject<{
                onSuccess: z.ZodOptional<z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>>;
                onError: z.ZodOptional<z.ZodDefault<z.ZodEnum<["warn", "error", "fatal"]>>>;
                logSuccessBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
                logSuccessHeaders: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
                onRequest: z.ZodOptional<z.ZodDefault<z.ZodEnum<["trace", "debug", "info"]>>>;
                logRequestBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
                logRequestHeaders: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
            }, "strip", z.ZodTypeAny, {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logSuccessBody?: boolean | undefined;
                logSuccessHeaders?: boolean | undefined;
                onRequest?: "info" | "debug" | "trace" | undefined;
                logRequestBody?: boolean | undefined;
                logRequestHeaders?: boolean | undefined;
            }, {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logSuccessBody?: boolean | undefined;
                logSuccessHeaders?: boolean | undefined;
                onRequest?: "info" | "debug" | "trace" | undefined;
                logRequestBody?: boolean | undefined;
                logRequestHeaders?: boolean | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            instanceName: string;
            adapter: IHttpClientAdapter;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logSuccessBody?: boolean | undefined;
                logSuccessHeaders?: boolean | undefined;
                onRequest?: "info" | "debug" | "trace" | undefined;
                logRequestBody?: boolean | undefined;
                logRequestHeaders?: boolean | undefined;
            } | undefined;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }, {
            instanceName: string;
            adapter: IHttpClientAdapter;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logSuccessBody?: boolean | undefined;
                logSuccessHeaders?: boolean | undefined;
                onRequest?: "info" | "debug" | "trace" | undefined;
                logRequestBody?: boolean | undefined;
                logRequestHeaders?: boolean | undefined;
            } | undefined;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }>, "many">;
        /** The name of the default HTTP client instance to use when no name is provided to `getInstance()`. */
        default: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        instances: {
            instanceName: string;
            adapter: IHttpClientAdapter;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logSuccessBody?: boolean | undefined;
                logSuccessHeaders?: boolean | undefined;
                onRequest?: "info" | "debug" | "trace" | undefined;
                logRequestBody?: boolean | undefined;
                logRequestHeaders?: boolean | undefined;
            } | undefined;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }[];
        default?: string | undefined;
    }, {
        instances: {
            instanceName: string;
            adapter: IHttpClientAdapter;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logSuccessBody?: boolean | undefined;
                logSuccessHeaders?: boolean | undefined;
                onRequest?: "info" | "debug" | "trace" | undefined;
                logRequestBody?: boolean | undefined;
                logRequestHeaders?: boolean | undefined;
            } | undefined;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }[];
        default?: string | undefined;
    }>>;
    /** Message broker client configuration. */
    brokers: z.ZodOptional<z.ZodObject<{
        /** An array of broker client instance configurations. */
        instances: z.ZodArray<z.ZodObject<{
            instanceName: z.ZodString;
            adapter: z.ZodType<IBrokerAdapter, z.ZodTypeDef, IBrokerAdapter>;
            /**
             * An array of context keys to propagate as message headers/properties.
             * To propagate all keys, provide an array with a single wildcard: `['*']`.
             * If not provided, only `correlationId` and `transactionId` are propagated by default.
             */
            propagate: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            /**
             * @deprecated Use `propagate` instead.
             * If true, propagates the entire asynchronous context map as headers.
             * If false (default), only propagates `correlationId` and `transactionId`.
             */
            propagateFullContext: z.ZodOptional<z.ZodBoolean>;
            isDefault: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            instanceName: string;
            adapter: IBrokerAdapter;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }, {
            instanceName: string;
            adapter: IBrokerAdapter;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }>, "many">;
        /** The name of the default broker instance to use when no name is provided to `getInstance()`. */
        default: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        instances: {
            instanceName: string;
            adapter: IBrokerAdapter;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }[];
        default?: string | undefined;
    }, {
        instances: {
            instanceName: string;
            adapter: IBrokerAdapter;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }[];
        default?: string | undefined;
    }>>;
    /** Centralized data masking configuration. */
    masking: z.ZodOptional<z.ZodObject<{
        /** Array of masking rules with patterns and strategies. */
        rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
            /** Regex pattern to match field names */
            pattern: z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>;
            /** Masking strategy to apply */
            strategy: z.ZodNativeEnum<typeof MaskingStrategy>;
            /** Whether to preserve original length */
            preserveLength: z.ZodOptional<z.ZodBoolean>;
            /** Character to use for masking */
            maskChar: z.ZodOptional<z.ZodString>;
            /** Custom masking function (for CUSTOM strategy) */
            customMask: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodString>>;
        }, "strip", z.ZodTypeAny, {
            pattern: string | RegExp;
            strategy: MaskingStrategy;
            preserveLength?: boolean | undefined;
            maskChar?: string | undefined;
            customMask?: ((args_0: string, ...args: unknown[]) => string) | undefined;
        }, {
            pattern: string | RegExp;
            strategy: MaskingStrategy;
            preserveLength?: boolean | undefined;
            maskChar?: string | undefined;
            customMask?: ((args_0: string, ...args: unknown[]) => string) | undefined;
        }>, "many">>;
        /** Default mask character */
        maskChar: z.ZodOptional<z.ZodString>;
        /** Whether to preserve original length by default */
        preserveLength: z.ZodOptional<z.ZodBoolean>;
        /** Enable default rules for common data types */
        enableDefaultRules: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        enableDefaultRules?: boolean | undefined;
        rules?: {
            pattern: string | RegExp;
            strategy: MaskingStrategy;
            preserveLength?: boolean | undefined;
            maskChar?: string | undefined;
            customMask?: ((args_0: string, ...args: unknown[]) => string) | undefined;
        }[] | undefined;
        preserveLength?: boolean | undefined;
        maskChar?: string | undefined;
    }, {
        enableDefaultRules?: boolean | undefined;
        rules?: {
            pattern: string | RegExp;
            strategy: MaskingStrategy;
            preserveLength?: boolean | undefined;
            maskChar?: string | undefined;
            customMask?: ((args_0: string, ...args: unknown[]) => string) | undefined;
        }[] | undefined;
        preserveLength?: boolean | undefined;
        maskChar?: string | undefined;
    }>>;
    /** Context propagation configuration. */
    context: z.ZodOptional<z.ZodObject<{
        /** The HTTP header name to use for the correlation ID. @default 'x-correlation-id' */
        correlationIdHeader: z.ZodOptional<z.ZodString>;
        /** The HTTP header name to use for the external transaction/trace ID. @default 'x-trace-id' */
        transactionIdHeader: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        correlationIdHeader?: string | undefined;
        transactionIdHeader?: string | undefined;
    }, {
        correlationIdHeader?: string | undefined;
        transactionIdHeader?: string | undefined;
    }>>;
    /**
     * The maximum time in milliseconds to wait for a graceful shutdown before timing out.
     * @default 5000
     */
    shutdownTimeout: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    logger?: {
        serializerTimeoutMs: number;
        name?: string | undefined;
        level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent" | undefined;
        serviceName?: string | undefined;
        transports?: Transport[] | undefined;
        serializers?: Record<string, (args_0: any, ...args: unknown[]) => string> | undefined;
        prettyPrint?: {
            enabled: boolean;
        } | undefined;
    } | undefined;
    loggingMatrix?: {
        fatal?: string[] | undefined;
        error?: string[] | undefined;
        warn?: string[] | undefined;
        info?: string[] | undefined;
        debug?: string[] | undefined;
        trace?: string[] | undefined;
        default?: string[] | undefined;
    } | undefined;
    redis?: {
        instances: ({
            mode: "single";
            instanceName: string;
            url: string;
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            } | undefined;
        } | {
            name: string;
            mode: "sentinel";
            instanceName: string;
            sentinels: {
                host: string;
                port: number;
            }[];
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            } | undefined;
            sentinelPassword?: string | undefined;
        } | {
            mode: "cluster";
            instanceName: string;
            rootNodes: {
                host: string;
                port: number;
            }[];
            logging?: {
                onSuccess: "info" | "debug" | "trace";
                onError: "fatal" | "error" | "warn";
                logCommandValues: boolean;
                logReturnValue: boolean;
            } | undefined;
        })[];
        default?: string | undefined;
    } | undefined;
    http?: {
        instances: {
            instanceName: string;
            adapter: IHttpClientAdapter;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logSuccessBody?: boolean | undefined;
                logSuccessHeaders?: boolean | undefined;
                onRequest?: "info" | "debug" | "trace" | undefined;
                logRequestBody?: boolean | undefined;
                logRequestHeaders?: boolean | undefined;
            } | undefined;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }[];
        default?: string | undefined;
    } | undefined;
    brokers?: {
        instances: {
            instanceName: string;
            adapter: IBrokerAdapter;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }[];
        default?: string | undefined;
    } | undefined;
    masking?: {
        enableDefaultRules?: boolean | undefined;
        rules?: {
            pattern: string | RegExp;
            strategy: MaskingStrategy;
            preserveLength?: boolean | undefined;
            maskChar?: string | undefined;
            customMask?: ((args_0: string, ...args: unknown[]) => string) | undefined;
        }[] | undefined;
        preserveLength?: boolean | undefined;
        maskChar?: string | undefined;
    } | undefined;
    context?: {
        correlationIdHeader?: string | undefined;
        transactionIdHeader?: string | undefined;
    } | undefined;
    shutdownTimeout?: number | undefined;
}, {
    logger?: {
        name?: string | undefined;
        level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent" | undefined;
        serviceName?: string | undefined;
        transports?: Transport[] | undefined;
        serializers?: Record<string, (args_0: any, ...args: unknown[]) => string> | undefined;
        serializerTimeoutMs?: number | undefined;
        prettyPrint?: {
            enabled?: boolean | undefined;
        } | undefined;
    } | undefined;
    loggingMatrix?: {
        fatal?: string[] | undefined;
        error?: string[] | undefined;
        warn?: string[] | undefined;
        info?: string[] | undefined;
        debug?: string[] | undefined;
        trace?: string[] | undefined;
        default?: string[] | undefined;
    } | undefined;
    redis?: {
        instances: ({
            mode: "single";
            instanceName: string;
            url: string;
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            } | undefined;
        } | {
            name: string;
            mode: "sentinel";
            instanceName: string;
            sentinels: {
                host: string;
                port: number;
            }[];
            retryOptions?: {
                maxRetries?: number | undefined;
                retryDelay?: number | undefined;
            } | undefined;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            } | undefined;
            sentinelPassword?: string | undefined;
        } | {
            mode: "cluster";
            instanceName: string;
            rootNodes: {
                host: string;
                port: number;
            }[];
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logCommandValues?: boolean | undefined;
                logReturnValue?: boolean | undefined;
            } | undefined;
        })[];
        default?: string | undefined;
    } | undefined;
    http?: {
        instances: {
            instanceName: string;
            adapter: IHttpClientAdapter;
            logging?: {
                onSuccess?: "info" | "debug" | "trace" | undefined;
                onError?: "fatal" | "error" | "warn" | undefined;
                logSuccessBody?: boolean | undefined;
                logSuccessHeaders?: boolean | undefined;
                onRequest?: "info" | "debug" | "trace" | undefined;
                logRequestBody?: boolean | undefined;
                logRequestHeaders?: boolean | undefined;
            } | undefined;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }[];
        default?: string | undefined;
    } | undefined;
    brokers?: {
        instances: {
            instanceName: string;
            adapter: IBrokerAdapter;
            isDefault?: boolean | undefined;
            propagate?: string[] | undefined;
            propagateFullContext?: boolean | undefined;
        }[];
        default?: string | undefined;
    } | undefined;
    masking?: {
        enableDefaultRules?: boolean | undefined;
        rules?: {
            pattern: string | RegExp;
            strategy: MaskingStrategy;
            preserveLength?: boolean | undefined;
            maskChar?: string | undefined;
            customMask?: ((args_0: string, ...args: unknown[]) => string) | undefined;
        }[] | undefined;
        preserveLength?: boolean | undefined;
        maskChar?: string | undefined;
    } | undefined;
    context?: {
        correlationIdHeader?: string | undefined;
        transactionIdHeader?: string | undefined;
    } | undefined;
    shutdownTimeout?: number | undefined;
}>;
