import { ComponentOptions, VueConstructor, VNode, SetupContext } from "vue"; import { ComponentPublicInstance, ShallowUnwrapRef } from "vue"; import { WebComponentBundleManifest } from "@omnia/fx-models"; import { RecordPropsDefinition } from "vue/types/options"; import { PropsForOutside, RequiredPropNames, _TsxComponentInstanceV3, _TsxComponentV3 } from "vue-tsx-support/lib/api"; import { InnerScopedSlots } from "vue-tsx-support"; import { TsxComponentTypeInfo } from "vue-tsx-support/types/base"; export type SetupContextExtend = SetupContext & { slots: InnerScopedSlots; _tsx?: TsxComponentTypeInfo<{}, {}, PrefixedEvents, On>; refs: { [key: string]: Vue | Element | Vue[] | Element[]; }; readonly parent: Vue | null; }; export type CompositionComponentOptions, PrefixedEvents, ScopedSlots, On> = { props?: PropsDef & RecordPropsDefinition; setup: (this: void, props: Props, ctx: SetupContextExtend) => () => VNode | JSX.Element; } & Pick, "name" | "components" | "inheritAttrs" | "directives" | "filters">; export type CompositionComponentOptionsWithRender, PrefixedEvents, ScopedSlots, On, RawBinding> = { props?: PropsDef & RecordPropsDefinition; setup: (this: void, props: Props, ctx: SetupContextExtend) => RawBinding; render(): VNode | JSX.Element; } & Pick, "name" | "components" | "inheritAttrs" | "directives" | "filters"> & ThisType>; type _OmniaTsxComponentV3 = VueConstructor<_TsxComponentInstanceV3> & { propsDefinition: Props; }; export declare function defineVueWebComponent = RecordPropsDefinition, PrefixedEvents = any, ScopedSlots = any, On = any, RawBinding = any, RequiredProps extends keyof Props = RequiredPropNames & keyof Props>(options: CompositionComponentOptions | CompositionComponentOptionsWithRender, register?: (manifest: WebComponentBundleManifest, component: _TsxComponentV3, PrefixedEvents, On, ScopedSlots>) => void): _OmniaTsxComponentV3, PrefixedEvents, On, ScopedSlots> | _OmniaTsxComponentV3, {}, PropsForOutside, PrefixedEvents, On, ScopedSlots>; export declare function internaldefineVueWebComponent(omniaServiceId: any, manifestId: any, options: any, register?: (manifest: WebComponentBundleManifest, component: any) => void): any; export {};