export declare function afterPageLoad(callback?: () => void): Promise; export declare function subscribeEvent(target: T, type: string, listener: (this: T, event: E) => void, options?: boolean | AddEventListenerOptions): () => void; /** Generate unique identifiers in very performant way */ export declare function uniqueId(prefix?: string): string; export declare namespace uniqueId { var _counter: number; } export declare function clamp(min: number, now: number, max: number): number; export interface ElementCreationConfig { attributes?: Record; classList?: string[]; style?: Record; children?: Array; id?: string; } export declare function configureElement(element: T, config?: ElementCreationConfig): T; export declare function createHTMLElement(tagName: K, config?: ElementCreationConfig): HTMLElementTagNameMap[K]; export declare function createSVGElement(qualifiedName: K, config?: ElementCreationConfig): SVGElementTagNameMap[K]; export declare function animateNumber(options: { start: number; stop: number; duration: number; callback: (value: { start: number; stop: number; previousValue: number; currentValue: number; }) => void; }): void; /** Set the attribute if it isn't defined or it is a empty string */ export declare function setDefaultAttribute(element: Element, name: string, value: string): void; export declare function autoPositioning(options: { anchor: A; container: B; margin?: number; placement: 'above' | 'below' | 'left' | 'right'; fixed?: boolean; cursor?: { x: number; y: number; } | undefined; getPosition: (options: { anchor: A; anchorRect: DOMRect; container: B; containerRect: DOMRect; cursor?: { x: number; y: number; } | undefined; fixed: boolean; margin: number; placement: 'above' | 'below' | 'left' | 'right'; viewportHeight: number; viewportWidth: number; }) => { x: number; y: number; }; }): { x: number; y: number; shiftX: number; shiftY: number; placement: "above" | "below" | "left" | "right"; };