import { z } from 'zod';
/**
 * Parse `process.env` against a schema, failing fast with every problem listed at once.
 * Each app composes its own schema from the fragments below.
 */
export declare function loadEnv<S extends z.ZodType>(schema: S, source?: NodeJS.ProcessEnv): z.infer<S>;
declare const csv: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string[], string | undefined>>;
export declare const baseEnv: z.ZodObject<{
    NODE_ENV: z.ZodDefault<z.ZodEnum<{
        development: "development";
        test: "test";
        production: "production";
    }>>;
    LOG_LEVEL: z.ZodDefault<z.ZodEnum<{
        fatal: "fatal";
        error: "error";
        warn: "warn";
        info: "info";
        debug: "debug";
        trace: "trace";
    }>>;
}, z.core.$strip>;
export declare const databaseEnv: z.ZodObject<{
    DATABASE_URL: z.ZodURL;
}, z.core.$strip>;
export declare const magentoEnv: z.ZodObject<{
    MAGENTO_BASE_URL: z.ZodPipe<z.ZodURL, z.ZodTransform<string, string>>;
    MAGENTO_ACCESS_TOKEN: z.ZodString;
    MAGENTO_ACCESS_TOKEN_SECRET: z.ZodOptional<z.ZodString>;
    MAGENTO_CONSUMER_KEY: z.ZodOptional<z.ZodString>;
    MAGENTO_CONSUMER_SECRET: z.ZodOptional<z.ZodString>;
    MAGENTO_STORE_CODES: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string[], string | undefined>>;
    MAGENTO_DEFAULT_STORE: z.ZodDefault<z.ZodString>;
    MAGENTO_STOCK_ID: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>;
/** Feature switches shared by sync, catalog API and MCP server. */
export declare const featureEnv: z.ZodObject<{
    CATALOG_STOCK_ENABLED: z.ZodPipe<z.ZodDefault<z.ZodEnum<{
        true: "true";
        false: "false";
    }>>, z.ZodTransform<boolean, "true" | "false">>;
}, z.core.$strip>;
export declare const catalogApiClientEnv: z.ZodObject<{
    CATALOG_API_URL: z.ZodPipe<z.ZodURL, z.ZodTransform<string, string>>;
    CATALOG_API_TOKEN: z.ZodString;
}, z.core.$strip>;
export { csv as csvEnv };
//# sourceMappingURL=env.d.ts.map