import { ComponentPublicInstance, DefineComponent, VNode } from 'vue'; import type { ComponentExposed, ComponentProps, ComponentSlots } from 'vue-component-type-helpers'; import { MountingOptions } from './types'; import { VueWrapper } from './vueWrapper'; type ShimSlotReturnType = T extends (...args: infer P) => any ? (...args: P) => any : never; type WithArray = T | T[]; type ComponentData = T extends { data?(...args: any): infer D; } ? D : {}; export type ComponentMountingOptions = ComponentProps> = Omit>, 'slots'> & { slots?: { [K in keyof ComponentSlots]: WithArray[K]> | string | VNode | (new () => any) | { template: string; }>; }; } & Record; export declare function mount any) | (new (...args: any) => any) ? T : T extends { props?: infer Props; } ? DefineComponent | (infer PropNames)[] ? { [key in PropNames extends string ? PropNames : string]?: any; } : Props> : DefineComponent, P extends ComponentProps = ComponentProps>(originalComponent: T, options?: ComponentMountingOptions): VueWrapper & ComponentData & ComponentExposed, ComponentPublicInstance, ComponentData & ComponentExposed & Omit>>>; export declare const shallowMount: typeof mount; export {};