import { DomEventNameWithModifier } from '../constants/dom-events'; import { TriggerOptions } from '../createDomEvent'; import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector } from '../types'; import { VueWrapper } from '../vueWrapper'; import { ComponentPublicInstance, FunctionalComponent } from 'vue'; import type { DOMWrapper } from '../domWrapper'; export default interface WrapperLike { readonly element: Node; find(selector: K): DOMWrapper; find(selector: K): DOMWrapper; find(selector: string): DOMWrapper; find(selector: string | RefSelector): DOMWrapper; findAll(selector: K): DOMWrapper[]; findAll(selector: K): DOMWrapper[]; findAll(selector: string): DOMWrapper[]; findAll(selector: string): DOMWrapper[]; findComponent(selector: string): WrapperLike; findComponent(selector: T | Exclude): VueWrapper>; findComponent(selector: T | string): DOMWrapper; findComponent(selector: NameSelector | RefSelector): VueWrapper; findComponent(selector: T | FindComponentSelector): VueWrapper; findComponent(selector: FindComponentSelector): WrapperLike; findAllComponents(selector: string): WrapperLike[]; findAllComponents(selector: T | Exclude): VueWrapper>[]; findAllComponents(selector: string): DOMWrapper[]; findAllComponents(selector: T): DOMWrapper[]; findAllComponents(selector: NameSelector): VueWrapper[]; findAllComponents(selector: T | FindAllComponentsSelector): VueWrapper[]; findAllComponents(selector: FindAllComponentsSelector): WrapperLike[]; get(selector: K): Omit, 'exists'>; get(selector: K): Omit, 'exists'>; get(selector: string): Omit, 'exists'>; get(selector: string | RefSelector): Omit, 'exists'>; getComponent(selector: string): Omit; getComponent(selector: T | Exclude): Omit>, 'exists'>; getComponent(selector: T | string): Omit, 'exists'>; getComponent(selector: T | FindComponentSelector): Omit, 'exists'>; getComponent(selector: FindComponentSelector): Omit; html(): string; classes(): string[]; classes(className: string): boolean; classes(className?: string): string[] | boolean; attributes(): { [key: string]: string; }; attributes(key: string): string | undefined; attributes(key?: string): { [key: string]: string; } | string | undefined; text(): string; exists(): boolean; setValue(value: any): Promise; isVisible(): boolean; trigger(eventString: DomEventNameWithModifier, options?: TriggerOptions): Promise; trigger(eventString: string, options?: TriggerOptions): Promise; }