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;
}