export declare function waitForDOM(): Promise; export interface CreateElementLocatorArgs { onElementFound: (element: Element) => void; selector: string; observerOptions?: IntersectionObserverInit; /** * Per-element filter — only `false` blocks mounting. Config-authored * placements serialize the "require the target to exist" switch as a plain * boolean, so both forms are accepted. */ mustMatch?: boolean | ((element: Element) => boolean); } export declare function createElementLocator({ onElementFound, selector, observerOptions, mustMatch, }: CreateElementLocatorArgs): MutationObserver; export interface CreateLocationObserverArgs { onLocationChange: (location: Location) => void; fireOnInit?: boolean; } export declare function createLocationObserver({ onLocationChange, fireOnInit, }: CreateLocationObserverArgs): () => void; export declare function findNearestElement(origin: HTMLElement, selector: string): HTMLElement | null; export interface CreateHrefObserverArgs { element: HTMLAnchorElement; onHrefChange: (href: string) => void; } export declare function createHrefObserver({ element, onHrefChange, }: CreateHrefObserverArgs): () => void;