///
import { Year, Month, Weekday } from '../../utilities/dates';
export declare type ISODate = string;
export interface Range {
/** First day (inclusive) of the selected range */
start?: ISODate;
/** Last day (inclusive) of the selected range */
end?: ISODate;
}
export declare type DisabledDate = ISODate | Range | Weekday[];
export interface Props {
/** Month to display */
month: Month;
/** Year to display */
year: Year;
/** Disabled date or dates */
disabled?: DisabledDate[];
/**
* A date, an array of dates, or a range object with `start` and/or `to` keys indicating the selected dates.
* When a range is provided, dates between the boundaries will be highlighted.
*/
selected?: T;
/**
* A callback that is run whenever a date is selected or unselected. This callback
* is called with a string, an array of strings or a range object representing the selected dates.
* This component is [controlled](https://reactjs.org/docs/forms.html#controlled-components),
* so you **must** store these values in state and reflect it back in the
* `selected` props.
*/
onChange?(selected: T): void;
/**
* A callback that is run whenever the month is changed. This callback
* is called with `month` and `year` values indicating the month the UI should change to.
* This component is [controlled](https://reactjs.org/docs/forms.html#controlled-components),
* so you **must** store these values in state and reflect it back in the
* `month` and `year` props.
*/
onMonthChange?(month: Month, year: Year): void;
}
export declare function DatePicker({ month, year, onMonthChange, }: Props): JSX.Element;