export declare enum Bound { Top = "top", Bottom = "bottom", Left = "left", Right = "right" } type ElementSpyParams = { onShow?: () => void; onHide?: () => void; rootElement?: Element | Document; rootMargin?: string; trackingBounds?: Bound[]; elementLockTime?: number; entryPercent?: number; }; export interface ElementSpyInstance { stopSpying: () => void; startSpying: () => void; } /** * Позволяет отследить появление/исчезновение элемента во вьюпорте * * @param {Element} element элемент для инициалиазации * @param {Object} params параметры компонента * @param {Function} [params.onShow] колбэк, вызываемый, когда элемент попал во вьюпорт * @param {Number} [params.entryPercent] процент вхождения элемента во вьюпорт (1 - 100%; например: 0.5 - 50% элемента) * @param {Number} [params.elementLockTime] минимальное время нахождения элемента во вьюпорте для срабатывания onShow (в миллисекундах) * @param {Function} [params.onHide] колбэк, вызываемый, когда элемент вышел из вьюпорта * @param {Array} [params.trackingBounds] список сторон элемента, которые будут проверяться (top, left, right, * bottom). Элемент считается видимым, если все перечисленные стороны в * пределах вьюпорта * @param {Element | Document} [params.rootElement] IntersectionObserver root * @param {string} [params.rootMargin] IntersectionObserver rootMargin */ declare const elementSpy: (element: HTMLElement, params: ElementSpyParams) => ElementSpyInstance; export default elementSpy;