import React from 'react'; import { ThemeTypesModel } from '../../Themes/theme_types'; import { Color, Size, StickerPosition } from '../../types'; type availableSize = Size.m | Size.l; type availableType = 'regular' | 'error'; interface TooltipProps { text: string; id?: string; isShowed?: boolean; isDynamic?: boolean; color?: Color.green | Color.dark | Color.blue; invokeType: 'hover' | 'click'; className?: string; children?: React.ReactElement; position: StickerPosition; hasBeak?: boolean; isDisabled?: boolean; isInverse?: boolean; tooltipIndent?: number; tooltipShift?: number; size: availableSize; width?: number; theme?: ThemeTypesModel; type: availableType; isOutsideClick?: boolean; tooltipShowDelay?: number; tooltipHideDelay?: number; hideDelay?: number; showDelay?: number; onHidden?: () => void; } interface TooltipContainerProps { beak?: boolean; positionAlignment?: { coordinates: { top: number; left: number; }; direction: StickerPosition; }; styled: ModelView; size: availableSize; type: availableType; color: Color.green | Color.dark | Color.blue; dayTime: 'day' | 'night'; } interface TooltipElement { width?: number; beak?: boolean; position: StickerPosition; styled: ModelView; size: availableSize; type: availableType; color: Color.green | Color.dark | Color.blue; dayTime: 'day' | 'night'; } interface ModelView { style: { regular: { day: { green: { backgroundColor: string; fontColor: string; }; dark: { backgroundColor: string; fontColor: string; }; blue: { backgroundColor: string; fontColor: string; }; }; night: { green: { backgroundColor: string; fontColor: string; }; dark: { backgroundColor: string; fontColor: string; }; blue: { backgroundColor: string; fontColor: string; }; }; }; error: { backgroundColor: string; fontColor: string; }; }; size: { m: { beakOffset: number; paddingTop: number; paddingLeft: number; paddingRight: number; paddingBottom: number; font: { fontSize: number; fontWeight: string | number; lineHeight: number; }; }; l: { beakOffset: number; paddingTop: number; paddingLeft: number; paddingRight: number; paddingBottom: number; font: { fontSize: number; fontWeight: string | number; lineHeight: number; }; }; }; } export type { TooltipProps, TooltipElement, TooltipContainerProps, ModelView };