import type { ISODateString } from '../../utils/dateTypes';
import { type PlainDate } from '../../utils/plainDate';
/**
 * Configuration for calendar navigation
 */
export interface UseCalendarNavigationOptions {
    /** Initial value to determine starting month */
    initialValue?: ISODateString;
    /** Controlled focus date (which month is visible) */
    focusDate?: ISODateString;
    /** Callback when visible month changes */
    onFocusDateChange?: (focusDate: ISODateString) => void;
    /** Number of months to display */
    numberOfMonths?: 1 | 2;
}
/**
 * Return type for useCalendarNavigation hook
 */
export interface UseCalendarNavigationReturn {
    /** The base month (first day of the focus month) as a PlainDate */
    baseMonth: PlainDate;
    /** Array of visible months to render as PlainDates */
    visibleMonths: PlainDate[];
    /** Formatted label for the month header */
    monthYearLabel: string;
    /** Navigate to previous/next month */
    navigateMonth: (delta: number, focusedDate?: ISODateString, offset?: number) => void;
    /** Target date to focus after navigation */
    pendingFocus: ISODateString | null;
    /** Clear the pending focus */
    clearPendingFocus: () => void;
}
/**
 * Hook for managing calendar month navigation.
 *
 * Handles the current focus date (which month is visible), previous/next
 * navigation, and pending focus for keyboard navigation across months.
 *
 * @example
 * ```
 * const {
 *   visibleMonths,
 *   monthYearLabel,
 *   navigateMonth,
 *   pendingFocus,
 *   clearPendingFocus,
 * } = useCalendarNavigation({
 *   initialValue: '2026-01-15',
 *   numberOfMonths: 1,
 * });
 *
 * // Navigate to next month
 * navigateMonth(1);
 *
 * // Navigate from arrow key (with focus tracking)
 * navigateMonth(1, focusedDate, 1); // horizontal offset
 * navigateMonth(1, focusedDate, 7); // vertical offset
 * ```
 */
export declare function useCalendarNavigation(options: UseCalendarNavigationOptions): UseCalendarNavigationReturn;
//# sourceMappingURL=useCalendarNavigation.d.ts.map