///
///
import type { SvelteComponent } from 'svelte'
interface SvelteDevInternal {
version: string
}
interface MySvelteComponentTyped extends SvelteComponent {
$$: {
fragment: {
m(target: Node, anchor: Node): void // mount
p(ctx: any, dirty: boolean): void // update
d(detaching: boolean): void // destroy
// we only use the functions above but the ones below also exist in certain contexts
// c(): void // create
// h(): any // hydrate
// i(): void // intro(local)
// o(): void // outro(local) // found in the blocks
// l(nodes: any[]): void // claim(nodes)
}
}
$capture_state(): Record
}
declare global {
interface ComponentWithChildren {
componentDetail: SvelteComponentDetail
parentComponent?: ComponentFragment
childComponents: Set
childElements: Set
isFromNodeModules?: boolean
localFilenameUsedIn?: string // for components with isFromNodeModules = true
}
type ComponentFragment = SvelteComponentDetail['component']['$$']['fragment']
interface SvelteComponentDetail {
id: 'create_fragment'
options: {
$$inline?: boolean
props?: Record
hydrate?: boolean
target?: Element
}
tagName: string
component: MySvelteComponentTyped
}
interface SvelteBlockDetail {
version: string
id: string
source: string
block: ComponentFragment
ctx: Array
type:
| 'anchor'
| 'block'
| 'component' // components are registered as components and as blocks
| 'each'
| 'element'
| 'else'
| 'if'
| 'key'
| 'slot'
| 'text'
| 'pending' // await
| 'then'
| 'catch'
}
type SvelteElementDetail = Node & HTMLElement & {
claim_order: number
__svelte_meta?: SvelteMeta // nodes of element type will have, nodes of text type won't
hydrate_init: boolean
actual_end_child?: any
}
interface SvelteMeta {
loc: {
file: string
line: number
column: number
char: number
}
}
interface DocumentEventMap {
SvelteRegisterComponent: CustomEvent
SvelteRegisterBlock: CustomEvent
SvelteDOMInsert: CustomEvent
SvelteDOMRemove: CustomEvent
}
}