import type { CustomLayout } from "../stream/customLayout";
import type { Datum } from "../charts/shared/datumTypes";
export interface CalendarConfig {
    /** Field name (or function) yielding a Date or epoch ms per datum. */
    dateAccessor: string | ((d: Datum) => Date | number);
    /** Field name (or function) yielding the value used to color each day. */
    valueAccessor: string | ((d: Datum) => number);
    /**
     * Two-stop color ramp: [low, high]. By default, this uses the active
     * theme's semantic colors from `surface` to `primary` — pass explicit
     * colors here for non-default ramps.
     */
    colorRamp?: [string, string];
    /**
     * Calendar year to render. If omitted, infers the year from the first datum.
     * For multi-year series, render one XYCustomChart per year.
     */
    year?: number;
    /** Pixel gap between cells. @default 2 */
    gutter?: number;
    /** Inset on the left to leave room for weekday labels. @default 0 */
    labelInset?: number;
}
/**
 * GitHub-style calendar heatmap — 53 columns (ISO weeks) × 7 rows (days of
 * week), color-encoded by daily value. One year per layout.
 *
 * @example
 * ```tsx
 * <XYCustomChart
 *   data={dailyEvents}
 *   layout={calendarLayout}
 *   layoutConfig={{
 *     dateAccessor: "date",
 *     valueAccessor: "count",
 *     year: 2025,
 *   }}
 *   width={900}
 *   height={140}
 * />
 * ```
 */
export declare const calendarLayout: CustomLayout<CalendarConfig>;
