UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

18 lines (17 loc) 1.12 kB
export interface ExtendedMutationObserver extends MutationObserver { new: () => ExtendedMutationObserver; unobserve: (target: Node) => void; } type ObserverType = "mutation" | "intersection" | "resize"; type ObserverCallbackType<T extends ObserverType> = T extends "mutation" ? MutationCallback : T extends "intersection" ? IntersectionObserverCallback : T extends "resize" ? ResizeObserverCallback : never; type ObserverOptions<T extends ObserverType> = T extends "intersection" ? IntersectionObserverInit : never; type ObserverInstanceType<T extends ObserverType> = T extends "mutation" ? ExtendedMutationObserver : T extends "intersection" ? IntersectionObserver : T extends "resize" ? ResizeObserver : never; /** * This utility ensures observers are created only for browser contexts. * * @param type - the type of observer to create * @param callback - the observer callback * @param options - the observer options */ export declare function createObserver<T extends ObserverType>(type: T, callback: ObserverCallbackType<T>, options?: ObserverOptions<T>): ObserverInstanceType<T> | undefined; export {};