import { Dispatch, HTMLAttributes, PropsWithChildren, SetStateAction } from "react"; import { BaseInputProps, InputAddonProps } from "@components/Input/Input.interface"; import { ClassName, DropdownPositionProps, InputTexts } from "@helpers/types"; export type HourFormatTypes = 12 | 24; export declare enum MinutesFormats { QUARTERS = "quarters", TEN_MINUTES = "tenMinutes", MINUTES = "minutes" } export declare enum SecondsFormats { TEN_SECONDS = "tenSeconds", FIVE_SECONDS = "fiveSeconds", SECONDS = "seconds" } export declare enum TimeFormats { HH_MM = "hh:mm", HH_MM_SS = "hh:mm:ss" } export declare enum PeriodTypes { AM = "AM", PM = "PM" } export declare enum TimeParts { SECONDS = "seconds", MINUTES = "minutes", HOURS = "hours" } export interface ScrollProps extends Pick, "aria-label"> { } export interface DropdownTimeInterface { hours: number | string; minutes: number | string; seconds: number | string; period: PeriodTypes; } export interface TimePickerProps extends InputTexts, Omit, BaseInputProps { disabled?: boolean; withPeriodDropdown?: boolean; dropdownClassName?: string; clearInputOnFocus?: boolean; suffixProps?: Omit; onTimeSelected?(): void; inputClassName?: string; } export interface TimePickerDropdownProps extends ClassName, DropdownPositionProps { isOpen: boolean; hoursFormat?: HourFormatTypes; minutesFormat?: MinutesFormats; secondsFormat?: SecondsFormats; timeFormat?: TimeFormats; setTime: (time: DropdownTimeInterface) => void; time: DropdownTimeInterface; handleOKClick(): void; handleCancelClick(): void; withPeriodButtons?: boolean; hoursScrollProps?: ScrollProps; minutesScrollProps?: ScrollProps; secondsScrollProps?: ScrollProps; showDefaultTime?: boolean; } export interface ScrollListProps extends PropsWithChildren, Required, "aria-label">> { handleScroll(): void; testId?: string; } export interface ListElementProps extends PropsWithChildren { onClick(): void; isActive: boolean; } export interface ActionsProps { handleCancelClick(): void; handleOKClick(): void; } export interface PeriodSectionProps { handleAMClick(): void; handlePMClick(): void; activePeriod: PeriodTypes; } export interface SuffixPeriodDropdownProps { setDropdownOpen: Dispatch>; period: PeriodTypes; } export interface PeriodDropdownProps extends DropdownPositionProps { isOpen: boolean; defaultPeriod?: PeriodTypes; setIsOpen: Dispatch>; setPeriod(chosenPeriod: PeriodTypes): void; }