import type { WorldProject } from '@world-forge/schema';
import type { GameManifest } from '@ai-rpg-engine/core';
import type { PackMetadata, PackGenre, PackDifficulty, PackTone } from '@ai-rpg-engine/pack-registry';
/** @internal Exported for drift-guard tests only (AIR-A-005/006). */
export declare const GENRE_MAP: Record<string, PackGenre>;
/** @internal Exported for drift-guard tests only (AIR-A-005/006). */
export declare const TONE_MAP: Record<string, PackTone>;
/** @internal Exported for drift-guard tests only (AIR-A-005/006). */
export declare const DIFFICULTY_MAP: Record<string, PackDifficulty>;
/** @internal Exported for drift-guard tests only (AIR-A-005/006). */
export declare const DEFAULT_MODULES: string[];
/**
 * Convert project metadata → engine `GameManifest`.
 *
 * **Precondition:** `validateProject(project).valid === true`. Converters do
 * not guard against missing nested properties and will throw if input is
 * malformed. (AIR-B-006)
 */
export declare function convertManifest(project: WorldProject): GameManifest;
/**
 * Convert project metadata → engine `PackMetadata`.
 *
 * **Precondition:** `validateProject(project).valid === true`. Converters do
 * not guard against missing nested properties and will throw if input is
 * malformed. (AIR-B-006)
 *
 * **AIR-B-008:** Pass a `warnings` array to surface invalid-tone and
 * tone-fallback messages in the top-level {@link ExportResult.warnings} list
 * (the CLI prints those in its `Warnings:` block). Without it, warnings are
 * still written to `console.warn` but will be invisible to programmatic
 * consumers.
 */
export declare function convertPackMeta(project: WorldProject, warnings?: string[]): PackMetadata;
//# sourceMappingURL=convert-pack.d.ts.map