import { AnyRecord } from './types';
export declare enum DIMENSION_TYPE {
    WIDTH = "width",
    HEIGHT = "height"
}
/**
 * Evaluates a function string and returns the result.
 * Do nothing if the passed parameter already is a function.
 * @param fn Function - either as a string or as a function itself
 */
export declare const parseFunction: (fn?: string | Function) => Function;
export declare const focusOnElement: (e: KeyboardEvent, listEls: HTMLElement[], el: Node, currentEl: HTMLElement) => void;
/**
 * Find current node element on a target node
 * @param el
 * @param target
 * @param iterations
 * @returns current node found on target node
 */
export declare const findParent: (currentNode: Node, target: Node, iterations?: number) => boolean;
export declare const isTextNode: (node: Node) => node is Element;
export declare const isElementNode: (node: Node) => node is Element;
/**
 * Checks if a given node has a child with a given slot name (if any).
 * @param el Parent element to check.
 * @param name Slot name to check.
 */
export declare const hasSlot: (el: Element, name?: string, tagName?: string) => boolean;
/**
 * Check if styling is present in shadow root
 * @param node
 * @returns
 */
export declare const stylingInShadowRootPresent: (node?: Element | null) => boolean;
/**
 * Detect children changes on html elements.
 **/
export declare const connectChildrenObserver: (el: HTMLElement, updateChildrenDetectedCallback: (mutation: MutationRecord) => void, config?: MutationObserverInit) => (() => void);
/**
 * Detect height or width changes on html elements.
 * @param elementSelector CSS selector or element name to find and observe for height or width changes
 * @param sizeChangeCallback Callback function called when height or width changes are detected
 * @param useFirstDiv If true, observe the first div child instead of the main element
 * @returns Function to disconnect the observer, or null if element not found
 */
export declare const connectSizeObserver: (elementSelector: string, sizeChangeCallback: (size: number, targetElement: HTMLElement) => void, useFirstDiv?: boolean, dimension?: DIMENSION_TYPE, debounceDelay?: number, maxWaitTime?: number, pollInterval?: number) => (() => void) | null;
/**
 * Get new keys from two objects
 * @param obj1
 * @param obj2
 * @returns
 */
export declare const getNewKeys: (obj1: AnyRecord, obj2: AnyRecord) => AnyRecord;
export declare const convertCamelToKebab: (input: string) => string;
export declare const convertKebabToCamel: (str: string) => string;
/**
 * Return if it's a number value
 */
export declare const isNumber: (value?: string | number | undefined) => boolean;
/**
 * Returns the parent element of a given element.
 * Also checks shadow roots and slots.
 * @param el Element to read its parent from.
 */
export declare function getParent(el: Element | null | undefined): Element | undefined;
/**
 * Search a parent element from the library
 * @param el the current element
 * @param searchParentElements list of one element search
 * @param iteration max number of iteration to do
 * @returns the element found of undefined
 */
export declare const searchParentElements: (el: HTMLElement, parentElements: string[], maxIteration?: number) => Element | undefined;
/**
 * Search a parent element from the library
 * @param el the current element
 * @param searchParentElement element search
 * @param maxIteration max number of iteration to do
 * @returns the element found of undefined
 */
export declare const searchParentElement: (el: HTMLElement, parentElement: string, maxIteration: number) => Element | undefined;
export declare const focusOnBodyElement: (el: HTMLElement) => void;
export declare const toLen: (value?: number | string | null) => string | undefined;
export declare const randomUUID: () => any;
export type IconSize = 1 | 2 | 3 | 4 | 5 | 6;
export declare const toIconSize: (size: string | number) => IconSize;
export declare const focusAnElement: (name: string) => void;
