/**
 * TsConfigLoader — loads TypeScript/JavaScript configuration files via jiti.
 *
 * Provides the runtime loading layer for TypeScript configuration files
 * (ailf.config.ts, config/models.ts, tasks/*.task.ts, etc.). Uses `jiti`
 * for zero-config TypeScript import with ESM/CJS support.
 *
 * The loader:
 * 1. Imports the file via jiti (strips types, handles ESM interop)
 * 2. Extracts the default export
 * 3. Returns the raw object — validation is the caller's responsibility
 *
 * @see docs/design-docs/architecture-overhaul/typescript-configuration.md
 */
/**
 * Result of a TS config load attempt.
 *
 * - `ok: true` — file loaded successfully; `value` is the default export.
 * - `ok: false` — file not found or load failed; `error` describes what
 *   happened.
 */
export type TsLoadResult<T = unknown> = {
    ok: true;
    value: T;
    path: string;
} | {
    ok: false;
    error: string;
    path: string;
};
/**
 * Load a TypeScript or JavaScript config file and return its default export.
 *
 * Does NOT validate the result — the caller is responsible for passing
 * the returned value through the appropriate Zod schema.
 *
 * @param filePath - Absolute path to the .ts or .js file
 * @returns The default export of the file, or an error
 */
export declare function loadTsConfig<T = unknown>(filePath: string): Promise<TsLoadResult<T>>;
/**
 * Resolve a config file path with the TS > JS > YAML > JSON priority chain.
 *
 * Given a base path without extension (e.g., `"/path/to/config/models"`),
 * returns the first existing file in priority order, or null if none exist.
 *
 * @param basePath - Path without extension
 * @returns The resolved path with extension, or null
 */
export declare function resolveConfigPath(basePath: string): {
    path: string;
    format: "json" | "ts" | "yaml";
} | null;
/**
 * Check if a higher-priority TS/JS file exists alongside a YAML/JSON file.
 *
 * Returns a warning message if both exist, or null if no conflict.
 */
export declare function checkFormatConflict(basePath: string, activeFormat: "json" | "ts" | "yaml"): string | null;
