import { ElementDefinition } from '../types/index.js'; export declare function getChildren(node: Document | Node | HTMLElement): Element[]; export declare function generateId(): string; export declare function getAttributeChanges(element: HTMLElement, attr: string, fn: (attrValue: string | null) => void): MutationObserver; export declare function getAttributeListChanges(element: HTMLElement, attrs: string[], fn: (mutation: MutationRecord) => void): MutationObserver; /** * Appends styles to the render root of a given element. This is useful for * styles that apply outside the scope of the element's shadow * root such as UA styles --webkit-* that won't work in a ::slotted selector */ export declare function appendRootNodeStyle(host: HTMLElement, styles: string): CSSStyleSheet; export declare function styleSheetToString(stylesheet: CSSStyleSheet): string; /** Intercepts a property setter on an element so `callback` fires on every assignment. Does not use a MutationObserver. */ export declare function getPropertyChanges(element: HTMLElement, key: string, callback: (value: unknown) => void): void; export declare function getElementUpdate(element: HTMLElement, key: string, callback: (value: unknown) => void): MutationObserver; export declare function clickOutsideElementBounds(event: PointerEvent | MouseEvent, element: HTMLElement): boolean; /** parses number out of basic calc generated by the design tokens */ export declare function parseTokenNumber(value: string): number; /** true if the browser supports scoped custom element registries */ export declare const supportsScopedRegistry: boolean; /** defines an element with the given custom element registry */ export declare function defineElement(element: ElementDefinition, customElementRegistry: CustomElementRegistry): void; /** defines an element with the global custom element registry */ export declare function define(element: ElementDefinition): void; export declare function isContextMenuClick(event: MouseEvent): boolean; export declare function getFlattenedFocusableItems(element: Node, depth?: number): HTMLElement[]; /** * Preserves visual DOM ordering when using slots within Shadow DOM * See more information/resources on Shadow DOM linear traversal * https://nolanlawson.com/2021/02/13/managing-focus-in-the-shadow-dom/ * https://www.abeautifulsite.net/posts/querying-through-shadow-roots/ */ export declare function getFlattenedDOMTree(node: Node, depth?: number): HTMLElement[]; export declare function validKeyNavigationCode(e: KeyboardEvent): boolean; export declare enum KeynavCode { End = "End", Home = "Home", PageUp = "PageUp", PageDown = "PageDown", ArrowUp = "ArrowUp", ArrowDown = "ArrowDown", ArrowLeft = "ArrowLeft", ArrowRight = "ArrowRight" } export declare function hasInvalidDOMGrid(rows: HTMLElement[]): boolean; export declare function removeEmptyTextNode(node: Node): void; export declare function scrollBarWidth(): number; export declare function hasScrollBar(el: HTMLElement): boolean; export declare function hasHorizontalScrollBar(el: HTMLElement): boolean; export declare function endOfScrollBox(element: HTMLElement, offset?: number): boolean; export declare function openEyeDropper(): Promise; /** * provides a object with key/value of the currently applied design tokens */ export declare function getThemeTokens(element?: Element): { [x: string]: string; }; export declare function removeEmptySlotWhitespace(slot: HTMLSlotElement): void; export declare function slotContainsOnlyWhitespace(slot: HTMLSlotElement): boolean; export declare function applySlotContentStates(slot: HTMLSlotElement, element: HTMLElement & { _internals: ElementInternals; }): void; export declare function getDisplayValue(option?: { label?: string; value?: string; }): string; /** determines if HTML element matches the given component tag */ export declare function matchesElementName(element: Partial, component: { metadata: { tag: string; }; }): boolean; export declare function createGhostElement(sourceElement: HTMLElement): HTMLDivElement; export declare function sameRenderRoot(element1: HTMLElement, element2: HTMLElement): boolean; export declare function getAnchorNames(element: HTMLElement): string[]; export declare function removeAnchorName(element: HTMLElement, name: string): void; export declare function appendAnchorName(element: HTMLElement, name: string): void; /** * Returns true when both arrays have the same length and each index is strictly equal (`===`). */ export declare function sameOrderedStringArray(a: readonly string[], b: readonly string[]): boolean; /** * Returns unique non-empty strings in first-seen order (insertion order of a `Set` over the filtered list). */ export declare function uniqueNonEmptyStrings(values: Iterable): string[];