import { BosConfig, JsonValue, RuntimeConfig, RuntimePluginConfig } from "../../types.mjs";
import { BosEnv } from "./merge.mjs";
import { ConfigExtendsError, ConfigVersionManifestError, LOCAL_PREFIX } from "./load.mjs";
import { Effect } from "effect";
//#region src/services/resolution/runtime.d.ts
declare function buildRuntimePluginsForConfig(config: BosConfig, baseDir: string, env: BosEnv, remotePlugins?: string[]): Promise<Record<string, RuntimePluginConfig> | undefined>;
interface BuildRuntimeConfigOptions {
  plugins?: Record<string, RuntimePluginConfig>;
  hostSource?: "local" | "remote";
  uiSource?: "local" | "remote";
  apiSource?: "local" | "remote";
  authSource?: "local" | "remote";
  proxy?: string;
}
declare const buildRuntimeConfigEffect: (config: {
  account: string;
  extends?: string | {
    development?: string | undefined;
    production?: string | undefined;
    staging?: string | undefined;
  } | undefined;
  domain?: string | undefined;
  title?: string | undefined;
  description?: string | undefined;
  testnet?: string | undefined;
  staging?: {
    domain: string;
    account?: string | undefined;
  } | undefined;
  repository?: string | undefined;
  publish?: {
    auth?: "custody" | "key" | "session" | undefined;
    sourcePublish?: boolean | undefined;
  } | undefined;
  platform?: string | undefined;
  ci?: {
    railway?: {
      service: string;
    } | undefined;
  } | undefined;
  cdn?: {
    origin?: string | undefined;
  } | undefined;
  rolledBackFrom?: string | undefined;
  starter?: {
    levels?: Record<string, {
      include?: string[] | undefined;
      exclude?: string[] | undefined;
    }> | undefined;
    exclude?: string[] | undefined;
  } | undefined;
  plugins?: Record<string, string | {
    extends?: string | {
      development?: string | undefined;
      production?: string | undefined;
      staging?: string | undefined;
    } | undefined;
    name?: string | undefined;
    development?: string | undefined;
    production?: string | undefined;
    integrity?: string | undefined;
    proxy?: string | undefined;
    variables?: Record<string, JsonValue> | undefined;
    secrets?: string[] | undefined;
    routes?: string[] | undefined;
    shared?: Record<string, {
      version: string;
      requiredVersion?: string | undefined;
      singleton?: boolean | undefined;
      eager?: boolean | undefined;
      strictVersion?: boolean | undefined;
      shareScope?: string | undefined;
    }> | undefined;
    connectSrc?: string[] | undefined;
    ui?: {
      name: string;
      development?: string | undefined;
      production?: string | undefined;
      publicUrl?: string | undefined;
      integrity?: string | undefined;
      ssr?: string | undefined;
      ssrIntegrity?: string | undefined;
      pin?: {
        manifest: string;
        integrity: string;
      } | undefined;
    } | undefined;
    pin?: {
      manifest: string;
      integrity: string;
    } | undefined;
    version?: string | undefined;
    app?: Record<string, unknown> | undefined;
    plugins?: Record<string, unknown> | undefined;
    dependsOn?: string[] | undefined;
  }> | undefined;
  app: {
    host: {
      development: string;
      production?: string | undefined;
      integrity?: string | undefined;
      secrets?: string[] | undefined;
      pin?: {
        manifest: string;
        integrity: string;
      } | undefined;
    };
    ui: {
      name?: string | undefined;
      development?: string | undefined;
      production?: string | undefined;
      publicUrl?: string | undefined;
      integrity?: string | undefined;
      ssr?: string | undefined;
      ssrIntegrity?: string | undefined;
      pin?: {
        manifest: string;
        integrity: string;
      } | undefined;
    };
    api: {
      extends?: string | {
        development?: string | undefined;
        production?: string | undefined;
        staging?: string | undefined;
      } | undefined;
      name?: string | undefined;
      development?: string | undefined;
      production?: string | undefined;
      integrity?: string | undefined;
      proxy?: string | undefined;
      variables?: Record<string, JsonValue> | undefined;
      secrets?: string[] | undefined;
      routes?: string[] | undefined;
      shared?: Record<string, {
        version: string;
        requiredVersion?: string | undefined;
        singleton?: boolean | undefined;
        eager?: boolean | undefined;
        strictVersion?: boolean | undefined;
        shareScope?: string | undefined;
      }> | undefined;
      connectSrc?: string[] | undefined;
      ui?: {
        name: string;
        development?: string | undefined;
        production?: string | undefined;
        publicUrl?: string | undefined;
        integrity?: string | undefined;
        ssr?: string | undefined;
        ssrIntegrity?: string | undefined;
        pin?: {
          manifest: string;
          integrity: string;
        } | undefined;
      } | undefined;
      pin?: {
        manifest: string;
        integrity: string;
      } | undefined;
      dependsOn?: string[] | undefined;
    };
    auth?: {
      extends?: string | {
        development?: string | undefined;
        production?: string | undefined;
        staging?: string | undefined;
      } | undefined;
      name?: string | undefined;
      development?: string | undefined;
      production?: string | undefined;
      integrity?: string | undefined;
      proxy?: string | undefined;
      variables?: Record<string, JsonValue> | undefined;
      secrets?: string[] | undefined;
      routes?: string[] | undefined;
      shared?: Record<string, {
        version: string;
        requiredVersion?: string | undefined;
        singleton?: boolean | undefined;
        eager?: boolean | undefined;
        strictVersion?: boolean | undefined;
        shareScope?: string | undefined;
      }> | undefined;
      connectSrc?: string[] | undefined;
      ui?: {
        name: string;
        development?: string | undefined;
        production?: string | undefined;
        publicUrl?: string | undefined;
        integrity?: string | undefined;
        ssr?: string | undefined;
        ssrIntegrity?: string | undefined;
        pin?: {
          manifest: string;
          integrity: string;
        } | undefined;
      } | undefined;
      pin?: {
        manifest: string;
        integrity: string;
      } | undefined;
    } | undefined;
  };
}, baseDir: string, env: BosEnv, options?: BuildRuntimeConfigOptions | undefined) => Effect.Effect<{
  env: "development" | "production" | "staging";
  account: string;
  domain?: string | undefined;
  networkId: "mainnet" | "testnet";
  deploymentFingerprint?: string | undefined;
  title?: string | undefined;
  description?: string | undefined;
  repository?: string | undefined;
  host: {
    name: string;
    url: string;
    entry: string;
    entryUrl?: string | undefined;
    source: "local" | "remote";
    integrity?: string | undefined;
    localPath?: string | undefined;
    port?: number | undefined;
    secrets?: string[] | undefined;
    remoteUrl?: string | undefined;
  };
  ui: {
    name: string;
    url: string;
    entry: string;
    entryUrl?: string | undefined;
    source: "local" | "remote";
    integrity?: string | undefined;
    localPath?: string | undefined;
    port?: number | undefined;
    publicUrl?: string | undefined;
    ssrUrl?: string | undefined;
    ssrIntegrity?: string | undefined;
    ssrEntryUrl?: string | undefined;
    browserManifestUrl?: string | undefined;
    manifestIntegrity?: string | undefined;
    sharedVersions?: Record<string, string> | undefined;
    dependsOn?: string[] | undefined;
  };
  api: {
    name: string;
    url: string;
    entry: string;
    entryUrl?: string | undefined;
    source: "local" | "remote";
    integrity?: string | undefined;
    localPath?: string | undefined;
    port?: number | undefined;
    proxy?: string | undefined;
    variables?: Record<string, JsonValue> | undefined;
    secrets?: string[] | undefined;
    shared?: Record<string, {
      version: string;
      requiredVersion?: string | undefined;
      singleton?: boolean | undefined;
      eager?: boolean | undefined;
      strictVersion?: boolean | undefined;
      shareScope?: string | undefined;
    }> | undefined;
    dependsOn?: string[] | undefined;
  };
  auth?: {
    name: string;
    url: string;
    entry: string;
    entryUrl?: string | undefined;
    source: "local" | "remote";
    integrity?: string | undefined;
    extendsRef?: string | undefined;
    localPath?: string | undefined;
    port?: number | undefined;
    proxy?: string | undefined;
    variables?: Record<string, JsonValue> | undefined;
    secrets?: string[] | undefined;
    shared?: Record<string, {
      version: string;
      requiredVersion?: string | undefined;
      singleton?: boolean | undefined;
      eager?: boolean | undefined;
      strictVersion?: boolean | undefined;
      shareScope?: string | undefined;
    }> | undefined;
    dependsOn?: string[] | undefined;
    ui?: {
      name: string;
      url: string;
      entry: string;
      source: "local" | "remote";
      publicUrl?: string | undefined;
      localPath?: string | undefined;
      port?: number | undefined;
      integrity?: string | undefined;
      ssrUrl?: string | undefined;
      ssrIntegrity?: string | undefined;
      entryUrl?: string | undefined;
      ssrEntryUrl?: string | undefined;
      browserManifestUrl?: string | undefined;
      manifestIntegrity?: string | undefined;
      sharedVersions?: Record<string, string> | undefined;
      dependsOn?: string[] | undefined;
    } | undefined;
  } | undefined;
  plugins?: Record<string, {
    name: string;
    url: string;
    entry: string;
    source: "local" | "remote";
    extendsRef?: string | undefined;
    localPath?: string | undefined;
    port?: number | undefined;
    proxy?: string | undefined;
    variables?: Record<string, JsonValue> | undefined;
    secrets?: string[] | undefined;
    integrity?: string | undefined;
    entryUrl?: string | undefined;
    shared?: Record<string, {
      version: string;
      requiredVersion?: string | undefined;
      singleton?: boolean | undefined;
      eager?: boolean | undefined;
      strictVersion?: boolean | undefined;
      shareScope?: string | undefined;
    }> | undefined;
    connectSrc?: string[] | undefined;
    ui?: {
      name: string;
      url: string;
      entry: string;
      source: "local" | "remote";
      publicUrl?: string | undefined;
      localPath?: string | undefined;
      port?: number | undefined;
      integrity?: string | undefined;
      ssrUrl?: string | undefined;
      ssrIntegrity?: string | undefined;
      entryUrl?: string | undefined;
      ssrEntryUrl?: string | undefined;
      browserManifestUrl?: string | undefined;
      manifestIntegrity?: string | undefined;
      sharedVersions?: Record<string, string> | undefined;
      dependsOn?: string[] | undefined;
    } | undefined;
    routes?: string[] | undefined;
    dependsOn?: string[] | undefined;
  }> | undefined;
  nodes?: Record<string, {
    key: string;
    kind: "api" | "auth" | "plugin" | "ui";
    name: string;
    url: string;
    entry: string;
    source: "local" | "remote";
    dependsOn?: string[] | undefined;
    extendsRef?: string | undefined;
    localPath?: string | undefined;
    port?: number | undefined;
    proxy?: string | undefined;
    variables?: Record<string, JsonValue> | undefined;
    secrets?: string[] | undefined;
    integrity?: string | undefined;
    shared?: Record<string, {
      version: string;
      requiredVersion?: string | undefined;
      singleton?: boolean | undefined;
      eager?: boolean | undefined;
      strictVersion?: boolean | undefined;
      shareScope?: string | undefined;
    }> | undefined;
    connectSrc?: string[] | undefined;
    ui?: {
      name: string;
      url: string;
      entry: string;
      source: "local" | "remote";
      publicUrl?: string | undefined;
      localPath?: string | undefined;
      port?: number | undefined;
      integrity?: string | undefined;
      ssrUrl?: string | undefined;
      ssrIntegrity?: string | undefined;
      entryUrl?: string | undefined;
      ssrEntryUrl?: string | undefined;
      browserManifestUrl?: string | undefined;
      manifestIntegrity?: string | undefined;
      sharedVersions?: Record<string, string> | undefined;
      dependsOn?: string[] | undefined;
    } | undefined;
    routes?: string[] | undefined;
    sourceOrigin?: "config" | "manifest" | undefined;
    singletonKey?: string | undefined;
  }> | undefined;
}, ConfigExtendsError | ConfigVersionManifestError, never>;
declare function buildRuntimeConfig(config: BosConfig, baseDir: string, env: BosEnv, options?: BuildRuntimeConfigOptions): Promise<RuntimeConfig>;
/**
 * MF container identity must match the build: folder-form plugin ui sources
 * build under the sanitized plugin workspace package name (the generated
 * rsbuild config imports the plugin's package.json), so derive the same
 * value here — an authored `ui.name` is only a fallback, and can never
 * override what the container actually registers under.
 */
declare function resolveUiRuntimeName(uiConfig: Record<string, unknown> | undefined, localPath: string | undefined, apiName: string): string;
declare function resolvePluginRuntimeName(explicitName: string | undefined, localPath: string | undefined, fallback: string): string;
declare function isLocalDevelopmentTarget(value: string | undefined): value is `${typeof LOCAL_PREFIX}${string}`;
declare function resolveLocalDevelopmentPath(value: string | undefined, baseDir: string): string | null;
declare function resolveDevelopmentHostUrl(value: string | undefined): string;
declare function getHostDevelopmentPort(value: string | undefined): number;
declare function parsePort(url: string): number;
//#endregion
export { BuildRuntimeConfigOptions, buildRuntimeConfig, buildRuntimeConfigEffect, buildRuntimePluginsForConfig, getHostDevelopmentPort, isLocalDevelopmentTarget, parsePort, resolveDevelopmentHostUrl, resolveLocalDevelopmentPath, resolvePluginRuntimeName, resolveUiRuntimeName };
//# sourceMappingURL=runtime.d.mts.map