import type { MaskitoDateMode, MaskitoTimeMode } from '@maskito/kit'; import { CSSProperties, FocusEvent, KeyboardEvent, MouseEvent, ReactNode } from 'react'; import type { Dayjs } from 'dayjs'; interface Limits { min?: string; max?: string; } export interface DateMaskProps { className?: string; dateMode: MaskitoDateMode; timeMode: MaskitoTimeMode | null; dateSeparator?: string; placeholder?: string; disabled?: boolean; value: string | null; onInput?(): void; onFocus?(e: FocusEvent): void; onBlur?(e: FocusEvent): void; onKeyDown?(e: KeyboardEvent): void; onClick?(e: MouseEvent): void; ref(el: HTMLInputElement | null): void; autoFocus?: boolean; inputClassName?: string; max?: Date; min?: Date; prefixComponent?: ReactNode; suffixComponent?: ReactNode; style?: CSSProperties; restoreOnBlur?: boolean; autocomplete?: string; } export interface WithFormatProps extends Limits { dateFormat: string; timeFormat?: string; value?: Dayjs | null; } export interface WithEventsProps extends Limits { onInputChange(value: Dayjs | null, name: string): void; setVisibility(visible: boolean): void; onFocus(e: FocusEvent, name: string): void; onBlur(e: Dayjs | null, name: string): void; onKeyDown(e: KeyboardEvent): void; onClick?(e: MouseEvent): void; name: string; openOnFocus: boolean; outputFormat: string; fullFormat: string; } export interface WithDecoratorsProps { name: string; setVisibility(visible: boolean): void; disabled: boolean; inputClassName?: string; setControlRef?(el: HTMLInputElement | null): void; onClick?(e: MouseEvent): void; icon?: ReactNode | string; } export {};