import { ExamAnswer, QuestionId } from './types/ExamAnswer';
import { ItemsState } from './components/exam/DNDAnswerContainer';
import { UniqueIdentifier } from '@dnd-kit/core';
export declare const NBSP = "\u00A0";
export declare function parentElements(element: Element, selector?: Selector): Element[];
type Selector = string | string[] | ((element: Element) => boolean);
export declare function query(root: Element, selector: Selector): Element | undefined;
export declare function queryAll(root: Element, selector: Selector, recurse?: boolean): Element[];
export declare function queryAncestors(element: Element, selector: Selector): Element | undefined;
export declare function findChildElement(element: Element, selector: Selector): Element | undefined;
export declare function getAttribute(element: Element, attributeName: string): string | undefined;
export declare function getNumericAttribute(element: Element, attributeName: string): number | undefined;
export declare function getBooleanAttribute(element: Element, attributeName: string): boolean;
export declare function mapChildNodes<T>(element: Element, fn: (childNode: ChildNode, index: number) => T): T[];
export declare function mapChildElements<T>(element: Element, fn: (childElement: Element, index: number) => T): T[];
export declare function findChildrenAnswers(element: Element): Element[];
export declare function hasSiblingQuestions(answer: Element): boolean | undefined;
export declare function createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, properties?: Record<string, string> | null, ...children: Array<string | ChildNode>): HTMLElementTagNameMap[K];
export declare function setProperties(element: HTMLElement, properties?: Record<string, string> | null): void;
export declare function useIsElementInViewport(elementType: 'question' | 'section', displayNumber: string): boolean;
export declare function getElementPath(element: Element): string;
export declare const getAnswerOptionIdsByQuestionId: (element: Element, answersById: Record<QuestionId, ExamAnswer>) => ItemsState;
export declare const getAnswerOptionsByOptionId: (element: Element) => Record<UniqueIdentifier, Element>;
export declare const getCorrectAnswerOptionIdsByQuestionId: (element: Element) => Omit<ItemsState, "root">;
export declare function wrapAllImages(answerElement: HTMLElement): void;
export declare function getWrapper(image: HTMLImageElement): HTMLSpanElement;
export {};
//# sourceMappingURL=dom-utils.d.ts.map