import { WeekStart } from '../../utils/date';
export type { WeekStart } from '../../utils/date';
export interface CalendarConfig {
    /** Container element (or selector) the calendar is mounted into. */
    container: HTMLElement | string;
    /** Currently selected date in single-selection mode. */
    value?: Date | null;
    /** Range start date when `mode` is `'range'`. */
    rangeStart?: Date | null;
    /** Range end date when `mode` is `'range'`. */
    rangeEnd?: Date | null;
    /**
     * Selection mode — single date or date range.
     * @default 'single'
     */
    mode?: 'single' | 'range';
    /** Earliest selectable date (inclusive). */
    minDate?: Date | undefined;
    /** Latest selectable date (inclusive). */
    maxDate?: Date | undefined;
    /** Disable specific dates via array or predicate. */
    disabledDates?: Date[] | ((date: Date) => boolean) | undefined;
    /**
     * First day of the week (0 = Sunday, 1 = Monday).
     * @default 0
     */
    weekStart?: WeekStart | undefined;
    /**
     * Render leading/trailing days from sibling months.
     * @default false
     */
    showOutsideDays?: boolean | undefined;
    /** Additional CSS class names. */
    className?: string;
    /** Called when a single date is selected. */
    onChange?: (date: Date) => void;
    /** Called when range selection changes. */
    onRangeChange?: (start: Date | null, end: Date | null) => void;
}
//# sourceMappingURL=types.d.ts.map