type sel = string; export declare const contentTypes: any; export type DOMTYPE = Node; export type FILTER_FN = (el: T, i: number, list: T[]) => boolean; export type TARGET = DOMArray | WHICHNODE | WHICHNODE[] | string; export type CONFIG = { document: Document; cssSelectAll(nodes: DOMTYPE[], selector: sel): Element[]; cssSelectOne(nodes: DOMTYPE[], selector: sel): Element | null; cssIs(node: DOMTYPE, selector: sel): boolean; }; export declare const defaultConfig: CONFIG; export declare class DOMArray { protected list: T[]; protected config: CONFIG; ['constructor']: typeof DOMArray; [index: number]: T | undefined; constructor(list?: T[], config?: CONFIG); static from(list: T[], config?: CONFIG): DOMArray; static fromHtml(html: string, config?: CONFIG): DOMArray; newFromList(list: NEWT[]): DOMArray; newFromHtml(html: string): DOMArray; newFromXml(xml: string): DOMArray; [Symbol.iterator](): Iterator; concat(...args: T[]): DOMArray; get length(): number; slice(start?: number, end?: number): DOMArray; splice(start: number, deleteCount?: number): DOMArray; get DOMArray(): true; get document(): Document | undefined; add(content: string): DOMArray; add(content: T | T[] | DOMArray): DOMArray; addClass(className: string): DOMArray; removeClass(className: string): DOMArray; after(...contents: AnyNodable[]): DOMArray; append(...contents: AnyNodable[]): DOMArray; prepend(...contents: AnyNodable[]): DOMArray; arrayFilter(fn: (item: T, i: number, arr: T[]) => boolean): DOMArray; arrayFind(predicate: (value: T, index: number, arr: T[]) => boolean, thisArg?: DOMArray): T | undefined; arrayMap(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: unknown): U[]; attr(): Record; attr(name: string, value?: string | number): string | null; attr(attrs: Record): null; setAttrNS(name: string, value: string | number): DOMArray; defineNamespace(prefix: string, uri: string): DOMArray; before(...contents: AnyNodable[]): DOMArray; children(selector?: sel): DOMArray; clone({ deep }?: { deep?: boolean | undefined; }): DOMArray; closest(target: TARGET | FILTER_FN): DOMArray; contents(): DOMArray; css(): CSSStyleDeclaration; css(propertyName: string): string; css(propertyName: string, value: string): DOMArray; forEach(callbackfn: (value: T, index: number, array: T[]) => void): void; each(fn: (el: T, i: number, list: T[]) => void): DOMArray; empty(): DOMArray; nodeAt(index?: number): Node | null; elementAt(index?: number): Element | null; eq(index: number): DOMArray; filter(target?: sel | FILTER_FN): DOMArray; find(selector: sel): DOMArray; find(element: T): DOMArray; find(target: sel | T): DOMArray | DOMArray; findFirst(selector: string): DOMArray; first(): DOMArray; last(): DOMArray; has(thing: string | Node | Node[] | DOMArray | DOMArray): DOMArray; html(): string; html(str: string): DOMArray; xml({ delimiter }?: { delimiter?: string | undefined; }): string; outerHtml(delimiter?: string): string; index(target: ArrayLike | Node | DOMArray | ArrayLike | Element | DOMArray): number; is(target: TARGET | FILTER_FN): boolean; get isTextNode(): boolean; get isEmpty(): boolean; get notEmpty(): boolean; map(callback: (el: T, i: number, list: DOMArray) => U): DOMArray; matches(target: string | RegExp, maybeGetText?: (a: Node, b?: number, c?: DOMArray) => string): DOMArray; /** * Get the immediately following sibling of each element * in the set of matched elements. If a selector is * provided, it retrieves the next sibling only if it * matches that selector. * * @param {string} [selector] - If specified filter for * sibling. * * @see {@link http://api.jquery.com/next/} */ next(selector?: sel): DOMArray; nextSibling(): DOMArray; nextSiblings(selector?: sel): DOMArray; nextAll(selector?: sel): DOMArray; nextUntil(target: TARGET | FILTER_FN): DOMArray; not(target: TARGET | FILTER_FN): DOMArray; parent(selector?: sel): DOMArray; parents(selector?: sel | FILTER_FN): DOMArray; parentsUntil(input: DOMArray | Element | Element[] | string | ((el: Element) => boolean), filter?: sel | FILTER_FN): DOMArray; /** * Get the immediately preceding sibling of each element * in the set of matched elements. If a selector is * provided, it retrieves the previous sibling only if it * matches that selector. * * @param {string} [selector] - If specified filter for * sibling. * * @see {@link http://api.jquery.com/prev/} */ prev(selector?: sel): DOMArray; previousSiblings(selector?: sel): DOMArray; previousSibling(): DOMArray; prevAll(selector?: sel): DOMArray; prevUntil(target: TARGET | FILTER_FN): DOMArray; query(selector: sel): DOMArray; queryAll(selector: sel): DOMArray; remove(): DOMArray; removeAttr(name: string): DOMArray; replaceWith(content: AnyNodable): DOMArray; siblings(selector?: sel): DOMArray; sliceUntil(target: TARGET | FILTER_FN): DOMArray; text(): string; text(newText: string): DOMArray; unwrap(): DOMArray; without(selector: sel): DOMArray; wrap(target: Nodable): void; toArray(): Array; toElements(): Element[]; toSelector(): string; static isDOMArray(thing: unknown): thing is DOMArray; } type ThingFn = (d?: Document) => Text | Element; type Nodable = string | T | T[] | DOMArray | ThingFn; type AnyNodable = string | Element | Text | Node | Element[] | Text[] | Node[] | DOMArray | DOMArray | DOMArray | ThingFn; export {};