import { type ScatterItem } from '../../stats/scatter.js';
import { type FacetItem } from '../../stats/facets.js';
import type { TestDef } from '../../renderer/buildWaferMap.js';
import { type SaveImageHandler } from './chartShell.js';
type ScatterPanelItem = FacetItem & ScatterItem & {
    label?: string;
};
export interface ScatterPanelOptions {
    title?: string;
    items: ScatterPanelItem[];
    testDefs: TestDef[];
    xTestNumber?: number;
    yTestNumber?: number;
    colorScheme?: string;
    onSaveImage?: SaveImageHandler;
    /**
     * When the Analysis tab's "Group by" is active, every group's points are
     * plotted together (never restricted to one group, unlike capability/
     * correlation) but coloured by group instead of hard bin, with a
     * click-to-filter legend keyed on group instead of bin. `items` above is
     * used to compute the Simpson's-paradox warning when `groups` is absent;
     * ignored for point data when `groups` is provided.
     */
    groups?: {
        key: string;
        items: ScatterPanelItem[];
    }[];
}
export interface ScatterPanelHandle {
    card: HTMLElement;
    /** Cross-panel link (e.g. from the correlation matrix): switch X/Y in place. */
    setXY: (xTestNumber: number, yTestNumber: number) => void;
    destroy: () => void;
}
export declare function renderScatterPanel(options: ScatterPanelOptions): ScatterPanelHandle;
export {};
//# sourceMappingURL=scatter.d.ts.map