import * as z from "zod/v4";
/**
 * Extract the account ID from a Harness PAT token.
 * PAT format: pat.<accountId>.<tokenId>.<secret>
 * Returns undefined if the token doesn't match the expected format.
 */
export declare function extractAccountIdFromToken(apiKey: string): string | undefined;
export declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
    HARNESS_MCP_MODE: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodEnum<{
        "single-user": "single-user";
        "multi-user": "multi-user";
    }>>>;
    HARNESS_API_KEY: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_ACCOUNT_ID: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_BASE_URL: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodString>>;
    HARNESS_ORG: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_PROJECT: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_DEFAULT_ORG_ID: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_DEFAULT_PROJECT_ID: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_API_TIMEOUT_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    HARNESS_MAX_RETRIES: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    LOG_LEVEL: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodEnum<{
        debug: "debug";
        info: "info";
        warn: "warn";
        error: "error";
    }>>>;
    HARNESS_TOOLSETS: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_MAX_BODY_SIZE_MB: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    HARNESS_RATE_LIMIT_RPS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    HARNESS_READ_ONLY: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodUndefined]>, z.ZodTransform<boolean, string | boolean | undefined>>>;
    HARNESS_SKIP_ELICITATION: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodUndefined]>, z.ZodTransform<boolean, string | boolean | undefined>>>;
    HARNESS_AUTO_APPROVE_RISK: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodEnum<{
        none: "none";
        low_write: "low_write";
        medium_write: "medium_write";
        high_write: "high_write";
        all: "all";
    }>>>;
    HARNESS_ALLOW_HTTP: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodUndefined]>, z.ZodTransform<boolean, string | boolean | undefined>>>;
    HARNESS_MCP_ALLOWED_HOSTS: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>, z.ZodTransform<string | undefined, string | undefined>>;
    HARNESS_MCP_AUTH_TOKEN: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_MCP_ALLOW_UNAUTHENTICATED_HTTP: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodUndefined]>, z.ZodTransform<boolean, string | boolean | undefined>>>;
    HARNESS_FME_BASE_URL: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodString>>;
    HARNESS_LOG_UNSAFE_BODIES: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodUndefined]>, z.ZodTransform<boolean, string | boolean | undefined>>>;
    HARNESS_PIPELINE_VERSION: z.ZodOptional<z.ZodEnum<{
        1: "1";
        0: "0";
    }>>;
    HARNESS_AUDIT_FILE: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_AUDIT_WEBHOOK_URL: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_AUDIT_WEBHOOK_TOKEN: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
    HARNESS_AUDIT_WEBHOOK_BATCH_SIZE: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodCoercedNumber<unknown>>>;
    HARNESS_AUDIT_WEBHOOK_FLUSH_MS: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodCoercedNumber<unknown>>>;
}, z.core.$strip>, z.ZodTransform<{
    HARNESS_API_KEY: string;
    HARNESS_ACCOUNT_ID: string;
    HARNESS_ORG: string | undefined;
    HARNESS_PROJECT: string | undefined;
    HARNESS_AUTO_APPROVE_RISK: "none" | "low_write" | "medium_write" | "high_write" | "all";
    HARNESS_MCP_MODE: "single-user" | "multi-user";
    HARNESS_BASE_URL: string;
    HARNESS_API_TIMEOUT_MS: number;
    HARNESS_MAX_RETRIES: number;
    LOG_LEVEL: "debug" | "info" | "warn" | "error";
    HARNESS_MAX_BODY_SIZE_MB: number;
    HARNESS_RATE_LIMIT_RPS: number;
    HARNESS_READ_ONLY: boolean;
    HARNESS_SKIP_ELICITATION: boolean;
    HARNESS_ALLOW_HTTP: boolean;
    HARNESS_MCP_ALLOWED_HOSTS: string | undefined;
    HARNESS_MCP_ALLOW_UNAUTHENTICATED_HTTP: boolean;
    HARNESS_FME_BASE_URL: string;
    HARNESS_LOG_UNSAFE_BODIES: boolean;
    HARNESS_AUDIT_WEBHOOK_BATCH_SIZE: number;
    HARNESS_AUDIT_WEBHOOK_FLUSH_MS: number;
    HARNESS_TOOLSETS?: string | undefined;
    HARNESS_MCP_AUTH_TOKEN?: string | undefined;
    HARNESS_PIPELINE_VERSION?: "1" | "0" | undefined;
    HARNESS_AUDIT_FILE?: string | undefined;
    HARNESS_AUDIT_WEBHOOK_URL?: string | undefined;
    HARNESS_AUDIT_WEBHOOK_TOKEN?: string | undefined;
}, {
    HARNESS_MCP_MODE: "single-user" | "multi-user";
    HARNESS_BASE_URL: string;
    HARNESS_API_TIMEOUT_MS: number;
    HARNESS_MAX_RETRIES: number;
    LOG_LEVEL: "debug" | "info" | "warn" | "error";
    HARNESS_MAX_BODY_SIZE_MB: number;
    HARNESS_RATE_LIMIT_RPS: number;
    HARNESS_READ_ONLY: boolean;
    HARNESS_SKIP_ELICITATION: boolean;
    HARNESS_ALLOW_HTTP: boolean;
    HARNESS_MCP_ALLOWED_HOSTS: string | undefined;
    HARNESS_MCP_ALLOW_UNAUTHENTICATED_HTTP: boolean;
    HARNESS_FME_BASE_URL: string;
    HARNESS_LOG_UNSAFE_BODIES: boolean;
    HARNESS_AUDIT_WEBHOOK_BATCH_SIZE: number;
    HARNESS_AUDIT_WEBHOOK_FLUSH_MS: number;
    HARNESS_API_KEY?: string | undefined;
    HARNESS_ACCOUNT_ID?: string | undefined;
    HARNESS_ORG?: string | undefined;
    HARNESS_PROJECT?: string | undefined;
    HARNESS_DEFAULT_ORG_ID?: string | undefined;
    HARNESS_DEFAULT_PROJECT_ID?: string | undefined;
    HARNESS_TOOLSETS?: string | undefined;
    HARNESS_AUTO_APPROVE_RISK?: "none" | "low_write" | "medium_write" | "high_write" | "all" | undefined;
    HARNESS_MCP_AUTH_TOKEN?: string | undefined;
    HARNESS_PIPELINE_VERSION?: "1" | "0" | undefined;
    HARNESS_AUDIT_FILE?: string | undefined;
    HARNESS_AUDIT_WEBHOOK_URL?: string | undefined;
    HARNESS_AUDIT_WEBHOOK_TOKEN?: string | undefined;
}>>;
export type Config = z.infer<typeof ConfigSchema>;
/**
 * Resolve the base URL for a given product backend.
 * - "harness" → undefined (uses the default client base URL)
 * - "fme"     → HARNESS_FME_BASE_URL from config (defaults to https://api.split.io)
 */
export declare function resolveProductBaseUrl(config: Config, product: "harness" | "fme"): string | undefined;
export declare function loadConfig(): Config;
//# sourceMappingURL=config.d.ts.map