import IntersectionObserver, { IntersectionObserverOptions, IntersectionObserverEntry, Element } from './IntersectionObserver'; export type ObserverInstanceCallback = (inView: boolean, intersectionRatio: number) => void; export interface ObserverInstance { readonly callback: ObserverInstanceCallback; readonly element: Element; readonly observerId: number; readonly observer: IntersectionObserver; } /** * @kind class * @name IOManager * @description `IntersectionObserver` 인스턴스를 사용해서 DOM 요소의 가시성을 추적하고, 요소가 뷰포트에 들어오거나 나갈 때 콜백을 실행하는 클래스예요. * 이 클래스를 통해 여러 요소를 손쉽게 관리할 수 있고, 각 요소의 가시성 상태에 따라 맞춤형 로직을 실행할 수 있어요. */ export declare class IOManager { io: IntersectionObserver; observerId: number; instanceMap: Map; constructor(options: IntersectionObserverOptions); handleChange: (entries: IntersectionObserverEntry[]) => void; observe(element: Element, callback: ObserverInstanceCallback): ObserverInstance; unobserve(element: any): void; }