import type { DefineComponent as DefineComponent_V2, SetupContext as SetupContext_V2 } from "vue2"; import type { ComponentOptionsBase as ComponentOptionsBase_V3, DefineComponent as DefineComponent_V3, SetupContext as SetupContext_V3 } from "vue3"; import type { ComponentObjectPropsOptions, Data, DemiType, ObjectEmitsOptions, PublicProps, RenderFunction, Slot, SlotsType, StyleValue, VueNode } from "../demi-polyfill"; import type { ComponentOptionsBase as ComponentOptionsBase_V2 } from "vue2/types/v3-component-options"; type LagecyPropNames = N extends `on${string}` ? never : N; export type EmitByProps> = { [K in keyof R as K extends `on${infer N}` ? Uncapitalize : never]: R[K]; }; export type EmitPayloadByProps> = { [K in keyof R as K extends `on${infer N}` ? Uncapitalize : never]: R[K] extends (props: infer P) => any ? P : never; }; type SlotsByProps

= { [K in keyof P as Exclude extends RenderFunction ? K extends `on${string}` ? never : K : never]: P[K]; } & { default?: Slot; }; export type SC

= DemiType, ObjectEmitsOptions>>, "slots"> & { slots: SlotsByProps

; attrs: Data & { class?: string; style?: StyleValue; }; }, SetupContext_V3, ObjectEmitsOptions>, SlotsType>> & { attrs: Data & { class?: string; style?: StyleValue; }; }>; export type SetupContextEmitHandler> = (eventName: keyof E, payload: E[keyof E]) => any; export type SetupOptions

= DemiType, ObjectEmitsOptions>, Extract, string>, Empty>, ComponentOptionsBase_V3, ObjectEmitsOptions>, Extract, string>, Empty, Empty, string, SlotsType>>>; export type DC

= DemiType, Empty, Empty, Empty, Empty, Empty, Empty, Extract, ObjectEmitsOptions>, Extract, string>, P>, DefineComponent_V3, Empty, Empty, Empty, Empty, Empty, Empty, Extract, ObjectEmitsOptions>, Extract, string>, PublicProps, P, P, SlotsType>>>; export type Empty = Record; export declare function defineFc

(name: string, render: (props: P, ctx: SC

) => VueNode): DefineComponent_V2, Empty, Empty, Empty, Empty, Empty, Empty, Extract>, ObjectEmitsOptions>, Extract>, string>, P>; export declare function defineSetup

(name: string, setup: (props: P, ctx: SC

) => () => VueNode): DefineComponent_V2, Empty, Empty, Empty, Empty, Empty, Empty, Extract>, ObjectEmitsOptions>, Extract>, string>, P>; export declare function defineLagecySetup

(name: string, setup: (props: P, ctx: SC

) => () => VueNode): { props: (propNames: LagecyPropNames[]) => DefineComponent_V2, Empty, Empty, Empty, Empty, Empty, Empty, Extract>, ObjectEmitsOptions>, Extract>, string>, P>; }; export declare function Noop(): void; export {};