import type {
    DateTimePickerDateRange,
    DateTimePickerVariant
} from "../../../dateTimePicker/type";
import type INumericInputProps from "../../../numericInput/type";
import type {
    UpdateDateRangeType,
    UpdateDateType
} from "../../type";

export type TimeInputDynamicStyle = {
    typography: NCoreUIKit.ActivePalette["typography"];
    radiuses: NCoreUIKit.ActivePalette["radiuses"];
};

export type TimeInputCombinedProps = ITimeInputProps & Omit<INumericInputProps, "variant">;

export type TimeInputTimeType = "hours" | "minutes" | "seconds";

export type TimeInputRangeType = "start" | "end";

interface ITimeInputProps {
    setDateRangeValue: (props: UpdateDateRangeType) => DateTimePickerDateRange | undefined;
    selectMultipleObject: (dateRange?: DateTimePickerDateRange) => void;
    setDateValue: (props: UpdateDateType) => Date | undefined;
    rangeValidation?: (props: {
        dateRangeValue: DateTimePickerDateRange;
        rangeType: TimeInputRangeType;
    }, setText: (text: string) => void) => boolean;
    validation?: (
        text: string,
        setText: (text: string) => void
    ) => boolean;
    selectObject: (date?: Date) => void;
    dateRange?: DateTimePickerDateRange;
    isWorkWith24HoursFormat: boolean;
    rangeType?: TimeInputRangeType;
    variant: DateTimePickerVariant;
    isWorkWithSeconds?: boolean;
    timeType: TimeInputTimeType;
    maxDate?: Date;
    minDate?: Date;
    date?: Date;
};
export type {
    ITimeInputProps as default
};
