import { BosConfig, BosConfigSchema, BosPluginRef, RuntimeConfig, RuntimePluginConfig } from "./types.mjs";
import { BOS_CONFIG_ORDER, BosEnv, rebuildOrderedConfig } from "./merge.mjs";

//#region src/config.d.ts
declare const LOCAL_PREFIX = "local:";
declare function clearConfigCache(): void;
declare function findConfigPath(cwd?: string): string | null;
declare function getConfig(): BosConfig | null;
declare function getProjectRoot(): string;
interface ConfigResult {
  config: BosConfig;
  runtime: RuntimeConfig;
  source: {
    path: string;
    extended?: string[];
    remote?: boolean;
  };
}
interface ResolvedComposableReference {
  entry: BosPluginRef;
  providerBaseDir: string;
  targetPath: string;
  associatedUi?: Record<string, unknown>;
}
declare function loadConfig(options?: {
  cwd?: string;
  path?: string;
  env?: BosEnv;
}): Promise<ConfigResult | null>;
declare function loadBosConfig(options?: {
  cwd?: string;
  path?: string;
  env?: BosEnv;
}): Promise<RuntimeConfig>;
declare function buildRuntimePluginsForConfig(config: BosConfig, baseDir: string, env: BosEnv): Promise<Record<string, RuntimePluginConfig> | undefined>;
declare function getResolvedConfigPath(configDir: string): string;
declare function loadResolvedConfig(configDir: string): BosConfig | null;
declare function writeResolvedConfig(configDir: string, config: BosConfig, env: BosEnv, extendsChain?: string[], source?: string): void;
declare function resolveBosConfigPath(configDir: string): string;
declare function readBosConfigForBuild(configDir: string): Record<string, unknown>;
declare function resolveComposableReference(source: BosPluginRef, baseDir: string, env: BosEnv, defaultTargetPath: string): Promise<ResolvedComposableReference>;
interface BuildRuntimeConfigOptions {
  plugins?: Record<string, RuntimePluginConfig>;
  hostSource?: "local" | "remote";
  uiSource?: "local" | "remote";
  apiSource?: "local" | "remote";
  authSource?: "local" | "remote";
  proxy?: string;
}
declare function buildRuntimeConfig(config: BosConfig, baseDir: string, env: BosEnv, options?: BuildRuntimeConfigOptions): RuntimeConfig;
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 { BOS_CONFIG_ORDER, type BosConfig, BosConfigSchema, BuildRuntimeConfigOptions, ConfigResult, ResolvedComposableReference, type RuntimeConfig, buildRuntimeConfig, buildRuntimePluginsForConfig, clearConfigCache, findConfigPath, getConfig, getHostDevelopmentPort, getProjectRoot, getResolvedConfigPath, isLocalDevelopmentTarget, loadBosConfig, loadConfig, loadResolvedConfig, parsePort, readBosConfigForBuild, rebuildOrderedConfig, resolveBosConfigPath, resolveComposableReference, resolveDevelopmentHostUrl, resolveLocalDevelopmentPath, resolvePluginRuntimeName, writeResolvedConfig };
//# sourceMappingURL=config.d.mts.map