/**
 * Aperant UI Shapes
 * =================
 *
 * These are the 4 normalized views that framework mappers translate native
 * artifacts into. The Aperant UI renders these shapes regardless of which
 * framework produced them.
 *
 * Per D-05c: All shapes include metadata for framework-specific data.
 * UI shows normalized view by default, "View raw" for power users.
 */
/** Rendered as a decisions table in the UI */
export interface AperantContextView {
    /** Framework that produced this context */
    frameworkId: string;
    /** Project/task name */
    title: string;
    /** Scope description */
    scope: string;
    /** Locked decisions */
    decisions: ContextDecision[];
    /** Items explicitly deferred to later */
    deferredItems: string[];
    /** Open questions / unresolved items */
    openQuestions: string[];
    /** Framework-specific data (UI shows under "View raw") */
    metadata: Record<string, unknown>;
}
export interface ContextDecision {
    id: string;
    summary: string;
    rationale?: string;
}
/** Rendered as a Kanban board in the UI */
export interface AperantPlanView {
    frameworkId: string;
    title: string;
    /** Total number of tasks */
    totalTasks: number;
    /** Tasks grouped by wave for parallel execution */
    waves: PlanWave[];
    /** Framework-specific data */
    metadata: Record<string, unknown>;
}
export interface PlanWave {
    waveNumber: number;
    tasks: PlanTask[];
}
export interface PlanTask {
    id: string;
    name: string;
    status: 'pending' | 'in-progress' | 'completed' | 'failed' | 'skipped';
    /** Files this task modifies */
    files: string[];
    /** Task IDs this depends on */
    dependsOn: string[];
    /** Brief description of what the task does */
    description?: string;
}
/** Rendered as a progress bar with activity feed in the UI */
export interface AperantProgressView {
    frameworkId: string;
    /** Overall progress 0-100 */
    progressPercent: number;
    /** Task counts */
    totalTasks: number;
    completedTasks: number;
    failedTasks: number;
    /** Currently executing task (null if idle) */
    currentTask: ProgressCurrentTask | null;
    /** Recent activity (newest first) */
    recentActivity: ProgressActivity[];
    /** Framework-specific data */
    metadata: Record<string, unknown>;
}
export interface ProgressCurrentTask {
    id: string;
    name: string;
    startedAt: string;
    /** Optional: what the agent is currently doing */
    statusMessage?: string;
}
export interface ProgressActivity {
    timestamp: string;
    type: 'task-started' | 'task-completed' | 'task-failed' | 'commit' | 'retry' | 'phase-transition';
    message: string;
    /** Git commit hash if type === 'commit' */
    commitHash?: string;
}
/** Rendered as a verification dashboard in the UI */
export interface AperantVerificationView {
    frameworkId: string;
    /** Overall verification status */
    status: 'passed' | 'failed' | 'partial' | 'not-run';
    /** Overall score 0-100 (null if not scored) */
    score: number | null;
    /** Individual scored dimensions per D-13 */
    dimensions: VerificationDimension[];
    /** Gaps found during verification */
    gaps: VerificationGap[];
    /** Anti-patterns detected */
    antiPatterns: string[];
    /** Framework-specific data */
    metadata: Record<string, unknown>;
}
export interface VerificationDimension {
    name: string;
    score: number;
    threshold: number;
    passed: boolean;
    details?: string;
}
export interface VerificationGap {
    truth: string;
    reason: string;
    severity: 'blocker' | 'major' | 'minor';
    /** Files involved */
    artifacts: string[];
}
//# sourceMappingURL=ui-shapes.d.ts.map