import { type FacetItem } from '../../stats/facets.js';
import type { Die } from '../../core/dies.js';
import type { TestDef } from '../../renderer/buildWaferMap.js';
import { type SaveImageHandler } from './chartShell.js';
type CorrelationItem = FacetItem & {
    dies?: Die[];
    label?: string;
};
export interface CorrelationPanelOptions {
    title?: string;
    items: CorrelationItem[];
    testDefs: TestDef[];
    colorScheme?: string;
    onSaveImage?: SaveImageHandler;
    /**
     * When the Analysis tab's "Group by" is active, this panel gets its own
     * "Group: <value> ▾" restrict-to-one-group dropdown (matching capability's
     * pattern exactly) — the matrix is always computed for exactly one group's
     * dies, never pooled across groups. `items` above is ignored when `groups`
     * is provided. Absent ⇒ today's plain ungrouped behavior.
     */
    groups?: {
        key: string;
        items: CorrelationItem[];
    }[];
    /** Clicking a non-diagonal cell calls this — the Analysis tab wires it to drive the scatter panel's X/Y in place. */
    onSelectPair?: (xTestNumber: number, yTestNumber: number) => void;
}
export interface CorrelationPanelHandle {
    card: HTMLElement;
    destroy: () => void;
}
export declare function renderCorrelationPanel(options: CorrelationPanelOptions): CorrelationPanelHandle;
export {};
//# sourceMappingURL=correlation.d.ts.map