// @flow
import type { StylableProps } from '../../mixins/themes';
import type { SpaceProps } from '../../mixins/spacing/spacing.proptypes';
import type { TestingProps } from '../../mixins/testing';
import type { AriaProps } from '../../mixins/aria';
import type { StackeeProps } from '../../mixins/stackee';

type ReactDayPickerDisableDatesConfig = {|
  before?: Date,
  after?: Date,
|};

export type DatepickerProps = {|
  ...StylableProps,
  ...TestingProps,
  ...AriaProps,
  ...SpaceProps,
  ...StackeeProps,
  label: string,
  name?: string,
  onChange: (date: Date | void) => void,
  value?: Date,
  disabledDates?: Array<Date | ReactDayPickerDisableDatesConfig>,
  disableWeekends?: boolean,
  disablePastDates?: boolean,
|};
