/* HELPERS */ declare const ContextWithDefaultSymbol: unique symbol; /* MAIN */ type ArrayMaybe = T[] | T; type Callback = () => void; type Child = null | undefined | boolean | bigint | number | string | symbol | Node | Array | (() => Child); type ChildWithMetadata = (() => Child) & { metadata: T }; type Classes = FunctionMaybe> | (FunctionMaybe | Classes)[]>; type ComponentFunction

= ( props: P ) => Child; type ComponentIntrinsicElement = keyof JSX.IntrinsicElements; type ComponentNode = Node; type Component

= ComponentFunction

| ComponentIntrinsicElement | ComponentNode; type ComponentsMap = Record>; type Constructor = { new (): T }; type ConstructorWith = { new ( ...args: Arguments ): T }; type ContextData = { symbol: symbol, defaultValue?: T }; type ContextProvider = ( props: { value: T, children: Child } ) => Child; type Context = { Provider: ContextProvider }; type ContextWithDefault = Context & { readonly [ContextWithDefaultSymbol]: true }; type DirectiveFunction = ( ref: globalThis.Element, ...args: Arguments ) => void; type DirectiveProvider = ( props: { children: Child } ) => Child; type DirectiveRef = ( ...args: Arguments ) => (( ref: globalThis.Element ) => void); type DirectiveRegister = () => void; type Directive = { Provider: DirectiveProvider, ref: DirectiveRef, register: DirectiveRegister }; type DirectiveData = { fn: DirectiveFunction, immediate: boolean }; type DirectiveOptions = { immediate?: boolean }; type Disposer = () => void; type EffectFunction = () => Disposer | void; type EffectOptions = import ( 'oby' ).EffectOptions; type Element = () => T; type ExtractArray = Extract; type EventListener = ( event: Event ) => void; type Falsy = Extract; type ForOptions = import ( 'oby' ).ForOptions; type FN = ( ...args: Arguments ) => Return; type FragmentUndefined = { placeholder?: Node, values: undefined, fragmented?: false, length: 0 }; type FragmentNode = { placeholder?: Node, values: Node, fragmented?: false, length: 1 }; type FragmentFragment = { placeholder?: Node, values: Fragment, fragmented: true, length: 1 }; type FragmentNodes = { placeholder?: Node, values: Node[], fragmented?: false, length: 2 | 3 | 4 | 5 }; type FragmentFragments = { placeholder?: Node, values: Fragment[], fragmented: true, length: 2 | 3 | 4 | 5 }; type FragmentMixed = { placeholder?: Node, values: (Node | Fragment)[], fragmented: true, length: 2 | 3 | 4 | 5 }; type Fragment = FragmentUndefined | FragmentNode | FragmentFragment | FragmentNodes | FragmentFragments | FragmentMixed; type FunctionMaybe = (() => T) | T; type Indexed = T extends ObservableReadonly ? ObservableReadonly : ObservableReadonly; type LazyComponent

= ( props: P ) => ObservableReadonly; type LazyFetcher

= () => Promise<{ default: ComponentFunction

} | ComponentFunction

>; type LazyResult

= LazyComponent

& ({ preload: () => Promise }); type MemoOptions = import ( 'oby' ).MemoOptions; type Observable = import ( 'oby' ).Observable; type ObservableLike = import ( 'oby' ).ObservableLike; type ObservableReadonly = import ( 'oby' ).ObservableReadonly; type ObservableReadonlyLike = import ( 'oby' ).ObservableReadonlyLike; type ObservableMaybe = Observable | ObservableReadonly | T; type ObservableOptions = import ( 'oby' ).ObservableOptions; type PromiseMaybe = Promise | T; type Props = Record; type Ref = ( value: T ) => void; type ResourceStaticPending = { pending: true, error?: never, value?: never, latest?: T }; type ResourceStaticRejected = { pending: false, error: Error, value?: never, latest?: never }; type ResourceStaticResolved = { pending: false, error?: never, value: T, latest: T }; type ResourceStatic = ResourceStaticPending | ResourceStaticRejected | ResourceStaticResolved; type ResourceFunction = { pending (): boolean, error (): Error | undefined, value (): T | undefined, latest (): T | undefined }; type Resource = ObservableReadonly> & ResourceFunction; type StoreOptions = import ( 'oby' ).StoreOptions; type Styles = FunctionMaybe> | (FunctionMaybe | Styles)[]>; type SuspenseCollectorData = { active: Observable, register: ( suspense: SuspenseData ) => void, unregister: ( suspense: SuspenseData ) => void }; type SuspenseData = { active: Observable, increment: ( nr?: number ) => void, decrement: ( nr?: number ) => void }; type TemplateActionPath = number[]; type TemplateActionProxy = ( target: Node, method: string, key?: string, targetNode?: Node ) => void; type TemplateActionWithNodes = [Node, string, string, string?, Node?]; type TemplateActionWithPaths = [TemplateActionPath, string, string, string?, TemplateActionPath?]; type TemplateVariableProperties = string[]; type TemplateVariableData = { path: TemplateActionPath, properties: TemplateVariableProperties }; type TemplateVariablesMap = Map; type Truthy = Exclude; /* EXPORT */ export type {ArrayMaybe, Callback, Child, ChildWithMetadata, Classes, ComponentFunction, ComponentIntrinsicElement, ComponentNode, Component, ComponentsMap, Constructor, ConstructorWith, ContextData, ContextProvider, Context, ContextWithDefault, DirectiveFunction, DirectiveProvider, DirectiveRef, DirectiveRegister, Directive, DirectiveData, DirectiveOptions, Disposer, EffectFunction, EffectOptions, Element, ExtractArray, EventListener, Falsy, ForOptions, FN, FragmentUndefined, FragmentNode, FragmentFragment, FragmentNodes, FragmentFragments, FragmentMixed, Fragment, FunctionMaybe, Indexed, LazyComponent, LazyFetcher, LazyResult, MemoOptions, Observable, ObservableLike, ObservableReadonly, ObservableReadonlyLike, ObservableMaybe, ObservableOptions, PromiseMaybe, Props, Ref, ResourceStaticPending, ResourceStaticRejected, ResourceStaticResolved, ResourceStatic, ResourceFunction, Resource, StoreOptions, Styles, SuspenseCollectorData, SuspenseData, TemplateActionPath, TemplateActionProxy, TemplateActionWithNodes, TemplateActionWithPaths, TemplateVariableProperties, TemplateVariableData, TemplateVariablesMap, Truthy};