import { ComponentInternalInstance, ConcreteComponent, RootHydrateFunction, SetupContext, RenderFunction, ComputedOptions, MethodOptions, ComponentOptionsMixin, EmitsOptions, ComponentInjectOptions, ComponentOptionsWithoutProps, ComponentOptionsWithArrayProps, ComponentPropsOptions, ComponentOptionsWithObjectProps, ExtractPropTypes, ComponentPublicInstance } from '@vue/runtime-core'; interface CustomComponentInternalInstance extends ComponentInternalInstance { host: VueElement; renderRoot: ShadowRoot; _setAttr: Function; _setProp: Function; _getProp: Function; } type VueElementConstructor

= { new (initialProps?: Record): VueElement & P; }; declare function defineCustomElement(setup: (props: Readonly, ctx: SetupContext) => RawBindings | RenderFunction): VueElementConstructor; declare function defineCustomElement(options: ComponentOptionsWithoutProps & { styles?: string[]; }): VueElementConstructor; declare function defineCustomElement, EE extends string = string, I extends ComponentInjectOptions = {}, II extends string = string>(options: ComponentOptionsWithArrayProps & { styles?: string[]; }): VueElementConstructor<{ [K in PropNames]: any; }>; declare function defineCustomElement, RawBindings, D, C extends ComputedOptions = {}, M extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = Record, EE extends string = string, I extends ComponentInjectOptions = {}, II extends string = string>(options: ComponentOptionsWithObjectProps & { styles?: string[]; }): VueElementConstructor>; declare function defineCustomElement(options: { new (...args: any[]): ComponentPublicInstance; }): VueElementConstructor; declare const defineSSRCustomElement: typeof defineCustomElement; declare const BaseClass: typeof HTMLElement; type InnerComponentDef = ConcreteComponent & { styles?: string[]; }; declare class VueElement extends BaseClass { private _def; private _props; /** * @internal */ _instance: ComponentInternalInstance | null; _renderRoot: HTMLElement | ShadowRoot; private _connected; private _resolved; private _numberProps; private _styles?; constructor(_def: InnerComponentDef, _props?: Record, hydrate?: RootHydrateFunction); connectedCallback(): void; disconnectedCallback(): void; /** * resolve inner component definition (handle possible async component) */ private _resolveDef; private _resolveProps; protected _setAttr(key: string): void; /** * @internal */ protected _getProp(key: string): any; /** * @internal */ protected _setProp(key: string, val: any, shouldReflect?: boolean, shouldUpdate?: boolean): void; private _update; private _createVNode; /** * Patch applyStyles method to support adopted Stylesheets. * @param styles */ private _applyStyles; } export { VueElement, defineCustomElement, defineSSRCustomElement }; export type { CustomComponentInternalInstance, VueElementConstructor };