import * as React from 'react'; import { PartialGlobalDefaultTheme } from '../../utils/useTheme'; import { COMPONENTS_NAMESPACES } from '../../constants'; import { SetState } from '../../commonTypes'; export interface StickyPanelProps { /** Классы переданные через _ */ [x: string]: unknown; /** Дочерние элементы */ children: React.ReactNode; /** Отступ компонента в px от начала родителя (насколько ниже начала родителя должен появлятся компонент, чтобы компонент не перекрывал начало родителя) */ offsetTop?: number; /** Реф */ ref?: React.Ref; /** Тема компонента */ theme?: PartialGlobalDefaultTheme[typeof COMPONENTS_NAMESPACES.stickyPanel]; } export declare type StickyPanelPosition = 'none' | 'bottom' | 'fixed'; export declare type StickyPanelStyles = React.CSSProperties; export interface CreatePanelPositionUpdater { (offsetTop: number, panelPosition: string, panelRef: React.MutableRefObject, setPanelPosition: SetState, setPanelStyles: SetState): UpdatePanelPosition; } export interface UpdatePanelPosition { (shouldRerender?: boolean): void; } export interface UseStickyPanelEffect { (data: { offsetTop: number; panelPosition: StickyPanelPosition; panelRef: React.MutableRefObject; setPanelPosition: SetState; setPanelStyles: SetState; shouldAlwaysRerender?: boolean; }): void; } export interface StickyPanelRefCurrent { wrapper: HTMLDivElement | null; }