export interface BreadcrumbItem {
    label: string;
    href?: string;
}
export interface PageCard {
    key: string;
    icon: string;
    title: string;
    description: string;
    filename: string;
}
export interface PortalNavItem {
    /** Display label */
    label: string;
    /** Filename (e.g. "index.html", "executive-summary.html") */
    filename: string;
    /** Emoji icon */
    icon: string;
    /** Page key used for active state detection */
    key: string;
}
export interface BarChartData {
    label: string;
    value: number;
    color?: string;
}
export interface BarChartOptions {
    width?: number;
    height?: number;
    title?: string;
}
export interface LinePoint {
    x: number;
    y: number;
    label?: string;
}
export interface LineChartOptions {
    width?: number;
    height?: number;
    title?: string;
    showDots?: boolean;
}
export interface PieSlice {
    label: string;
    value: number;
    color: string;
}
export interface VelocityPeriod {
    period: string;
    count: number;
}
export interface PortalBurndownPoint {
    date: string;
    remaining: number;
    ideal: number;
}
export interface BottleneckSpec {
    specId: string;
    title: string;
    status: string;
    staleDays: number;
}
export interface AccuracyRecord {
    specId: string;
    estimated: number;
    actual: number;
    accuracy: number;
}
export interface RiskMatrixDot {
    riskId: string;
    specId: string;
    description: string;
    col: number;
    row: number;
    color: string;
    radius: number;
    impactUsd: number;
}
export interface RiskGaugeConfig {
    score: number;
    color: string;
    label: string;
}
export interface DecisionTimelineItem {
    decisionId: string;
    what: string;
    why: string;
    category: string;
    decidedBy: 'human' | 'ai' | 'both';
    status: string;
    date: string;
    side: 'left' | 'right';
    specId?: string;
}
export interface PortalChangelogEntry {
    specId: string;
    title: string;
    completedAt: string;
    estimatedHours: number;
    actualHours: number;
    accuracyPct: number;
    tags: string[];
}
export interface ArchitectureCard {
    key: string;
    label: string;
    value: string;
    icon: string;
}
export interface StackEntry {
    key: string;
    label: string;
    value: string | null;
}
export type PortalPage = 'index' | 'executive-summary' | 'analytics' | 'roadmap' | 'risks' | 'decisions' | 'architecture' | 'changelog';
export type StoreType = 'specs' | 'metrics' | 'risks' | 'decisions' | 'knowledge';
export interface PerSpecHtmlOptions {
    /** Active page key for navbar (defaults to 'dashboard' — reports are reached from dashboard) */
    activePage?: string;
    /** Breadcrumb trail to render above the report header */
    breadcrumbs?: {
        label: string;
        href?: string;
    }[];
    /** Pages available on disk for navbar conditional display */
    availablePages?: string[];
    /** Extra scripts appended before </body> (e.g. Mermaid.js CDN) */
    extraScripts?: string;
}
//# sourceMappingURL=portal.d.ts.map