export declare type WrapperSelector = Node[] | Node | string; export declare type WrapperExtenderRecord = Record; export interface WrapperExtendsParam { (this: W, params: { document: Document; element: Node; index: number; setupMethod(fn: () => ST, key?: string): ST; }): T; } export interface WrapperExtends { >(wrapper: W): W; (document: Document, elementOrSelector: WrapperSelector): T & JQueryFnsWrapper; } export declare function extendWrapper(exFn: WrapperExtendsParam): WrapperExtends; export declare type CreateWrapperQueryReturn = { (selector: JQueryFnsWrapper | WrapperSelector): JQueryFnsWrapper & T; }; export declare function createWrapperQuery(doc: Document, extender: WrapperExtends): CreateWrapperQueryReturn; export declare function createWrapperQuery(doc: Document, extender1: WrapperExtends, extender2: WrapperExtends): CreateWrapperQueryReturn; export declare function createWrapperQuery(doc: Document, extender1: WrapperExtends, extender2: WrapperExtends, extender3: WrapperExtends): CreateWrapperQueryReturn; export declare function createWrapperQuery(doc: Document, extender1: WrapperExtends, extender2: WrapperExtends, extender3: WrapperExtends, extender4: WrapperExtends): CreateWrapperQueryReturn; export declare function createWrapperQuery(doc?: Document, ...extenders: WrapperExtends[]): CreateWrapperQueryReturn; export interface JQueryFnsWrapper { [ord: number]: HTMLElement; } export declare class JQueryFnsWrapper { readonly selector: WrapperSelector; readonly extenders: WrapperExtends[]; readonly document: Document; readonly elements: Node[]; get element(): Node; get length(): number; constructor(doc: Document, selector: WrapperSelector, extenders?: WrapperExtends[]); next(selector?: string): JQueryFnsWrapper & EXT; children(selector?: string): JQueryFnsWrapper & EXT; contents(): Node[]; parent(selector?: string): JQueryFnsWrapper & EXT; parents(selector?: string): JQueryFnsWrapper & EXT; parentsUntil(selector: string | Node, filter?: string): JQueryFnsWrapper & EXT; closest(selector: string): JQueryFnsWrapper & EXT; offsetParent(): JQueryFnsWrapper & EXT; eq(index: number): JQueryFnsWrapper & EXT; find(selector: WrapperSelector): JQueryFnsWrapper & EXT; each(cb: (this: HTMLElement) => void): this; map(cb: (this: Node, index: number, domElement: Node) => T): T[]; extendUtils(extender: WrapperExtends): JQueryFnsWrapper & EXT & T; extendUtils(extender1: WrapperExtends, extender2: WrapperExtends): JQueryFnsWrapper & EXT & T1 & T2; extendUtils(extender1: WrapperExtends, extender2: WrapperExtends, extender3: WrapperExtends): JQueryFnsWrapper & EXT & T1 & T2 & T3; extendUtils(extender1: WrapperExtends, extender2: WrapperExtends, extender3: WrapperExtends, extender4: WrapperExtends): JQueryFnsWrapper & EXT & T1 & T2 & T3 & T4; extendUtils(extender: WrapperExtends, ...extenders: WrapperExtends[]): JQueryFnsWrapper & EXT & T & TS; selectNew(elementsOrSelector: WrapperSelector, doc?: Document): JQueryFnsWrapper & EXT; selectDocument(): JQueryFnsWrapper & EXT; clone(deep?: boolean): JQueryFnsWrapper & EXT; add(elementsOrSelector: WrapperSelector | JQueryFnsWrapper): JQueryFnsWrapper & EXT; append(content: WrapperSelector | JQueryFnsWrapper): this; prepend(content: WrapperSelector | JQueryFnsWrapper): this; before(content: WrapperSelector | JQueryFnsWrapper): void; after(content: WrapperSelector | JQueryFnsWrapper): void; wrap(html: string): void; wrapAll(html: string): void; unwrap(selector?: string): void; replaceWith(content: WrapperSelector | JQueryFnsWrapper): void; remove(): this; }