import type { WorldProject } from './project.js';
/** Status of a dependency edge. */
export type DepStatus = 'ok' | 'broken' | 'mismatched' | 'orphaned' | 'informational';
/** Domain classification for a dependency edge. */
export type DepDomain = 'zone-asset' | 'entity-asset' | 'item-asset' | 'landmark-asset' | 'asset-pack' | 'zone-ref' | 'dialogue-ref' | 'orphan-asset' | 'orphan-pack' | 'kit-provenance';
/** A single edge in the project's dependency graph. */
export interface DependencyEdge {
    domain: DepDomain;
    status: DepStatus;
    sourceType: string;
    sourceId: string;
    sourceLabel?: string;
    fieldName: string;
    targetType: string;
    targetId: string;
    expectedKind?: string;
    actualKind?: string;
    message: string;
}
/** Aggregated counts by status. */
export interface DependencySummary {
    total: number;
    ok: number;
    broken: number;
    mismatched: number;
    orphaned: number;
    informational: number;
}
/** Full dependency scan result. */
export interface DependencyReport {
    edges: DependencyEdge[];
    summary: DependencySummary;
    byDomain: Record<string, DependencySummary>;
}
/**
 * Scan the full reference graph of a WorldProject and classify every edge.
 *
 * Asset refs are checked for existence and kind match.
 * Structural refs (zones, dialogues, packs) are checked for existence.
 * Orphan detection finds assets/packs not referenced by anything.
 */
export declare function scanDependencies(project: WorldProject): DependencyReport;
//# sourceMappingURL=dependencies.d.ts.map