diff --git a/src/runtime/ambient.ts b/src/runtime/ambient.ts index b094056c59..65b4bc23d3 100644 --- a/src/runtime/ambient.ts +++ b/src/runtime/ambient.ts @@ -1,19 +1,4 @@ declare module '*.svelte' { - type Props = Record; - - export default class { - constructor(options: { - target: Element; - anchor?: Element; - props?: Props; - hydrate?: boolean; - intro?: boolean; - }); - - $set(props: Props): void; - $on(event: string, callback: (event: CustomEvent) => void): () => void; - $destroy(): void; - - [accessor: string]: any; - } + type SvelteComponent = typeof import('./internal/ComponentApi').SvelteComponentApi + export default SvelteComponent } diff --git a/src/runtime/index.ts b/src/runtime/index.ts index 0973b93f1e..70fb65557f 100644 --- a/src/runtime/index.ts +++ b/src/runtime/index.ts @@ -8,5 +8,6 @@ export { setContext, getContext, tick, - createEventDispatcher + createEventDispatcher, + SvelteComponentApi as SvelteComponent } from 'svelte/internal'; diff --git a/src/runtime/internal/ComponentApi.ts b/src/runtime/internal/ComponentApi.ts new file mode 100644 index 0000000000..943e2c9de1 --- /dev/null +++ b/src/runtime/internal/ComponentApi.ts @@ -0,0 +1,16 @@ +type Props = Record; +export declare class SvelteComponentApi { + constructor(options: { + target: Element; + anchor?: Element; + props?: Props; + hydrate?: boolean; + intro?: boolean; + }); + + $set(props: Props): void; + $on(event: string, callback: (event: CustomEvent) => void): () => void; + $destroy(): void; + + [accessor: string]: any; +} \ No newline at end of file diff --git a/src/runtime/internal/index.ts b/src/runtime/internal/index.ts index e1dd2a1fcf..8e5725d3be 100644 --- a/src/runtime/internal/index.ts +++ b/src/runtime/internal/index.ts @@ -12,4 +12,5 @@ export * from './ssr'; export * from './transitions'; export * from './utils'; export * from './Component'; +export * from './ComponentApi'; export * from './dev';