import { type DayOfWeek, type ISODateString, type PlainDate } from '../utils';
export interface MonthScrollerHandle {
    /** Bring a month to rest at the top of the scrollport. */
    scrollToMonth: (monthIndex: number, behavior?: ScrollBehavior) => void;
}
export interface MonthScrollerProps {
    /** Imperative handle for programmatic navigation (Today, the wheels). */
    handleRef?: React.RefObject<MonthScrollerHandle | null>;
    /** First reachable month, as a month index. */
    minMonthIndex: number;
    /** Last reachable month, as a month index. */
    maxMonthIndex: number;
    /** Month to rest on at mount. */
    initialMonthIndex: number;
    /** Fires as the scroller passes each month, settled or not. */
    onVisibleMonthChange: (monthIndex: number) => void;
    /** Currently selected date. */
    selectedDate: PlainDate | null;
    /** Today, for the `aria-current` marker. */
    today: PlainDate;
    /** Whether a date fails min/max or a custom constraint. */
    isDateDisabled: (date: PlainDate) => boolean;
    /** First column of the week. */
    weekStartsOn: DayOfWeek;
    /** Fired when a day is tapped. */
    onSelect: (value: ISODateString) => void;
}
/**
 * A vertically continuous, snap-paged run of month grids.
 */
export declare function MonthScroller({ handleRef, minMonthIndex, maxMonthIndex, initialMonthIndex, onVisibleMonthChange, selectedDate, today, isDateDisabled, weekStartsOn, onSelect, }: MonthScrollerProps): import("react").JSX.Element;
export declare namespace MonthScroller {
    var displayName: string;
}
//# sourceMappingURL=MonthScroller.d.ts.map