import { AllowedComponentProps, ComponentCustomProps, ObjectEmitsOptions, VNode, VNodeProps } from 'vue' declare type PublicProps = VNodeProps & AllowedComponentProps & ComponentCustomProps declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ( k: infer I ) => void ? I : never declare type EmitFn = Options extends Array ? (event: V, ...args: any[]) => void : {} extends Options ? (event: string, ...args: any[]) => void : UnionToIntersection< { [key in Event]: Options[key] extends (...args: infer Args) => any ? (event: key, ...args: Args) => void : (event: key, ...args: any[]) => void }[Event] > export class ClassComponent { $props: Props & PublicProps $slots: Slots $emit: EmitFn } export type GlobalComponentConstructor = { new (): T } /** * Custom types */ export declare type Booleanish = boolean | 'true' | 'false' export declare type Numberish = number | string export declare type Nullable = T | null | undefined // export declare type PassThrough = T | object | undefined; // export declare type DefaultPassThrough = T | ((instance?: VNode) => T | undefined) | undefined; export declare type HintedString = (string & {}) | T