import React from 'react'; import { ThemeTypesModel } from '../../Themes/theme_types'; import { StickerPosition } from '../../types'; interface TunnelProps { type: 'relative' | 'absolute'; show: boolean; modalWindowSize: 'context' | 'medium' | 'large'; anchorEl?: HTMLElement | null; mobile?: boolean; width?: number | string; maxHeight?: number | string; position: StickerPosition; hashState?: string; indent?: number; children?: React.ReactElement; shift?: number; className?: string; diynamicPositioning?: boolean; backdrop?: boolean; computedWindowPosition?: (positions: positions) => void; onClose: () => void; theme?: ThemeTypesModel; } type positions = { horizontal: number; vertical: number; }; interface AbsoluteProps { modalWindowSize: 'context' | 'medium' | 'large'; anchorEl?: HTMLElement | null; position: StickerPosition; mobile?: boolean; indent?: number; hashState?: string; shift?: number; backdrop?: boolean; className?: string; diynamicPositioning?: boolean; computedWindowPosition?: (positions: positions) => void; onClose: () => void; children?: React.ReactElement; theme?: ThemeTypesModel; } interface AbsoluteWrapperProps { isContext?: boolean; modalWindowSize: 'context' | 'medium' | 'large'; } interface AbsoluteBackdropProps { bg: boolean; } interface AbsoluteContentProps { width: number | string; mobile?: boolean; isContext: boolean; positions: { horizontal: number; vertical: number; }; } interface RelativeProps { anchorEl?: HTMLElement | null; position: StickerPosition; indent?: number; shift?: number; hashState?: string; children?: React.ReactElement; onClose: () => void; theme?: ThemeTypesModel; } interface RelativeContentProps { position: { vertical: number; horizontal: number; }; } export type { TunnelProps, AbsoluteProps, AbsoluteWrapperProps, AbsoluteBackdropProps, AbsoluteContentProps, RelativeProps, RelativeContentProps, };