/**
 * pipeline/resolve-mappings.ts
 *
 * Extracts canonical mappings from task definitions (*.task.ts files).
 * Each task contains context.docs and referenceSolution fields
 * directly — there is no separate mappings file.
 *
 * The output shape matches what downstream consumers expect so
 * fetch-docs, validate, and calculate-scores work without changes.
 */
import type { CanonicalDoc as CoreCanonicalDoc } from "../_vendor/ailf-core/index.d.ts";
/**
 * Slug-keyed variant of the canonical doc reference. Resolve-mappings only
 * deals with `{ slug, reason }` pairs (path/id/perspective variants are
 * filtered upstream); deriving via `Extract` keeps drift impossible.
 */
export type CanonicalDoc = Extract<CoreCanonicalDoc, {
    slug: string;
}>;
export interface CanonicalTask {
    canonical_docs: CanonicalDoc[];
    description: string;
    id: string;
    reference_solution: string;
}
export interface ResolvedMappings {
    feature_areas: Record<string, {
        tasks: CanonicalTask[];
    }>;
}
/**
 * Extract canonical mappings from *.task.ts files in tasks/literacy/.
 * Only tasks with context.docs and referenceSolution are included.
 */
export declare function extractInlineMappings(rootDir: string): ResolvedMappings;
/**
 * Resolve canonical mappings from task definitions.
 * This is the single source of truth — there is no external mappings file.
 */
export declare function resolveMappings(rootDir: string): ResolvedMappings;
