import type {
    SetStateAction,
    Dispatch
} from "react";
import type {
    DateTimePickerDateRange,
    DateTimePickerVariant
} from "../dateTimePicker/type";
import type moment from "moment";

export interface IYearSelectorRef {
    changeCurrentView: (date: Date) => void;
};

export type YearSelectorDynamicStyle = {
    radiuses: NCoreUIKit.ActivePalette["radiuses"];
    borders: NCoreUIKit.ActivePalette["borders"];
    spaces: NCoreUIKit.ActivePalette["spaces"];
    colors: NCoreUIKit.ActivePalette["colors"];
};

export interface CalendarYear {
    originalIndex: number;
    isDisabled: boolean;
    isSelected: boolean;
    date: moment.Moment;
    yearNumber: number;
    isToday: boolean;
    title: string;
    year: number;
};

export type YearSelectInitialGeneratorType = {
    dateRange?: DateTimePickerDateRange;
    variant: DateTimePickerVariant;
    date?: Date;
};

interface IYearSelectorProps {
    selectMultipleObject: (dateRange?: DateTimePickerDateRange) => void;
    setIsSheetContentReady: Dispatch<SetStateAction<boolean>>;
    multipleSelectMinimumRequiredDayCount?: number;
    selectObject: (date?: Date) => void;
    dateRange?: DateTimePickerDateRange;
    multipleSelectDayLimit?: number;
    isShowTodayIndicator?: boolean;
    variant: DateTimePickerVariant;
    viewDate?: Date;
    maxDate?: Date;
    minDate?: Date;
    date?: Date;
};
export type {
    IYearSelectorProps as default
};
