import { Coords, Dims } from "./dom"; export declare function debounce(f: (...args: T) => void, interval?: number): (...args: T) => void; export declare function getIdString(base: string, identifier?: string): string; export declare function setTargetWatcher(callback: () => void, interval: number): (() => void); export interface SetTourUpdateListenerArgs { update: () => void; customSetListener?: (update: () => void) => void; customRemoveListener?: (update: () => void) => void; event?: string; } export declare function setTourUpdateListener(args: SetTourUpdateListenerArgs): () => void; export declare const setFocusTrap: (tooltipContainer: HTMLElement, target?: HTMLElement, secondarySelectors?: string[], targetScope?: Element | Document, disableMaskInteraction?: boolean) => () => void; interface NaiveShouldScrollArgs { root: Element; tooltip: HTMLElement; tooltipPosition?: Coords; target: HTMLElement; } export interface ShouldScrollArgs extends NaiveShouldScrollArgs { disableAutoScroll: boolean; allowForeignTarget: boolean; targetSelector: string; } export declare function shouldScroll(args: ShouldScrollArgs): boolean; export interface TargetChangedArgs { root: Element; target: HTMLElement; targetCoords: Coords; targetDims: Dims; rerenderTolerance: number; } export declare function targetChanged(args: TargetChangedArgs): boolean; export interface ShouldUpdateArgs extends TargetChangedArgs, ShouldScrollArgs { } export declare function shouldUpdate(args: ShouldUpdateArgs): boolean; export declare const takeActionIfValid: (action: () => void, actionValidator?: () => Promise) => Promise; export declare const setNextOnTargetClick: (target: HTMLElement, next: (fromTarget?: boolean) => void, validateNext?: () => Promise) => () => void; export {};