@stencil/vue-output-target
Version:
Vue output target for @stencil/core components.
22 lines (21 loc) • 1.62 kB
TypeScript
import { type InputProps } from './types';
/**
* these types are defined by a Stencil hydrate app so we have to copy the minimal types here
*/
interface RenderToStringOptions {
fullDocument?: boolean;
serializeShadowRoot?: boolean;
prettyHtml?: boolean;
}
type RenderToString = (html: string, options: RenderToStringOptions) => Promise<{
html: string | null;
}>;
interface StencilSSRComponentOptions {
tagName: string;
hydrateModule: Promise<{
renderToString: RenderToString;
}>;
props?: Record<string, [any, string?]>;
}
export declare function defineStencilSSRComponent<Props, VModelType = string | number | boolean>(options: StencilSSRComponentOptions): import("vue").DefineComponent<import("@vue/shared").IfAny<Props & InputProps<VModelType>, false, Props & InputProps<VModelType> extends infer T ? T extends Props & InputProps<VModelType> ? T extends object ? keyof T extends string ? true : false : false : never : never> extends true ? Props & InputProps<VModelType> : {}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("@vue/shared").IfAny<Props & InputProps<VModelType>, false, Props & InputProps<VModelType> extends infer T_1 ? T_1 extends Props & InputProps<VModelType> ? T_1 extends object ? keyof T_1 extends string ? true : false : false : never : never> extends true ? Props & InputProps<VModelType> : {}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, unknown extends Props & InputProps<VModelType> ? true : false, {}, any>;
export {};