import { type ComponentPropsWithoutRef, type ReactNode } from "react";
export interface CalendarDay {
    /** ISO date `YYYY-MM-DD` (or a `Date`). */
    date: string | Date;
    value: number;
    label?: ReactNode;
    color?: string;
}
export interface CalendarHeatmapProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "onChange"> {
    data: CalendarDay[];
    /** Inclusive start date for the grid. Default: data min OR (today - 1y). */
    startDate?: string | Date;
    /** Inclusive end date for the grid. Default: data max OR today. */
    endDate?: string | Date;
    /** N color stops low → high. Default = accent ramp. */
    colorScale?: string[];
    /** Lower bound of value domain. Default: data min OR 0. */
    domainMin?: number;
    /** Upper bound of value domain. Default: data max OR 1. */
    domainMax?: number;
    /** Color for days with no entry. */
    emptyColor?: string;
    /** Cell pixel size. Default 12. */
    cellSize?: number;
    /** Gap between cells. Default 2. */
    cellGap?: number;
    /** Cell corner radius (CSS length). Default `var(--ods-radius-1)`. */
    cellRadius?: string;
    /** Week start day. 0 = Sunday, 1 = Monday. Default 0. */
    weekStartsOn?: 0 | 1;
    title?: ReactNode;
    total?: ReactNode;
    /** Show the month labels along the top. Default true. */
    showMonthLabels?: boolean;
    /** Show the weekday labels along the left. Default true. */
    showWeekdayLabels?: boolean;
    /** Show the legend (less / more) below the grid. Default true. */
    showLegend?: boolean;
    formatValue?: (value: number) => string;
    formatDate?: (date: Date) => string;
    disableAnimation?: boolean;
    "aria-label"?: string;
    onDayHover?: (day: CalendarDay | null, date: Date | null) => void;
    onDayClick?: (day: CalendarDay, date: Date) => void;
}
export declare const CalendarHeatmap: import("react").ForwardRefExoticComponent<CalendarHeatmapProps & import("react").RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=CalendarHeatmap.d.ts.map