import type { Component, ComponentProps, Snippet } from 'svelte' export class RenderComponentConfig { constructor( public component: TComponent, public props?: ComponentProps | Record, ) {} } export class RenderSnippetConfig { constructor( public snippet: Snippet<[TProps]>, public params?: TProps, ) {} } export const renderComponent = < TComponent extends Component, TProps extends ComponentProps, >( component: TComponent, props?: TProps, ) => new RenderComponentConfig(component, props) export const renderSnippet = ( snippet: Snippet<[TProps]>, params?: TProps, ) => new RenderSnippetConfig(snippet, params)