import type { WorldProject } from './project.js';
import type { ValidationResult } from './validate.js';
import type { DependencySummary } from './dependencies.js';
export type HealthStatus = 'ready' | 'healthy' | 'degraded' | 'blocked';
export interface ContentCounts {
    zones: number;
    districts: number;
    entities: number;
    items: number;
    dialogues: number;
    progressionTrees: number;
    spawns: number;
    connections: number;
    encounters: number;
    landmarks: number;
    assets: number;
    assetPacks: number;
    factions: number;
    hotspots: number;
}
export interface SystemCompleteness {
    hasPlayerTemplate: boolean;
    hasBuildCatalog: boolean;
    hasProgressionTrees: boolean;
    hasDialogues: boolean;
    hasSpawnPoints: boolean;
    missingLabels: string[];
}
export interface RegionSummary {
    id: string;
    name: string;
    zoneCount: number;
    zoneNames: string[];
    controllingFaction?: string;
    tags: string[];
    metrics: {
        commerce: number;
        morale: number;
        safety: number;
        stability: number;
    };
    entityCount: number;
    entityRoles: Record<string, number>;
    encounterCount: number;
    itemCount: number;
}
export interface EncounterSummary {
    byType: Record<string, number>;
    totalCount: number;
    avgProbability: number;
    zonesWithEncounters: number;
    bossEncounters: number;
}
export interface ConnectionSummary {
    byKind: Record<string, number>;
    totalCount: number;
    conditionalCount: number;
    oneWayCount: number;
    bidirectionalCount: number;
}
export interface ValidationSummary {
    valid: boolean;
    errorCount: number;
    errorsByDomain: Record<string, number>;
    firstErrors: Array<{
        path: string;
        message: string;
    }>;
}
export interface AdvisorySummary {
    suggestionCount: number;
    firstSuggestions: Array<{
        message: string;
    }>;
}
export interface DependencyHealthSummary {
    broken: number;
    mismatched: number;
    orphaned: number;
    totalIssues: number;
}
export interface ReviewSnapshot {
    projectName: string;
    projectId: string;
    version: string;
    genre: string;
    mode: string;
    modeLabel: string;
    description: string;
    generatedAt: string;
    health: HealthStatus;
    healthLabel: string;
    counts: ContentCounts;
    systems: SystemCompleteness;
    regions: RegionSummary[];
    encounters: EncounterSummary;
    connections: ConnectionSummary;
    validation: ValidationSummary;
    advisory: AdvisorySummary;
    dependencies: DependencyHealthSummary;
}
export declare function classifyHealth(validation: ValidationResult, depSummary: DependencySummary): HealthStatus;
export declare function buildReviewSnapshot(project: WorldProject): ReviewSnapshot;
//# sourceMappingURL=review.d.ts.map