/**
 * Renders a vector-only sparkline. Returns '' when there is nothing to draw.
 *
 * @param {number[]} points
 * @returns {string}
 */
export function renderSparklineSvg(points: number[]): string;
/**
 * Renders the overview HTML from a server-provided view-model.
 * Tolerates missing sections by falling back to empty French defaults — the server
 * is a boundary, so this guards against malformed payloads (deploys, partial fetches).
 *
 * @param {unknown} viewModel
 * @returns {string}
 */
export function renderOverviewHtml(viewModel: unknown): string;
export type OverviewActiveReviewItem = {
    jobId: string;
    projectName: string;
    projectPath: string;
    mrPrefix: "MR" | "PR";
    mrNumber: number;
    mrUrl: string;
    elapsedLabel: string;
    jobType: "review" | "followup";
};
export type OverviewActiveReviewsSection = {
    items: OverviewActiveReviewItem[];
    isEmpty: boolean;
    emptyMessage: string;
};
export type OverviewProjectCardItem = {
    projectName: string;
    projectPath: string;
    platform: "gitlab" | "github";
    totalReviews: number;
    averageScoreLabel: string;
    sparklinePoints: number[];
    isEmptyHistory: boolean;
    externalLink?: string | undefined;
};
export type OverviewProjectCardsSection = {
    items: OverviewProjectCardItem[];
    isEmpty: boolean;
    emptyMessage: string;
};
export type OverviewRecentReviewItem = {
    filename: string;
    projectName: string;
    mrPrefix: "MR" | "PR";
    mrNumber: string;
    title: string;
    mtime: string;
};
export type OverviewRecentReviewsFeedSection = {
    items: OverviewRecentReviewItem[];
    isEmpty: boolean;
    emptyMessage: string;
};
export type OverviewViewModel = {
    activeReviews: OverviewActiveReviewsSection;
    projectCards: OverviewProjectCardsSection;
    recentReviewsFeed: OverviewRecentReviewsFeedSection;
};
//# sourceMappingURL=overview.d.ts.map