import type { Die } from '../core/dies.js';
import type { Wafer } from '../core/wafer.js';
import { type BinDef, type TestDef, type YieldSummary } from '../renderer/buildWaferMap.js';
import type { StatsSummary, AnalyzeWaferMapOptions } from './types.js';
import { openHtmlReport } from './renderFindingsReport.js';
export interface SummaryReportParams {
    wafer: Wafer;
    dies: Die[];
    yieldSummary: YieldSummary;
    dataCoverage: {
        filledDies: number;
        totalDies: number;
        edgeExcludedDies: number;
        ratio: number;
    };
    hbinDefs?: BinDef[];
    sbinDefs?: BinDef[];
    testDefs?: TestDef[];
    statsSummary?: StatsSummary;
    passBins?: number[];
    ringCount?: number;
}
/** Generate a full wafer summary as a standalone HTML string suitable for `openHtmlReport()`. */
export declare function renderSummaryReportHtml(params: SummaryReportParams, options?: {
    title?: string;
}): string;
export interface LotSummaryReportParams {
    /** One entry per wafer/item — grouping, per-group analysis (`analyzeWaferLot`),
     *  and rendering all happen internally; callers never pre-compute a lotSummary
     *  or pre-partition by lot identity themselves. */
    items: Array<{
        label: string;
        wafer?: Wafer;
        dies?: Die[];
        /** Reused directly as `analyzeWaferLot`'s `perWaferSummaries` — the expensive
         *  per-wafer pass (`analyzeWaferMap`) is never re-run here. */
        statsSummary?: StatsSummary;
    }>;
    hbinDefs?: BinDef[];
    sbinDefs?: BinDef[];
    testDefs?: TestDef[];
    passBins?: number[];
    ringCount?: number;
    /** Passthrough to the internal per-group `analyzeWaferLot` call, e.g. `{ enableTestValueAnalysis: true }`. */
    analyzeOptions?: AnalyzeWaferMapOptions;
}
/**
 * Generate a full lot summary as a standalone HTML string suitable for
 * `openHtmlReport()`. Grouping, per-group analysis, and rendering all
 * happen internally — see `groupByIdentity` — so a caller never needs to
 * pre-partition a multi-lot/multi-product/multi-temperature load itself:
 * a single call always returns one complete document, whether that's one
 * `<main>` (the common case) or several side by side with a banner
 * explaining the split.
 */
export declare function renderLotSummaryReportHtml(params: LotSummaryReportParams, options?: {
    title?: string;
}): string;
export { openHtmlReport };
//# sourceMappingURL=renderSummaryReport.d.ts.map