import * as z$1 from 'zod';
import * as z from 'zod/v4/mini';

/**
 * Storm Workspace config values used during various dev-ops processes. It represents the config of the entire monorepo.
 */
declare const workspaceConfigSchema: z.ZodMiniObject<{
    $schema: z.ZodMiniDefault<z.ZodMiniString<string>>;
    extends: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
    name: z.ZodMiniString<string>;
    variant: z.ZodMiniDefault<z.ZodMiniEnum<{
        minimal: "minimal";
        monorepo: "monorepo";
    }>>;
    namespace: z.ZodMiniString<string>;
    organization: z.ZodMiniUnion<readonly [z.ZodMiniObject<{
        name: z.ZodMiniOptional<z.ZodMiniString<string>>;
        description: z.ZodMiniOptional<z.ZodMiniString<string>>;
        logo: z.ZodMiniOptional<z.ZodMiniURL>;
        icon: z.ZodMiniOptional<z.ZodMiniURL>;
        url: z.ZodMiniOptional<z.ZodMiniURL>;
    }, z.core.$strip>, z.ZodMiniString<string>]>;
    repository: z.ZodMiniString<string>;
    license: z.ZodMiniDefault<z.ZodMiniString<string>>;
    homepage: z.ZodMiniOptional<z.ZodMiniURL>;
    docs: z.ZodMiniOptional<z.ZodMiniURL>;
    portal: z.ZodMiniOptional<z.ZodMiniURL>;
    licensing: z.ZodMiniOptional<z.ZodMiniURL>;
    contact: z.ZodMiniOptional<z.ZodMiniURL>;
    support: z.ZodMiniOptional<z.ZodMiniURL>;
    branch: z.ZodMiniDefault<z.ZodMiniString<string>>;
    preid: z.ZodMiniOptional<z.ZodMiniString<string>>;
    owner: z.ZodMiniOptional<z.ZodMiniString<string>>;
    bot: z.ZodMiniObject<{
        name: z.ZodMiniString<string>;
        email: z.ZodMiniString<string>;
    }, z.core.$strip>;
    release: z.ZodMiniObject<{
        banner: z.ZodMiniUnion<readonly [z.ZodMiniObject<{
            url: z.ZodMiniOptional<z.ZodMiniString<string>>;
            alt: z.ZodMiniDefault<z.ZodMiniString<string>>;
        }, z.core.$strip>, z.ZodMiniString<string>]>;
        header: z.ZodMiniOptional<z.ZodMiniString<string>>;
        footer: z.ZodMiniOptional<z.ZodMiniString<string>>;
    }, z.core.$strip>;
    socials: z.ZodMiniObject<{
        twitter: z.ZodMiniOptional<z.ZodMiniString<string>>;
        discord: z.ZodMiniOptional<z.ZodMiniString<string>>;
        telegram: z.ZodMiniOptional<z.ZodMiniString<string>>;
        slack: z.ZodMiniOptional<z.ZodMiniString<string>>;
        medium: z.ZodMiniOptional<z.ZodMiniString<string>>;
        github: z.ZodMiniOptional<z.ZodMiniString<string>>;
    }, z.core.$strip>;
    error: z.ZodMiniObject<{
        codesFile: z.ZodMiniDefault<z.ZodMiniString<string>>;
        url: z.ZodMiniOptional<z.ZodMiniURL>;
    }, z.core.$strip>;
    mode: z.ZodMiniDefault<z.ZodMiniEnum<{
        development: "development";
        test: "test";
        production: "production";
    }>>;
    workspaceRoot: z.ZodMiniString<string>;
    skipCache: z.ZodMiniDefault<z.ZodMiniBoolean<boolean>>;
    directories: z.ZodMiniObject<{
        cache: z.ZodMiniOptional<z.ZodMiniString<string>>;
        data: z.ZodMiniOptional<z.ZodMiniString<string>>;
        config: z.ZodMiniOptional<z.ZodMiniString<string>>;
        temp: z.ZodMiniOptional<z.ZodMiniString<string>>;
        log: z.ZodMiniOptional<z.ZodMiniString<string>>;
        build: z.ZodMiniDefault<z.ZodMiniString<string>>;
    }, z.core.$strip>;
    packageManager: z.ZodMiniDefault<z.ZodMiniEnum<{
        npm: "npm";
        yarn: "yarn";
        pnpm: "pnpm";
        bun: "bun";
    }>>;
    timezone: z.ZodMiniDefault<z.ZodMiniString<string>>;
    locale: z.ZodMiniDefault<z.ZodMiniString<string>>;
    logLevel: z.ZodMiniDefault<z.ZodMiniEnum<{
        success: "success";
        info: "info";
        debug: "debug";
        fatal: "fatal";
        performance: "performance";
        silent: "silent";
        error: "error";
        warn: "warn";
        trace: "trace";
        all: "all";
    }>>;
    skipConfigLogging: z.ZodMiniDefault<z.ZodMiniBoolean<boolean>>;
    registry: z.ZodMiniDefault<z.ZodMiniObject<{
        github: z.ZodMiniOptional<z.ZodMiniURL>;
        npm: z.ZodMiniOptional<z.ZodMiniURL>;
        cargo: z.ZodMiniOptional<z.ZodMiniURL>;
        cyclone: z.ZodMiniOptional<z.ZodMiniURL>;
        container: z.ZodMiniOptional<z.ZodMiniURL>;
    }, z.core.$strip>>;
    configFile: z.ZodMiniDefault<z.ZodMiniNullable<z.ZodMiniString<string>>>;
    colors: z.ZodMiniUnion<readonly [z.ZodMiniUnion<readonly [z.ZodMiniObject<{
        dark: z.ZodMiniDefault<z.ZodMiniString<string>>;
        light: z.ZodMiniDefault<z.ZodMiniString<string>>;
        brand: z.ZodMiniDefault<z.ZodMiniString<string>>;
        alternate: z.ZodMiniOptional<z.ZodMiniString<string>>;
        accent: z.ZodMiniOptional<z.ZodMiniString<string>>;
        link: z.ZodMiniDefault<z.ZodMiniString<string>>;
        help: z.ZodMiniDefault<z.ZodMiniString<string>>;
        success: z.ZodMiniDefault<z.ZodMiniString<string>>;
        info: z.ZodMiniDefault<z.ZodMiniString<string>>;
        debug: z.ZodMiniDefault<z.ZodMiniString<string>>;
        warning: z.ZodMiniDefault<z.ZodMiniString<string>>;
        danger: z.ZodMiniDefault<z.ZodMiniString<string>>;
        fatal: z.ZodMiniOptional<z.ZodMiniString<string>>;
        performance: z.ZodMiniDefault<z.ZodMiniString<string>>;
        positive: z.ZodMiniDefault<z.ZodMiniString<string>>;
        negative: z.ZodMiniDefault<z.ZodMiniString<string>>;
        gradient: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
    }, z.core.$strip>, z.ZodMiniObject<{
        dark: z.ZodMiniObject<{
            foreground: z.ZodMiniDefault<z.ZodMiniString<string>>;
            background: z.ZodMiniDefault<z.ZodMiniString<string>>;
            brand: z.ZodMiniDefault<z.ZodMiniString<string>>;
            alternate: z.ZodMiniOptional<z.ZodMiniString<string>>;
            accent: z.ZodMiniOptional<z.ZodMiniString<string>>;
            link: z.ZodMiniDefault<z.ZodMiniString<string>>;
            help: z.ZodMiniDefault<z.ZodMiniString<string>>;
            success: z.ZodMiniDefault<z.ZodMiniString<string>>;
            info: z.ZodMiniDefault<z.ZodMiniString<string>>;
            debug: z.ZodMiniDefault<z.ZodMiniString<string>>;
            warning: z.ZodMiniDefault<z.ZodMiniString<string>>;
            danger: z.ZodMiniDefault<z.ZodMiniString<string>>;
            fatal: z.ZodMiniOptional<z.ZodMiniString<string>>;
            performance: z.ZodMiniDefault<z.ZodMiniString<string>>;
            positive: z.ZodMiniDefault<z.ZodMiniString<string>>;
            negative: z.ZodMiniDefault<z.ZodMiniString<string>>;
            gradient: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
        }, z.core.$strip>;
        light: z.ZodMiniObject<{
            foreground: z.ZodMiniDefault<z.ZodMiniString<string>>;
            background: z.ZodMiniDefault<z.ZodMiniString<string>>;
            brand: z.ZodMiniDefault<z.ZodMiniString<string>>;
            alternate: z.ZodMiniOptional<z.ZodMiniString<string>>;
            accent: z.ZodMiniOptional<z.ZodMiniString<string>>;
            link: z.ZodMiniDefault<z.ZodMiniString<string>>;
            help: z.ZodMiniDefault<z.ZodMiniString<string>>;
            success: z.ZodMiniDefault<z.ZodMiniString<string>>;
            info: z.ZodMiniDefault<z.ZodMiniString<string>>;
            debug: z.ZodMiniDefault<z.ZodMiniString<string>>;
            warning: z.ZodMiniDefault<z.ZodMiniString<string>>;
            danger: z.ZodMiniDefault<z.ZodMiniString<string>>;
            fatal: z.ZodMiniOptional<z.ZodMiniString<string>>;
            performance: z.ZodMiniDefault<z.ZodMiniString<string>>;
            positive: z.ZodMiniDefault<z.ZodMiniString<string>>;
            negative: z.ZodMiniDefault<z.ZodMiniString<string>>;
            gradient: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
        }, z.core.$strip>;
    }, z.core.$strip>]>, z.ZodMiniRecord<z.ZodMiniUnion<readonly [z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"base">, z.ZodMiniString<string>]>, z.ZodMiniString<string>]>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
        dark: z.ZodMiniDefault<z.ZodMiniString<string>>;
        light: z.ZodMiniDefault<z.ZodMiniString<string>>;
        brand: z.ZodMiniDefault<z.ZodMiniString<string>>;
        alternate: z.ZodMiniOptional<z.ZodMiniString<string>>;
        accent: z.ZodMiniOptional<z.ZodMiniString<string>>;
        link: z.ZodMiniDefault<z.ZodMiniString<string>>;
        help: z.ZodMiniDefault<z.ZodMiniString<string>>;
        success: z.ZodMiniDefault<z.ZodMiniString<string>>;
        info: z.ZodMiniDefault<z.ZodMiniString<string>>;
        debug: z.ZodMiniDefault<z.ZodMiniString<string>>;
        warning: z.ZodMiniDefault<z.ZodMiniString<string>>;
        danger: z.ZodMiniDefault<z.ZodMiniString<string>>;
        fatal: z.ZodMiniOptional<z.ZodMiniString<string>>;
        performance: z.ZodMiniDefault<z.ZodMiniString<string>>;
        positive: z.ZodMiniDefault<z.ZodMiniString<string>>;
        negative: z.ZodMiniDefault<z.ZodMiniString<string>>;
        gradient: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
    }, z.core.$strip>, z.ZodMiniObject<{
        dark: z.ZodMiniObject<{
            foreground: z.ZodMiniDefault<z.ZodMiniString<string>>;
            background: z.ZodMiniDefault<z.ZodMiniString<string>>;
            brand: z.ZodMiniDefault<z.ZodMiniString<string>>;
            alternate: z.ZodMiniOptional<z.ZodMiniString<string>>;
            accent: z.ZodMiniOptional<z.ZodMiniString<string>>;
            link: z.ZodMiniDefault<z.ZodMiniString<string>>;
            help: z.ZodMiniDefault<z.ZodMiniString<string>>;
            success: z.ZodMiniDefault<z.ZodMiniString<string>>;
            info: z.ZodMiniDefault<z.ZodMiniString<string>>;
            debug: z.ZodMiniDefault<z.ZodMiniString<string>>;
            warning: z.ZodMiniDefault<z.ZodMiniString<string>>;
            danger: z.ZodMiniDefault<z.ZodMiniString<string>>;
            fatal: z.ZodMiniOptional<z.ZodMiniString<string>>;
            performance: z.ZodMiniDefault<z.ZodMiniString<string>>;
            positive: z.ZodMiniDefault<z.ZodMiniString<string>>;
            negative: z.ZodMiniDefault<z.ZodMiniString<string>>;
            gradient: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
        }, z.core.$strip>;
        light: z.ZodMiniObject<{
            foreground: z.ZodMiniDefault<z.ZodMiniString<string>>;
            background: z.ZodMiniDefault<z.ZodMiniString<string>>;
            brand: z.ZodMiniDefault<z.ZodMiniString<string>>;
            alternate: z.ZodMiniOptional<z.ZodMiniString<string>>;
            accent: z.ZodMiniOptional<z.ZodMiniString<string>>;
            link: z.ZodMiniDefault<z.ZodMiniString<string>>;
            help: z.ZodMiniDefault<z.ZodMiniString<string>>;
            success: z.ZodMiniDefault<z.ZodMiniString<string>>;
            info: z.ZodMiniDefault<z.ZodMiniString<string>>;
            debug: z.ZodMiniDefault<z.ZodMiniString<string>>;
            warning: z.ZodMiniDefault<z.ZodMiniString<string>>;
            danger: z.ZodMiniDefault<z.ZodMiniString<string>>;
            fatal: z.ZodMiniOptional<z.ZodMiniString<string>>;
            performance: z.ZodMiniDefault<z.ZodMiniString<string>>;
            positive: z.ZodMiniDefault<z.ZodMiniString<string>>;
            negative: z.ZodMiniDefault<z.ZodMiniString<string>>;
            gradient: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
        }, z.core.$strip>;
    }, z.core.$strip>]>>]>;
    extensions: z.ZodMiniDefault<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniAny>>;
}, z.core.$strip>;

type TStormWorkspaceConfig = z$1.infer<typeof workspaceConfigSchema>;
/**
 * The Storm workspace's configuration object
 *
 * @remarks
 * This type is used to define the configuration object for the entire Storm workspace/monorepo. The value is extracted from the `storm-workspace.json` file in the workspace root and the currently configuration environment variables. The value can be obtained by calling `getWorkspaceConfig()` in `@storm-software/config-tools`.
 *
 * @deprecated
 * This type is deprecated and will be removed in the next major version. Use {@link StormWorkspaceConfig} instead.
 */
type StormConfig<TExtensionName extends keyof TStormWorkspaceConfig["extensions"] = keyof TStormWorkspaceConfig["extensions"], TExtensionConfig extends TStormWorkspaceConfig["extensions"][TExtensionName] = TStormWorkspaceConfig["extensions"][TExtensionName]> = TStormWorkspaceConfig & {
    extensions: (TStormWorkspaceConfig["extensions"] & {
        [extensionName in TExtensionName]: TExtensionConfig;
    }) | NonNullable<Record<string, any>>;
};
/**
 * The Storm workspace's configuration object
 *
 * @remarks
 * This type is used to define the configuration object for the entire Storm workspace/monorepo. The value is extracted from the `storm-workspace.json` file in the workspace root and the currently configuration environment variables. The value can be obtained by calling `getWorkspaceConfig()` in `@storm-software/config-tools`.
 */
type StormWorkspaceConfig<TExtensionName extends keyof TStormWorkspaceConfig["extensions"] = keyof TStormWorkspaceConfig["extensions"], TExtensionConfig extends TStormWorkspaceConfig["extensions"][TExtensionName] = TStormWorkspaceConfig["extensions"][TExtensionName]> = StormConfig<TExtensionName, TExtensionConfig>;

export type { StormWorkspaceConfig as S };
