import { Config } from "../../types/config.mjs";
import { AdapterRuntimeContext, EnvironmentVariables, GetEnvVarsLogger, LucidConfigDefinitionMeta, RuntimeAdapter, RuntimeConfigureLucid, WrappedLucidConfigDefinition } from "../runtime/types.mjs";
import processConfig from "./process-config.mjs";
import z from "zod";

//#region src/libs/config/resolve-config-definition.d.ts
type ResolveConfigDefinitionResult = {
  config: Config;
  adapter: RuntimeAdapter;
  runtimeContext: AdapterRuntimeContext;
  envSchema?: z.ZodType;
  env: EnvironmentVariables | undefined;
  definition: WrappedLucidConfigDefinition;
};
/**
 * Config resolution is the one place where Lucid bridges direct adapter values,
 * env loading, wrapper semantics and final config processing.
 */
declare const resolveConfigDefinition: (props: {
  definition: unknown;
  envSchema?: z.ZodType;
  meta?: LucidConfigDefinitionMeta;
  env?: EnvironmentVariables;
  configureLucid?: RuntimeConfigureLucid;
  configPath?: string;
  projectRoot?: string;
  prepareRuntime?: boolean;
  validateEnvSchema?: boolean;
  logger?: GetEnvVarsLogger;
  processConfigOptions?: Parameters<typeof processConfig>[1];
}) => Promise<ResolveConfigDefinitionResult>;
//#endregion
export { ResolveConfigDefinitionResult, resolveConfigDefinition as default, resolveConfigDefinition };
//# sourceMappingURL=resolve-config-definition.d.mts.map