import { z } from 'zod';
/** Framework identity — sourced from the package's own package.json. */
export declare const FRAMEWORK_NAME = "@cyanheads/mcp-ts-core";
export declare const FRAMEWORK_VERSION: string;
declare const ConfigSchema: z.ZodObject<{
    pkg: z.ZodObject<{
        name: z.ZodString;
        version: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>;
    mcpServerName: z.ZodString;
    mcpServerVersion: z.ZodString;
    mcpServerDescription: z.ZodOptional<z.ZodString>;
    mcpServerKeywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
    mcpServerHomepage: z.ZodOptional<z.ZodString>;
    logLevel: z.ZodDefault<z.ZodPreprocess<z.ZodEnum<{
        error: "error";
        debug: "debug";
        info: "info";
        notice: "notice";
        warning: "warning";
        crit: "crit";
        alert: "alert";
        emerg: "emerg";
    }>>>;
    logsPath: z.ZodOptional<z.ZodString>;
    logLlmInteractions: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>>;
    environment: z.ZodDefault<z.ZodPreprocess<z.ZodEnum<{
        development: "development";
        production: "production";
        testing: "testing";
    }>>>;
    mcpTransportType: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
        stdio: "stdio";
        http: "http";
    }>>>;
    mcpSessionMode: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
        stateless: "stateless";
        stateful: "stateful";
        auto: "auto";
    }>>>;
    mcpResponseVerbosity: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
        minimal: "minimal";
        standard: "standard";
        full: "full";
    }>>>;
    mcpHttpPort: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    mcpHttpHost: z.ZodDefault<z.ZodString>;
    mcpHttpEndpointPath: z.ZodDefault<z.ZodString>;
    mcpHttpMaxBodyBytes: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    mcpPublicUrl: z.ZodPreprocess<z.ZodOptional<z.ZodURL>>;
    mcpHttpMaxPortRetries: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    mcpHttpPortRetryDelayMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    mcpStatefulSessionStaleTimeoutMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    mcpHeartbeatIntervalMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    mcpHeartbeatMissThreshold: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    mcpGcPressureIntervalMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    mcpAllowedOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
    mcpAuthSecretKey: z.ZodOptional<z.ZodString>;
    mcpJwtExpectedIssuer: z.ZodOptional<z.ZodString>;
    mcpJwtExpectedAudience: z.ZodOptional<z.ZodString>;
    mcpAuthMode: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
        jwt: "jwt";
        oauth: "oauth";
        none: "none";
    }>>>;
    mcpAuthDisableScopeChecks: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>>;
    oauthIssuerUrl: z.ZodOptional<z.ZodURL>;
    oauthJwksUri: z.ZodOptional<z.ZodURL>;
    oauthAudience: z.ZodOptional<z.ZodString>;
    oauthJwksCooldownMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    oauthJwksTimeoutMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    mcpServerResourceIdentifier: z.ZodOptional<z.ZodURL>;
    devMcpAuthBypass: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>>;
    devMcpClientId: z.ZodOptional<z.ZodString>;
    devMcpScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
    openrouterAppUrl: z.ZodDefault<z.ZodString>;
    openrouterAppName: z.ZodString;
    openrouterApiKey: z.ZodOptional<z.ZodString>;
    llmDefaultModel: z.ZodDefault<z.ZodString>;
    llmDefaultTemperature: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
    llmDefaultTopP: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
    llmDefaultMaxTokens: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
    llmDefaultTopK: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
    llmDefaultMinP: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
    oauthProxy: z.ZodOptional<z.ZodObject<{
        authorizationUrl: z.ZodOptional<z.ZodURL>;
        tokenUrl: z.ZodOptional<z.ZodURL>;
        revocationUrl: z.ZodOptional<z.ZodURL>;
        issuerUrl: z.ZodOptional<z.ZodURL>;
        serviceDocumentationUrl: z.ZodOptional<z.ZodURL>;
        defaultClientRedirectUris: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    supabase: z.ZodOptional<z.ZodObject<{
        url: z.ZodURL;
        anonKey: z.ZodString;
        serviceRoleKey: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    storage: z.ZodObject<{
        providerType: z.ZodDefault<z.ZodPreprocess<z.ZodEnum<{
            supabase: "supabase";
            "in-memory": "in-memory";
            filesystem: "filesystem";
            "cloudflare-r2": "cloudflare-r2";
            "cloudflare-kv": "cloudflare-kv";
            "cloudflare-d1": "cloudflare-d1";
        }>>>;
        filesystemPath: z.ZodDefault<z.ZodString>;
    }, z.core.$strip>;
    canvas: z.ZodObject<{
        providerType: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
            none: "none";
            duckdb: "duckdb";
        }>>>;
        defaultMemoryLimitMb: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
        exportRootPath: z.ZodDefault<z.ZodString>;
        maxCanvasesPerTenant: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
        ttlMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
        absoluteCapMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
        sweeperIntervalMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
        defaultRowLimit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
        schemaSniffRows: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    }, z.core.$strip>;
    tasks: z.ZodObject<{
        storeType: z.ZodDefault<z.ZodPreprocess<z.ZodEnum<{
            storage: "storage";
            "in-memory": "in-memory";
        }>>>;
        tenantId: z.ZodDefault<z.ZodString>;
        defaultTtlMs: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
    }, z.core.$strip>;
    openTelemetry: z.ZodObject<{
        enabled: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>>;
        serviceName: z.ZodString;
        serviceVersion: z.ZodString;
        tracesEndpoint: z.ZodOptional<z.ZodURL>;
        metricsEndpoint: z.ZodOptional<z.ZodURL>;
        samplingRatio: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
        logLevel: z.ZodDefault<z.ZodPreprocess<z.ZodEnum<{
            NONE: "NONE";
            ERROR: "ERROR";
            WARN: "WARN";
            INFO: "INFO";
            DEBUG: "DEBUG";
            VERBOSE: "VERBOSE";
            ALL: "ALL";
        }>>>;
    }, z.core.$strip>;
    speech: z.ZodOptional<z.ZodObject<{
        tts: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>>;
            provider: z.ZodDefault<z.ZodEnum<{
                elevenlabs: "elevenlabs";
            }>>;
            apiKey: z.ZodOptional<z.ZodString>;
            baseUrl: z.ZodOptional<z.ZodURL>;
            defaultVoiceId: z.ZodOptional<z.ZodString>;
            defaultModelId: z.ZodOptional<z.ZodString>;
            timeout: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
        }, z.core.$strip>>;
        stt: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>>;
            provider: z.ZodDefault<z.ZodEnum<{
                "openai-whisper": "openai-whisper";
            }>>;
            apiKey: z.ZodOptional<z.ZodString>;
            baseUrl: z.ZodOptional<z.ZodURL>;
            defaultModelId: z.ZodOptional<z.ZodString>;
            timeout: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const parseConfig: (envOverrides?: Record<string, string | undefined>) => {
    pkg: {
        name: string;
        version: string;
        description?: string | undefined;
        keywords?: string[] | undefined;
    };
    mcpServerName: string;
    mcpServerVersion: string;
    logLevel: "error" | "debug" | "info" | "notice" | "warning" | "crit" | "alert" | "emerg";
    logLlmInteractions: boolean;
    environment: "development" | "production" | "testing";
    mcpTransportType: "stdio" | "http";
    mcpSessionMode: "stateless" | "stateful" | "auto";
    mcpResponseVerbosity: "minimal" | "standard" | "full";
    mcpHttpPort: number;
    mcpHttpHost: string;
    mcpHttpEndpointPath: string;
    mcpHttpMaxBodyBytes: number;
    mcpHttpMaxPortRetries: number;
    mcpHttpPortRetryDelayMs: number;
    mcpStatefulSessionStaleTimeoutMs: number;
    mcpHeartbeatIntervalMs: number;
    mcpHeartbeatMissThreshold: number;
    mcpGcPressureIntervalMs: number;
    mcpAuthMode: "jwt" | "oauth" | "none";
    mcpAuthDisableScopeChecks: boolean;
    oauthJwksCooldownMs: number;
    oauthJwksTimeoutMs: number;
    devMcpAuthBypass: boolean;
    openrouterAppUrl: string;
    openrouterAppName: string;
    llmDefaultModel: string;
    storage: {
        providerType: "supabase" | "in-memory" | "filesystem" | "cloudflare-r2" | "cloudflare-kv" | "cloudflare-d1";
        filesystemPath: string;
    };
    canvas: {
        providerType: "none" | "duckdb";
        defaultMemoryLimitMb: number;
        exportRootPath: string;
        maxCanvasesPerTenant: number;
        ttlMs: number;
        absoluteCapMs: number;
        sweeperIntervalMs: number;
        defaultRowLimit: number;
        schemaSniffRows: number;
    };
    tasks: {
        storeType: "storage" | "in-memory";
        tenantId: string;
        defaultTtlMs?: number | null | undefined;
    };
    openTelemetry: {
        enabled: boolean;
        serviceName: string;
        serviceVersion: string;
        samplingRatio: number;
        logLevel: "NONE" | "ERROR" | "WARN" | "INFO" | "DEBUG" | "VERBOSE" | "ALL";
        tracesEndpoint?: string | undefined;
        metricsEndpoint?: string | undefined;
    };
    mcpServerDescription?: string | undefined;
    mcpServerKeywords?: string[] | undefined;
    mcpServerHomepage?: string | undefined;
    logsPath?: string | undefined;
    mcpPublicUrl?: string | undefined;
    mcpAllowedOrigins?: string[] | undefined;
    mcpAuthSecretKey?: string | undefined;
    mcpJwtExpectedIssuer?: string | undefined;
    mcpJwtExpectedAudience?: string | undefined;
    oauthIssuerUrl?: string | undefined;
    oauthJwksUri?: string | undefined;
    oauthAudience?: string | undefined;
    mcpServerResourceIdentifier?: string | undefined;
    devMcpClientId?: string | undefined;
    devMcpScopes?: string[] | undefined;
    openrouterApiKey?: string | undefined;
    llmDefaultTemperature?: number | undefined;
    llmDefaultTopP?: number | undefined;
    llmDefaultMaxTokens?: number | undefined;
    llmDefaultTopK?: number | undefined;
    llmDefaultMinP?: number | undefined;
    oauthProxy?: {
        authorizationUrl?: string | undefined;
        tokenUrl?: string | undefined;
        revocationUrl?: string | undefined;
        issuerUrl?: string | undefined;
        serviceDocumentationUrl?: string | undefined;
        defaultClientRedirectUris?: string[] | undefined;
    } | undefined;
    supabase?: {
        url: string;
        anonKey: string;
        serviceRoleKey?: string | undefined;
    } | undefined;
    speech?: {
        tts?: {
            enabled: boolean;
            provider: "elevenlabs";
            apiKey?: string | undefined;
            baseUrl?: string | undefined;
            defaultVoiceId?: string | undefined;
            defaultModelId?: string | undefined;
            timeout?: number | undefined;
        } | undefined;
        stt?: {
            enabled: boolean;
            provider: "openai-whisper";
            apiKey?: string | undefined;
            baseUrl?: string | undefined;
            defaultModelId?: string | undefined;
            timeout?: number | undefined;
        } | undefined;
    } | undefined;
};
/**
 * Resets the cached config. Without arguments, clears the cache so the next
 * proxy access re-parses from `process.env`. With `envOverrides`, immediately
 * parses and caches config with the overrides applied — avoiding `process.env`
 * mutation and the concurrency races that come with it.
 *
 * Used in Cloudflare Workers (env vars injected at request time, after ESM
 * static imports), `composeServices` (name/version overrides), and test isolation.
 */
declare const resetConfig: (envOverrides?: Record<string, string | undefined>) => void;
/**
 * Lazy config proxy. Defers `parseConfig()` until the first property access.
 * This is critical for Cloudflare Workers where environment variables are
 * injected via `injectEnvVars()` at request time — before config is read,
 * but after ESM static imports have been evaluated. Without this, config
 * would freeze at module-load time with empty/default env values.
 */
declare const config: {
    pkg: {
        name: string;
        version: string;
        description?: string | undefined;
        keywords?: string[] | undefined;
    };
    mcpServerName: string;
    mcpServerVersion: string;
    logLevel: "error" | "debug" | "info" | "notice" | "warning" | "crit" | "alert" | "emerg";
    logLlmInteractions: boolean;
    environment: "development" | "production" | "testing";
    mcpTransportType: "stdio" | "http";
    mcpSessionMode: "stateless" | "stateful" | "auto";
    mcpResponseVerbosity: "minimal" | "standard" | "full";
    mcpHttpPort: number;
    mcpHttpHost: string;
    mcpHttpEndpointPath: string;
    mcpHttpMaxBodyBytes: number;
    mcpHttpMaxPortRetries: number;
    mcpHttpPortRetryDelayMs: number;
    mcpStatefulSessionStaleTimeoutMs: number;
    mcpHeartbeatIntervalMs: number;
    mcpHeartbeatMissThreshold: number;
    mcpGcPressureIntervalMs: number;
    mcpAuthMode: "jwt" | "oauth" | "none";
    mcpAuthDisableScopeChecks: boolean;
    oauthJwksCooldownMs: number;
    oauthJwksTimeoutMs: number;
    devMcpAuthBypass: boolean;
    openrouterAppUrl: string;
    openrouterAppName: string;
    llmDefaultModel: string;
    storage: {
        providerType: "supabase" | "in-memory" | "filesystem" | "cloudflare-r2" | "cloudflare-kv" | "cloudflare-d1";
        filesystemPath: string;
    };
    canvas: {
        providerType: "none" | "duckdb";
        defaultMemoryLimitMb: number;
        exportRootPath: string;
        maxCanvasesPerTenant: number;
        ttlMs: number;
        absoluteCapMs: number;
        sweeperIntervalMs: number;
        defaultRowLimit: number;
        schemaSniffRows: number;
    };
    tasks: {
        storeType: "storage" | "in-memory";
        tenantId: string;
        defaultTtlMs?: number | null | undefined;
    };
    openTelemetry: {
        enabled: boolean;
        serviceName: string;
        serviceVersion: string;
        samplingRatio: number;
        logLevel: "NONE" | "ERROR" | "WARN" | "INFO" | "DEBUG" | "VERBOSE" | "ALL";
        tracesEndpoint?: string | undefined;
        metricsEndpoint?: string | undefined;
    };
    mcpServerDescription?: string | undefined;
    mcpServerKeywords?: string[] | undefined;
    mcpServerHomepage?: string | undefined;
    logsPath?: string | undefined;
    mcpPublicUrl?: string | undefined;
    mcpAllowedOrigins?: string[] | undefined;
    mcpAuthSecretKey?: string | undefined;
    mcpJwtExpectedIssuer?: string | undefined;
    mcpJwtExpectedAudience?: string | undefined;
    oauthIssuerUrl?: string | undefined;
    oauthJwksUri?: string | undefined;
    oauthAudience?: string | undefined;
    mcpServerResourceIdentifier?: string | undefined;
    devMcpClientId?: string | undefined;
    devMcpScopes?: string[] | undefined;
    openrouterApiKey?: string | undefined;
    llmDefaultTemperature?: number | undefined;
    llmDefaultTopP?: number | undefined;
    llmDefaultMaxTokens?: number | undefined;
    llmDefaultTopK?: number | undefined;
    llmDefaultMinP?: number | undefined;
    oauthProxy?: {
        authorizationUrl?: string | undefined;
        tokenUrl?: string | undefined;
        revocationUrl?: string | undefined;
        issuerUrl?: string | undefined;
        serviceDocumentationUrl?: string | undefined;
        defaultClientRedirectUris?: string[] | undefined;
    } | undefined;
    supabase?: {
        url: string;
        anonKey: string;
        serviceRoleKey?: string | undefined;
    } | undefined;
    speech?: {
        tts?: {
            enabled: boolean;
            provider: "elevenlabs";
            apiKey?: string | undefined;
            baseUrl?: string | undefined;
            defaultVoiceId?: string | undefined;
            defaultModelId?: string | undefined;
            timeout?: number | undefined;
        } | undefined;
        stt?: {
            enabled: boolean;
            provider: "openai-whisper";
            apiKey?: string | undefined;
            baseUrl?: string | undefined;
            defaultModelId?: string | undefined;
            timeout?: number | undefined;
        } | undefined;
    } | undefined;
};
/**
 * Export the runtime configuration, parser, and schema, plus a static AppConfig type.
 */
export type AppConfig = z.infer<typeof ConfigSchema>;
export { parseEnvConfig } from './parseEnvConfig.js';
export { ConfigSchema, config, parseConfig, resetConfig };
//# sourceMappingURL=index.d.ts.map