import { S as Signal, R as ReadonlySignal, a as REACTIVE_MARKER, E as ElementProps, b as EffuseChild, c as ElementNode, B as BlueprintDef, P as Portals, d as PortalFn, e as BlueprintNode, f as EffuseNode, g as EFFUSE_NODE, M as MATCH_MARKER, C as Component, h as BlueprintContext } from './jsx-runtime-dai6OIG_.cjs'; export { i as CreateBlueprintNode, j as CreateElementNode, k as CreateFragmentNode, l as CreateListNode, m as CreateTextNode, F as FRAGMENT, n as Fragment, o as FragmentNode, H as HYDRATION_SCRIPT_ID, L as ListNode, N as NodeType, T as TextNode, p as isEffuseNode, q as jsx, r as jsxDEV, s as jsxs, t as matchEffuseNode } from './jsx-runtime-dai6OIG_.cjs'; import { Schema, SubscriptionRef, Effect, Cause, Scope, Layer, Context, ManagedRuntime } from 'effect'; import * as effect_Types from 'effect/Types'; import * as effect_Cause from 'effect/Cause'; import 'effect/Unify'; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const EffectOptionsSchema: Schema.Struct<{ immediate: Schema.optional; retry: Schema.optional; delay: Schema.optional; strategy: Schema.optional>; }>>; timeout: Schema.optional; debounce: Schema.optional; trailing: Schema.optional; }>>; flush: Schema.optional>; }>; type EffectOptions = Schema.Schema.Type; declare const WatchOptionsSchema: Schema.extend; retry: Schema.optional; delay: Schema.optional; strategy: Schema.optional>; }>>; timeout: Schema.optional; debounce: Schema.optional; trailing: Schema.optional; }>>; flush: Schema.optional>; }>, Schema.Struct<{ deep: Schema.optional; once: Schema.optional; }>>; type WatchOptions = Schema.Schema.Type; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type CleanupFn$2 = () => void; type OnCleanup = (cleanupFn: CleanupFn$2) => void; interface EffectHandle { readonly stop: () => void; readonly pause: () => void; readonly resume: () => void; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare class Dep { version: number; private subscribers; track(): void; trigger(): void; subscribe(callback: () => void): () => void; hasSubscribers(): boolean; clear(): void; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function signal(initialValue: T, name?: string): Signal; declare function readonlySignal(source: Signal): ReadonlySignal; declare function isSignal(value: unknown): value is Signal; declare function unref(maybeSignal: T | Signal): T; declare function getSignalRef(sig: Signal): SubscriptionRef.SubscriptionRef | null; declare function getSignalDep(sig: Signal): Dep | null; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type Reactive = T & { readonly [REACTIVE_MARKER]: true; }; declare const reactive: (target: T) => Reactive; declare const isReactive: (value: unknown) => value is Reactive; declare const toRaw: (observed: T) => T; declare const markRaw: (value: T) => T; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function computed(getter: () => T): ReadonlySignal; declare function writableComputed(options: { get: () => T; set: (value: T) => void; }): Signal; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type DeepReadonly = T extends object ? { readonly [K in keyof T]: DeepReadonly; } : T; declare function readonly(target: Signal): ReadonlySignal; declare function readonly(target: Reactive): DeepReadonly>; declare function readonly(target: T): DeepReadonly; declare const isReadonly: (value: unknown) => boolean; declare const shallowReadonly: (target: T) => Readonly; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function watchEffect(fn: (onCleanup: OnCleanup) => void | Promise, options?: EffectOptions): EffectHandle; declare function effectOnce(fn: () => void): void; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type WatchSource = Signal | ReadonlySignal | (() => T) | (T extends object ? T : never); type WatchCallback = (newValue: T, oldValue: T | undefined, onCleanup: OnCleanup) => void | Promise; declare function watch(source: WatchSource, callback: WatchCallback, options?: WatchOptions): EffectHandle; declare const watchMultiple: []>(sources: T, callback: (newValues: { [K in keyof T]: T[K] extends WatchSource ? V : never; }, oldValues: { [K in keyof T]: T[K] extends WatchSource ? V | undefined : never; }, onCleanup: OnCleanup) => void | Promise, options?: WatchOptions) => EffectHandle; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function el(tag: string, props?: ElementProps | null, ...children: EffuseChild[]): ElementNode; declare function el

(blueprint: BlueprintDef

, props?: P | null, portals?: Portals | PortalFn | null): BlueprintNode

; declare const fragment: (...children: EffuseChild[]) => EffuseNode; declare const toNode: (child: EffuseChild) => EffuseNode | null; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type CleanupFn$1 = () => void; declare const render: (child: EffuseChild, container: Element) => CleanupFn$1; declare const unmount: (container: Element) => void; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface ForProps { each: Signal | (() => T[]); keyExtractor?: (item: T, index: number) => unknown; children: (item: Signal, index: Signal) => EffuseNode; fallback?: EffuseChild | (() => EffuseChild); range?: Signal<{ start: number; end: number; }>; transitions?: { enter?: (node: EffuseNode, index: number) => void; exit?: (node: EffuseNode, index: number) => void; move?: (node: EffuseNode, fromIndex: number, toIndex: number) => void; }; } declare const For: ((props: ForProps) => EffuseNode) & { Dynamic: (sig: Signal, render: (item: T, index: Signal) => EffuseNode) => EffuseNode; }; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface ShowProps { when: Signal | (() => T); fallback?: EffuseChild | (() => EffuseChild); children: EffuseChild | ((item: NonNullable) => EffuseChild); keyed?: boolean; } declare const Show: (props: ShowProps) => EffuseNode; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type MatchNode = { [EFFUSE_NODE]: true; _tag: 'Fragment'; _matchMarker: typeof MATCH_MARKER; when: Signal | (() => T) | T; children: EffuseChild | ((item: NonNullable) => EffuseChild); }; interface SwitchProps { fallback?: EffuseChild | (() => EffuseChild); children: MatchNode[] | MatchNode; } declare const Switch: ((props: SwitchProps) => EffuseNode) & { Match: (props: { when: Signal | (() => T) | T; children: EffuseChild | ((item: NonNullable) => EffuseChild); }) => MatchNode; }; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface DynamicProps

> { component: Signal | null> | (() => BlueprintNode

| null); props?: P; fallback?: EffuseChild | (() => EffuseChild); portals?: Portals; } declare const Dynamic:

>(dynamicProps: DynamicProps

) => EffuseNode; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface ErrorBoundaryProps { fallback: EffuseChild | ((error: Error, reset: () => void) => EffuseChild); children: EffuseChild; onError?: (error: Error) => void; } declare const ErrorBoundary: (props: ErrorBoundaryProps) => EffuseNode; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface RepeatProps { readonly times: number | Signal; readonly children: (index: number) => EffuseChild; readonly fallback?: EffuseChild | (() => EffuseChild); } declare const Repeat: (props: RepeatProps) => EffuseNode; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface AwaitProps { readonly promise: Promise | (() => Promise) | Signal>; readonly pending?: EffuseChild | (() => EffuseChild); readonly error?: EffuseChild | ((error: unknown) => EffuseChild); readonly children: (data: T) => EffuseChild; } declare const Await: (props: AwaitProps) => EffuseNode; interface SuspenseProps { fallback: EffuseChild; children: EffuseChild | (() => EffuseChild); [key: string]: unknown; } declare const Suspense: Component; declare const PropsValidationError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & { readonly _tag: "PropsValidationError"; } & Readonly; declare class PropsValidationError extends PropsValidationError_base<{ readonly propName: string; readonly componentName: string | undefined; readonly message: string; readonly cause?: unknown; }> { toString(): string; } interface PropDefinition { readonly schema: Schema.Schema; readonly required: boolean; readonly defaultValue?: T; readonly _tag: 'PropDefinition'; } interface PropSchemaBuilder> { readonly _schema: { [K in keyof T]: PropDefinition; }; readonly schema: Schema.Schema; readonly validate: (props: unknown, componentName?: string) => Effect.Effect; readonly validateSync: (props: unknown, componentName?: string) => T; } interface AnyPropSchemaBuilder { readonly validateSync: (props: unknown, componentName?: string) => unknown; } type ExtractPropType

= P extends PropDefinition ? T : never; declare function required$1(schema: Schema.Schema): PropDefinition; declare function required$1>(builder: PropSchemaBuilder): PropDefinition; declare function optional(schema: Schema.Schema, defaultValue?: T): PropDefinition; declare function optional>(builder: PropSchemaBuilder, defaultValue?: T): PropDefinition; declare const PropSchema: { required: typeof required$1; optional: typeof optional; struct: >>(definitions: D) => PropSchemaBuilder<{ [K in keyof D]: ExtractPropType; }>; String: typeof Schema.String; Number: typeof Schema.Number; Boolean: typeof Schema.Boolean; Literal: typeof Schema.Literal; Union: typeof Schema.Union; Array: (value: Value) => Schema.Array$; Struct: typeof Schema.Struct; Unknown: typeof Schema.Unknown; Optional: (self: S) => Schema.optional; }; type PropSchemaInfer = S extends PropSchemaBuilder ? T : never; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type PropsDef

= { [K in keyof P]?: P[K] | (() => P[K]); }; interface BlueprintOptions

= Record> { readonly name?: string; readonly props?: PropsDef

; readonly propsSchema?: PropSchemaBuilder

; readonly state?: (props: P) => Record>; readonly view: (context: BlueprintContext

) => EffuseChild; readonly error?: (error: Error) => EffuseChild; readonly loading?: () => EffuseChild; } declare const blueprint:

= Record>(options: BlueprintOptions

) => BlueprintDef

; declare const isBlueprint: (value: unknown) => value is BlueprintDef; declare const instantiateBlueprint:

>(def: BlueprintDef

, props: P, portals: Portals) => BlueprintContext

; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface ComponentLifecycle { readonly scope: Scope.CloseableScope; readonly onMount: (fn: () => (() => void) | undefined) => void; readonly onUnmount: (fn: () => void) => void; readonly onBeforeMount: (fn: () => void) => void; readonly onBeforeUnmount: (fn: () => void) => void; readonly runMount: () => void; readonly runCleanup: () => Effect.Effect; } declare const createComponentLifecycleSync: () => ComponentLifecycle; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function useCallback any>(fn: T, deps?: unknown[]): T; declare function useMemo(fn: () => T, deps?: unknown[]): () => T; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface MetaTag { readonly name?: string; readonly property?: string; readonly content: string; readonly httpEquiv?: string; } interface LinkTag { readonly rel: string; readonly href: string; readonly type?: string; readonly crossOrigin?: 'anonymous' | 'use-credentials'; readonly [key: string]: string | undefined; } interface ScriptTag { readonly src?: string; readonly content?: string; readonly type?: string; readonly async?: boolean; readonly defer?: boolean; readonly id?: string; } interface OpenGraphProps { readonly title?: string; readonly description?: string; readonly type?: string; readonly url?: string; readonly image?: string; readonly siteName?: string; readonly locale?: string; readonly [key: string]: string | undefined; } interface TwitterCardProps { readonly card?: 'summary' | 'summary_large_image' | 'app' | 'player'; readonly site?: string; readonly creator?: string; readonly title?: string; readonly description?: string; readonly image?: string; readonly [key: string]: string | undefined; } interface HeadProps { readonly title?: string; readonly titleTemplate?: string | ((title?: string) => string); readonly description?: string; readonly canonical?: string; readonly viewport?: string; readonly charset?: string; readonly lang?: string; readonly themeColor?: string; readonly favicon?: string; readonly og?: OpenGraphProps; readonly twitter?: TwitterCardProps; readonly meta?: readonly MetaTag[]; readonly link?: readonly LinkTag[]; readonly script?: readonly ScriptTag[]; readonly base?: string; readonly robots?: string; readonly htmlAttrs?: Record; readonly bodyAttrs?: Record; readonly noscript?: readonly { innerHTML: string; id?: string; }[]; readonly style?: readonly { innerHTML: string; id?: string; type?: string; }[]; } interface SSRContext { readonly url: string; readonly headStack: HeadProps[]; readonly state: Record; readonly isServer: true; } interface RenderResult { readonly html: string; readonly head: HeadProps; readonly state: Record; readonly timing?: number; } interface ServerAppOptions { readonly basePath?: string; readonly minify?: boolean; readonly template?: string; readonly hydrate?: boolean; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type MaybePromise = T | Promise; type CleanupFn = () => void; type SetupResult = CleanupFn | undefined; type PluginCleanup = () => void; type PluginFn = () => MaybePromise; type Guard = (to: RouteConfig, from: RouteConfig | null) => boolean | Promise; interface RouteConfig { readonly path: string; readonly component: Component; readonly name?: string; readonly meta?: Record; readonly head?: HeadProps; readonly children?: readonly RouteConfig[]; readonly redirect?: string; readonly beforeEnter?: Guard; } interface StoreConfig { readonly name: string; readonly state: Record; readonly actions?: Record void>; } type LayerRestriction = 'components' | 'routes' | 'stores' | 'providers' | 'plugins'; type LayerProps = Record>; type LayerProvides = Record unknown>; interface LayerDependency

{ readonly name: string; readonly props: P; get: (key: string) => unknown; component: (name: string) => Component | undefined; } type DepsRecord = { [K in D[number]]: LayerDependency; }; interface SetupContext

{ readonly props: P; readonly store: S; readonly deps: DepsRecord; get: (name: string) => LayerDependency; getService: (key: string) => unknown; component: (name: string) => Component | undefined; readonly layers: readonly ResolvedLayer[]; } type LayerSetupFn

= (ctx: SetupContext) => SetupResult | Promise | void; type LifecycleHook

= (ctx: SetupContext) => void | Promise; type ErrorHook

= (error: Error, ctx: SetupContext) => void; type OnReadyHook

= (ctx: SetupContext, allLayers: readonly ResolvedLayer[]) => void | Promise; interface EffuseLayer

{ readonly name: string; readonly domain?: string; readonly props?: P; readonly store?: S; readonly deriveProps?: (store: S) => P; readonly extends?: readonly EffuseLayer[]; readonly dependencies?: D; readonly restrict?: readonly LayerRestriction[]; readonly head?: HeadProps; readonly components?: Record>; readonly provides?: LayerProvides; readonly setup?: LayerSetupFn; readonly onMount?: LifecycleHook; readonly onUnmount?: LifecycleHook; readonly onError?: ErrorHook; readonly onReady?: OnReadyHook; readonly routes?: readonly RouteConfig[]; readonly routeOptions?: { readonly lazy?: boolean; readonly guards?: readonly Guard[]; }; readonly stores?: readonly StoreConfig[]; readonly providers?: readonly Component[]; readonly plugins?: readonly PluginFn[]; } interface ResolvedLayer

extends EffuseLayer { readonly _resolved: true; readonly _order: number; } interface MergedConfig { readonly routes: readonly RouteConfig[]; readonly guards: readonly Guard[]; readonly stores: readonly StoreConfig[]; readonly providers: readonly Component[]; readonly plugins: readonly PluginFn[]; readonly setups: readonly LayerSetupFn[]; readonly lazy: boolean; } type AnyLayer = EffuseLayer; type AnyResolvedLayer = ResolvedLayer; interface EffuseLayerRegistry { } interface EffuseServiceRegistry { } interface EffuseComponentRegistry { } type LayerPropsOf = EffuseLayerRegistry[K] extends { props: infer P extends LayerProps; } ? P : LayerProps; type LayerProvidesOf = EffuseLayerRegistry[K] extends { provides: infer S; } ? S : unknown; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface PropsRegistry { readonly props: Map; get: (layerName: string) => LayerProps | undefined; set: (layerName: string, props: LayerProps) => void; has: (layerName: string) => boolean; } declare const PropsService_base: Effect.Service.Class; }>; declare class PropsService extends PropsService_base { } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface LayerRegistry { readonly layers: Map; readonly components: Map; readonly services: Map; getLayer: (name: string) => AnyResolvedLayer | undefined; getComponent: (name: string) => Component | undefined; getService: (key: string) => unknown; registerLayer: (layer: AnyResolvedLayer) => void; registerComponent: (name: string, component: Component) => void; registerService: (key: string, value: unknown) => void; hasLayer: (name: string) => boolean; hasComponent: (name: string) => boolean; hasService: (key: string) => boolean; } declare const RegistryService_base: Effect.Service.Class; }>; declare class RegistryService extends RegistryService_base { } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface LayerContext

{ readonly name: string; readonly props: P; readonly provides?: Record unknown>; readonly deps: Record; getService: (key: string) => unknown; getComponent: (name: string) => unknown; } type TypedLayerContext = LayerContext>; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type ExposedValues = object; interface EffuseRegistry { } type RouterType = EffuseRegistry extends { router: infer R; } ? R : unknown; interface ScriptContext

{ readonly props: Readonly

; expose: (values: ExposedValues) => void; signal: typeof signal; computed: (getter: () => T) => ReadonlySignal; store: (name: string) => unknown; router: RouterType; onMount: (callback: () => (() => void) | undefined) => void; onUnmount: (callback: () => void) => void; onBeforeMount: (callback: () => void) => void; onBeforeUnmount: (callback: () => void) => void; watch: (source: Signal | (() => T), callback: (newValue: T, oldValue: T | undefined, onCleanup: OnCleanup) => void, options?: WatchOptions) => void; watchMultiple: | (() => unknown))[]>(sources: T, callback: (newValues: { [K in keyof T]: T[K] extends Signal ? V : T[K] extends () => infer V ? V : never; }, oldValues: { [K in keyof T]: T[K] extends Signal ? V | undefined : T[K] extends () => infer V ? V | undefined : never; }, onCleanup: OnCleanup) => void, options?: WatchOptions) => void; watchEffect: (fn: (onCleanup: OnCleanup) => void | Promise, options?: EffectOptions) => EffectHandle; useCallback: typeof useCallback; useMemo: typeof useMemo; useLayer: (name: K) => TypedLayerContext; useStore: { (key: K): EffuseServiceRegistry[K]; (key: string): unknown; }; useService: { (key: K): EffuseServiceRegistry[K]; (key: string): unknown; }; useLayerProps: (name: K) => LayerPropsOf | undefined; /** * @deprecated Use `useLayer(name).provides` for all layer providers, * or `useService(key)` for individual services. Will be removed in a future release. */ useLayerProvider: (name: K) => LayerProvidesOf | undefined; useComponent: { (name: K): EffuseComponentRegistry[K]; (name: string): Component | undefined; }; } declare const setGlobalStoreGetter: (getter: (name: string) => unknown) => void; declare const setGlobalRouter: (router: unknown) => void; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type TemplateArgs = E & { readonly children?: EffuseChild; }; interface LayerScriptContext extends ScriptContext

{ readonly layerProps: LayerPropsOf; readonly layer: LayerContext>; } interface DefineOptionsWithInferredProps { name?: string; props: P; layer?: undefined; script: (ctx: ScriptContext

) => E | undefined; template: (exposed: TemplateArgs, props: Readonly

) => EffuseChild; } interface DefineOptionsWithInferredPropsAndLayer { name?: string; props: P; layer: K; script: (ctx: LayerScriptContext) => E | undefined; template: (exposed: TemplateArgs, props: Readonly

) => EffuseChild; } interface DefineOptions { name?: string; props?: undefined; layer?: undefined; script: (ctx: ScriptContext

) => E | undefined; template: (exposed: TemplateArgs, props: Readonly

) => EffuseChild; } interface DefineOptionsWithLayer { name?: string; props?: undefined; layer: K; script: (ctx: LayerScriptContext) => E | undefined; template: (exposed: TemplateArgs, props: Readonly

) => EffuseChild; } declare function define

, E extends ExposedValues = ExposedValues>(options: DefineOptions | DefineOptionsWithInferredProps): Component

; declare function define, E extends ExposedValues = ExposedValues>(options: DefineOptionsWithLayer | DefineOptionsWithInferredPropsAndLayer): Component

; type LayerPropsFor = LayerPropsOf; interface PortalContainer { readonly id: string; readonly element: Element; readonly cleanup: () => void; } declare const createPortal: (content: EffuseChild, target: string | Element) => { cleanup: () => void; }; declare const registerPortalOutlet: (name: string, element: Element) => void; declare const unregisterPortalOutlet: (name: string) => void; declare const getPortalOutlet: (name: string) => Element | undefined; declare const renderToNamedPortal: (name: string, content: EffuseChild) => { cleanup: () => void; }; type PortalInsertMode = 'append' | 'prepend' | 'replace'; type PortalPriority = 'low' | 'normal' | 'high' | 'overlay' | number; declare const PORTAL_PRIORITY: { readonly LOW: 100; readonly NORMAL: 1000; readonly HIGH: 10000; readonly OVERLAY: 100000; readonly DEFAULT: 1000; }; interface PortalProps { target: string | Element | (() => string | Element | null); children: EffuseChild; disabled?: boolean | (() => boolean); insertMode?: PortalInsertMode; priority?: PortalPriority; onMount?: (element: Element) => void; onUnmount?: () => void; useShadow?: boolean; key?: string; } declare const Portal: Component; declare const PortalOutlet: Component<{ name: string; class?: string; }>; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const RenderError_base$1: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "RenderError"; } & Readonly; declare class RenderError$1 extends RenderError_base$1<{ readonly message: string; readonly node?: unknown; readonly element?: unknown; }> { } declare const MountError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "MountError"; } & Readonly; declare class MountError extends MountError_base<{ readonly message: string; readonly target?: string | Element; }> { } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface Canvas { paint:

>(blueprint: BlueprintDef

, props?: P) => void; render: (node: EffuseChild) => void; dispose: () => void; paintEffect:

>(blueprint: BlueprintDef

, props?: P) => Effect.Effect; renderEffect: (node: EffuseChild) => Effect.Effect; } declare const canvas: (target: Element | string) => Canvas; declare const canvasEffect: (target: Element | string) => Effect.Effect; declare const mount:

>(blueprint: BlueprintDef

, target: Element | string, props?: P) => Canvas; declare const mountEffect:

>(blueprint: BlueprintDef

, target: Element | string, props?: P) => Effect.Effect; type HookCleanup = () => void; type HookFinalizer = () => void | Promise; type EffectCallback = () => HookCleanup | undefined; interface HookScope { addFinalizer: (fn: HookFinalizer) => void; dispose: () => Promise; } interface HookContext { readonly config: C; readonly signal: (initial: T) => Signal; readonly computed: (fn: () => T) => ReadonlySignal; readonly watchEffect: (fn: EffectCallback) => void; readonly onMount: (fn: EffectCallback) => void; readonly scope: HookScope; readonly layer: (name: K) => LayerPropsOf; readonly layerProvider: (name: K) => LayerProvidesOf; readonly use: (hook: () => R) => R; readonly runAsync: (fn: () => Promise) => Promise; } type HookSetupFn = (ctx: HookContext) => R; interface HookDefinition { readonly deps?: readonly string[]; readonly setup: HookSetupFn; } type InferHookReturn = H extends HookDefinition ? R : never; type InferHookConfig = H extends HookDefinition ? C : never; declare function defineHook(definition: { readonly name?: string; readonly deps?: readonly string[]; readonly setup: HookSetupFn; }): C extends undefined ? () => R : (config: C) => R; declare const createHookContext: (config: C, hookName?: string) => { ctx: HookContext; dispose: () => Promise; mountCallbacks: EffectCallback[]; }; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface MountedNode { nodes: Node[]; cleanup: () => void; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const resolveLayerOrder: (layers: readonly AnyLayer[], visited?: Set, path?: string[]) => AnyResolvedLayer[]; declare const mergeLayerConfigs: (layers: readonly AnyResolvedLayer[]) => MergedConfig; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type ResultOf = T extends () => infer R ? R : never; type EffuseServices = T['provides'] extends infer P extends LayerProvides ? { [K in keyof P]: ResultOf; } : {}; interface CompiledLayer extends EffuseLayer { readonly effectLayer: Layer.Layer, never, Scope.Scope>; readonly tags: { readonly [K in keyof EffuseServices]: Context.Tag[K]>; }; readonly _resolved: true; } declare function defineLayer(definition: T): CompiledLayer; type MergeServices[]> = Layers extends readonly [infer L, ...infer R] ? L extends CompiledLayer ? EffuseServices & (R extends readonly CompiledLayer[] ? MergeServices : {}) : never : {}; declare function combineLayers[]>(...layers: Layers): Layer.Layer, never, Scope.Scope>; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type TracingCategory = 'layers' | 'router' | 'components' | 'effects' | 'signals' | 'suspense' | 'emit' | 'store' | 'fibers' | 'hooks'; interface UseHooksCategories { readonly useWindowSize: boolean; readonly useLocalStorage: boolean; readonly useEventListener: boolean; readonly useMediaQuery: boolean; readonly useOnline: boolean; readonly useInterval: boolean; readonly useDebounce: boolean; readonly useThrottle: boolean; } declare const defaultUseHooksCategories: UseHooksCategories; interface TracingCategories { readonly layers: boolean; readonly router: boolean; readonly components: boolean; readonly effects: boolean; readonly signals: boolean; readonly suspense: boolean; readonly emit: boolean; readonly store: boolean; readonly fibers: boolean; readonly hooks: boolean; readonly useHooks?: Partial; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface TracingConfig { readonly enabled: boolean; readonly serviceName: string; readonly console: boolean; readonly verbose: boolean; readonly categories?: Partial; } interface TracingServiceApi { readonly config: TracingConfig; readonly isEnabled: () => boolean; readonly isCategoryEnabled: (category: TracingCategory) => boolean; readonly startSpan: (name: string, attributes?: Record) => void; readonly endSpan: (name: string) => void; readonly logSpan: (name: string, duration: number, attributes?: Record, depth?: number) => void; readonly log: (category: TracingCategory, type: string, name: string, data?: Record) => void; readonly logWithDuration: (category: TracingCategory, type: string, name: string, duration: number, data?: Record) => void; } declare const TracingService_base: Context.TagClass; declare class TracingService extends TracingService_base { } declare const createTracingService: (config?: Partial) => TracingServiceApi; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const setGlobalTracing: (service: TracingServiceApi) => void; declare const getGlobalTracing: () => TracingServiceApi | null; declare const clearGlobalTracing: () => void; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type LayerRuntimeServices = PropsService | RegistryService | TracingService; interface LayerRuntimeOptions { tracing?: Partial; } interface LayerRuntime { readonly runtime: ManagedRuntime.ManagedRuntime; readonly cleanups: readonly CleanupFn[]; dispose: () => Promise; } declare const createLayerRuntime: (layers: readonly AnyResolvedLayer[], options?: LayerRuntimeOptions) => Promise; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface AppInstance { unmount: () => Promise; } type MountOptions = LayerRuntimeOptions; declare class EffuseApp { private layers; private rootComponent; private layerRuntime; constructor(root: Component); useLayers(layers: (AnyLayer | CompiledLayer | (() => Promise>))[]): Promise; mount(selector: string, options?: MountOptions): Promise; private cleanup; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const createApp: (root: Component) => EffuseApp; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface ServerApp { useLayers(layers: readonly EffuseLayer[]): ServerApp; configure(options: ServerAppOptions): ServerApp; renderToString(url: string): Promise; renderToHtml(url: string): Promise; } declare const createServerApp: (root: Component) => ServerApp; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const isServer: () => boolean; declare const useHead: (head: HeadProps) => void; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface SeoMetaInput { title?: string; description?: string; keywords?: string; author?: string; robots?: string; generator?: string; applicationName?: string; referrer?: 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url'; themeColor?: string; colorScheme?: 'normal' | 'light' | 'dark' | 'light dark' | 'dark light'; ogTitle?: string; ogDescription?: string; ogType?: string; ogUrl?: string; ogImage?: string; ogImageAlt?: string; ogImageWidth?: string | number; ogImageHeight?: string | number; ogImageType?: string; ogLocale?: string; ogLocaleAlternate?: string[]; ogSiteName?: string; ogDeterminer?: 'a' | 'an' | 'the' | '' | 'auto'; articlePublishedTime?: string; articleModifiedTime?: string; articleExpirationTime?: string; articleAuthor?: string | string[]; articleSection?: string; articleTag?: string | string[]; twitterCard?: 'summary' | 'summary_large_image' | 'app' | 'player'; twitterSite?: string; twitterSiteId?: string; twitterCreator?: string; twitterCreatorId?: string; twitterTitle?: string; twitterDescription?: string; twitterImage?: string; twitterImageAlt?: string; fbAppId?: string; googleSiteVerification?: string; yandexVerification?: string; msValidate?: string; appleItunesApp?: string; appleMobileWebAppCapable?: 'yes' | 'no'; appleMobileWebAppStatusBarStyle?: 'default' | 'black' | 'black-translucent'; appleMobileWebAppTitle?: string; formatDetection?: string; } declare const useSeoMeta: (input: SeoMetaInput) => void; declare const useServerSeoMeta: (input: SeoMetaInput) => void; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface HandlerConfig { root: Component; layers?: readonly EffuseLayer[]; options?: ServerAppOptions; transform?: (req: Request) => Request; notFound?: () => Response; } declare const createHandler: (config: HandlerConfig) => (request: Request) => Promise; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const mergeHeadProps: (base: HeadProps, override: HeadProps) => HeadProps; declare const mergeLayerHeads: (heads: readonly HeadProps[]) => HeadProps; declare const headToHtml: (head: HeadProps) => string; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface HydrationData { head: HeadProps; state: Record; url: string; timestamp: number; } declare const getHydrationData: () => HydrationData | null; declare const checkHydrationMatch: (clientState: Record, serverState: Record) => boolean; declare const initHydration: () => HydrationData | null; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const CycleError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "CycleError"; } & Readonly; declare class CycleError extends CycleError_base<{ readonly message: string; readonly layers: readonly string[]; }> { } declare const RenderError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "RenderError"; } & Readonly; declare class RenderError extends RenderError_base<{ readonly message: string; readonly url: string; readonly cause?: unknown; }> { } declare const ValidationError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "ValidationError"; } & Readonly; declare class ValidationError extends ValidationError_base<{ readonly message: string; readonly path?: readonly string[]; readonly expected?: string; readonly received?: string; }> { } declare const HydrationError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "HydrationError"; } & Readonly; declare class HydrationError extends HydrationError_base<{ readonly message: string; readonly serverState: unknown; readonly clientState: unknown; }> { } declare const HeadMergeError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "HeadMergeError"; } & Readonly; declare class HeadMergeError extends HeadMergeError_base<{ readonly message: string; readonly conflictingKeys: readonly string[]; }> { } declare const PluginError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "PluginError"; } & Readonly; declare class PluginError extends PluginError_base<{ readonly message: string; readonly pluginName?: string; readonly cause?: unknown; }> { } type SSRError = CycleError | RenderError | ValidationError | HydrationError | HeadMergeError | PluginError; interface EffuseConfigType { debug: boolean; strictMode: boolean; ssrMode: boolean; } declare const getEffuseConfig: () => EffuseConfigType; declare const isDebugEnabled: () => boolean; declare const isStrictMode: () => boolean; declare const isSSRMode: () => boolean; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Validation result from a validator function. */ type ValidationResult = string | undefined; /** Validator function for a single field. */ type FieldValidator = (value: T) => ValidationResult; /** Validation rules per form field. */ type FormValidators> = { [K in keyof T]?: FieldValidator; }; /** Validation behavior options. */ interface FormValidationOptions { /** Debounce delay in milliseconds. */ readonly debounce?: number; /** Validation trigger mode. */ readonly validateOn?: 'change' | 'blur' | 'submit'; } /** Configuration options for useForm. */ interface FormOptions> { /** Initial field values as signals. */ readonly initial: { [K in keyof T]: Signal; }; /** Validator functions per field. */ readonly validators?: FormValidators; /** Submit callback. */ readonly onSubmit?: (data: T) => void | Promise; /** Validation options. */ readonly validationOptions?: FormValidationOptions; } /** Input binding result from bind(). */ interface BindResult { /** Current field value. */ readonly value: T; /** Input event handler. */ readonly onInput: (e: Event) => void; /** Blur event handler. */ readonly onBlur: () => void; /** Field name. */ readonly name: string; } /** Error map keyed by field name. */ type FormErrors> = { [K in keyof T]?: string; }; /** Touch state per field. */ type FormTouched> = { [K in keyof T]: Signal; }; /** Field signals per field name. */ type FormFields> = { [K in keyof T]: Signal; }; /** Return type of useForm hook. */ interface UseFormReturn> { /** Reactive field signals. */ readonly fields: FormFields; /** Reactive error messages. */ readonly errors: ReadonlySignal>; /** Touch state per field. */ readonly touched: FormTouched; /** Form validity state. */ readonly isValid: ReadonlySignal; /** Dirty state (any field changed). */ readonly isDirty: ReadonlySignal; /** Submission state. */ readonly isSubmitting: ReadonlySignal; /** Form submit handler. */ readonly submit: (e?: Event) => Promise; /** Reset to initial values. */ readonly reset: () => void; /** Input binding helper. */ readonly bind: (name: K) => BindResult; /** Set field value. */ readonly setFieldValue: (name: keyof T, value: T[keyof T]) => void; /** Set field error. */ readonly setFieldError: (name: keyof T, error: string | undefined) => void; /** Clear all errors. */ readonly clearErrors: () => void; /** Manual validation trigger. */ readonly validate: () => boolean; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * Reactive form state with validation. */ declare function useForm>(options: FormOptions): UseFormReturn; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Compose multiple validators into one. */ declare function compose(...validators: FieldValidator[]): FieldValidator; /** Required field (not null, undefined, or empty string). */ declare function required(message?: string): FieldValidator; /** Custom validation with predicate function. */ declare function custom(predicate: (value: T) => boolean, message?: string): FieldValidator; /** Validate if value equals expected. */ declare function equals(expected: T, message?: string): FieldValidator; /** Validate if value is one of allowed values. */ declare function oneOf(allowed: readonly T[], message?: string): FieldValidator; /** Validate if value is not one of forbidden values. */ declare function notOneOf(forbidden: readonly T[], message?: string): FieldValidator; /** Conditional validation. */ declare function when(condition: (value: T) => boolean, validator: FieldValidator): FieldValidator; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Minimum string length. */ declare function minLength(min: number, message?: string): FieldValidator; /** Maximum string length. */ declare function maxLength(max: number, message?: string): FieldValidator; /** Exact string length. */ declare function length(len: number, message?: string): FieldValidator; /** String length range. */ declare function lengthBetween(min: number, max: number, message?: string): FieldValidator; /** Non empty string. */ declare function nonEmpty(message?: string): FieldValidator; /** Regex pattern match. */ declare function pattern(regex: RegExp, message?: string): FieldValidator; /** String starts with prefix. */ declare function startsWith(prefix: string, message?: string): FieldValidator; /** String ends with suffix. */ declare function endsWith(suffix: string, message?: string): FieldValidator; /** String includes substring. */ declare function includes(substring: string, message?: string): FieldValidator; /** Trimmed string (no leading/trailing whitespace). */ declare function trimmed(message?: string): FieldValidator; /** Lowercase string. */ declare function lowercased(message?: string): FieldValidator; /** Uppercase string. */ declare function uppercased(message?: string): FieldValidator; /** Capitalized string. */ declare function capitalized(message?: string): FieldValidator; /** Uncapitalized string. */ declare function uncapitalized(message?: string): FieldValidator; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Greater than value. */ declare function greaterThan(min: number, message?: string): FieldValidator; /** Greater than or equal to value. */ declare function greaterThanOrEqualTo(min: number, message?: string): FieldValidator; /** Less than value. */ declare function lessThan(max: number, message?: string): FieldValidator; /** Less than or equal to value. */ declare function lessThanOrEqualTo(max: number, message?: string): FieldValidator; /** Value between min and max inclusive. */ declare function between(min: number, max: number, message?: string): FieldValidator; /** Integer value. */ declare function integer(message?: string): FieldValidator; /** Finite number (excludes NaN, Infinity). */ declare function finite(message?: string): FieldValidator; /** Positive number (> 0). */ declare function positive(message?: string): FieldValidator; /** Non negative number (>= 0). */ declare function nonNegative(message?: string): FieldValidator; /** Negative number (< 0). */ declare function negative(message?: string): FieldValidator; /** Non positive number (<= 0). */ declare function nonPositive(message?: string): FieldValidator; /** Multiple of divisor. */ declare function multipleOf(divisor: number, message?: string): FieldValidator; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Email format validation. */ declare function email(message?: string): FieldValidator; /** URL format validation. */ declare function url(message?: string): FieldValidator; /** UUID format validation. */ declare function uuid(message?: string): FieldValidator; /** ULID format validation. */ declare function ulid(message?: string): FieldValidator; /** JSON parseable string validation. */ declare function json(message?: string): FieldValidator; /** Base64 encoded string validation. */ declare function base64(message?: string): FieldValidator; /** Hex string validation. */ declare function hex(message?: string): FieldValidator; /** Numeric string validation (string containing only digits). */ declare function numeric(message?: string): FieldValidator; /** Alphanumeric string validation. */ declare function alphanumeric(message?: string): FieldValidator; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Minimum array length. */ declare function minItems(min: number, message?: string): FieldValidator; /** Maximum array length. */ declare function maxItems(max: number, message?: string): FieldValidator; /** Exact array length. */ declare function itemCount(count: number, message?: string): FieldValidator; /** Non empty array. */ declare function nonEmptyArray(message?: string): FieldValidator; /** Unique items (no duplicates). */ declare function uniqueItems(message?: string): FieldValidator; /** Validate each item in array. */ declare function everyItem(itemValidator: FieldValidator, message?: string): FieldValidator; /** Validate at least one item in array passes. */ declare function someItem(itemValidator: FieldValidator, message?: string): FieldValidator; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Date is before target date. */ declare function before(target: Date, message?: string): FieldValidator; /** Date is after target date. */ declare function after(target: Date, message?: string): FieldValidator; /** Date is between two dates. */ declare function dateBetween(start: Date, end: Date, message?: string): FieldValidator; /** Date is in the past. */ declare function past(message?: string): FieldValidator; /** Date is in the future. */ declare function future(message?: string): FieldValidator; /** Valid Date object (not Invalid Date). */ declare function validDate(message?: string): FieldValidator; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Greater than value. */ declare function greaterThanBigInt(min: bigint, message?: string): FieldValidator; /** Greater than or equal to value. */ declare function greaterThanOrEqualToBigInt(min: bigint, message?: string): FieldValidator; /** Less than value. */ declare function lessThanBigInt(max: bigint, message?: string): FieldValidator; /** Less than or equal to value. */ declare function lessThanOrEqualToBigInt(max: bigint, message?: string): FieldValidator; /** Value between min and max inclusive. */ declare function betweenBigInt(min: bigint, max: bigint, message?: string): FieldValidator; /** Positive bigint (> 0n). */ declare function positiveBigInt(message?: string): FieldValidator; /** Non negative bigint (>= 0n). */ declare function nonNegativeBigInt(message?: string): FieldValidator; /** Negative bigint (< 0n). */ declare function negativeBigInt(message?: string): FieldValidator; /** Non positive bigint (<= 0n). */ declare function nonPositiveBigInt(message?: string): FieldValidator; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Extract error message from Effect Schema validation result. */ declare function extractSchemaError(schema: Schema.Schema, value: unknown): ValidationResult; /** Validates values. */ declare function fromSchema(schema: Schema.Schema, message?: string): FieldValidator; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const index_after: typeof after; declare const index_alphanumeric: typeof alphanumeric; declare const index_base64: typeof base64; declare const index_before: typeof before; declare const index_between: typeof between; declare const index_betweenBigInt: typeof betweenBigInt; declare const index_capitalized: typeof capitalized; declare const index_compose: typeof compose; declare const index_custom: typeof custom; declare const index_dateBetween: typeof dateBetween; declare const index_email: typeof email; declare const index_endsWith: typeof endsWith; declare const index_equals: typeof equals; declare const index_everyItem: typeof everyItem; declare const index_extractSchemaError: typeof extractSchemaError; declare const index_finite: typeof finite; declare const index_fromSchema: typeof fromSchema; declare const index_future: typeof future; declare const index_greaterThan: typeof greaterThan; declare const index_greaterThanBigInt: typeof greaterThanBigInt; declare const index_greaterThanOrEqualTo: typeof greaterThanOrEqualTo; declare const index_greaterThanOrEqualToBigInt: typeof greaterThanOrEqualToBigInt; declare const index_hex: typeof hex; declare const index_includes: typeof includes; declare const index_integer: typeof integer; declare const index_itemCount: typeof itemCount; declare const index_json: typeof json; declare const index_length: typeof length; declare const index_lengthBetween: typeof lengthBetween; declare const index_lessThan: typeof lessThan; declare const index_lessThanBigInt: typeof lessThanBigInt; declare const index_lessThanOrEqualTo: typeof lessThanOrEqualTo; declare const index_lessThanOrEqualToBigInt: typeof lessThanOrEqualToBigInt; declare const index_lowercased: typeof lowercased; declare const index_maxItems: typeof maxItems; declare const index_maxLength: typeof maxLength; declare const index_minItems: typeof minItems; declare const index_minLength: typeof minLength; declare const index_multipleOf: typeof multipleOf; declare const index_negative: typeof negative; declare const index_negativeBigInt: typeof negativeBigInt; declare const index_nonEmpty: typeof nonEmpty; declare const index_nonEmptyArray: typeof nonEmptyArray; declare const index_nonNegative: typeof nonNegative; declare const index_nonNegativeBigInt: typeof nonNegativeBigInt; declare const index_nonPositive: typeof nonPositive; declare const index_nonPositiveBigInt: typeof nonPositiveBigInt; declare const index_notOneOf: typeof notOneOf; declare const index_numeric: typeof numeric; declare const index_oneOf: typeof oneOf; declare const index_past: typeof past; declare const index_pattern: typeof pattern; declare const index_positive: typeof positive; declare const index_positiveBigInt: typeof positiveBigInt; declare const index_required: typeof required; declare const index_someItem: typeof someItem; declare const index_startsWith: typeof startsWith; declare const index_trimmed: typeof trimmed; declare const index_ulid: typeof ulid; declare const index_uncapitalized: typeof uncapitalized; declare const index_uniqueItems: typeof uniqueItems; declare const index_uppercased: typeof uppercased; declare const index_url: typeof url; declare const index_uuid: typeof uuid; declare const index_validDate: typeof validDate; declare const index_when: typeof when; declare namespace index { export { index_after as after, index_alphanumeric as alphanumeric, index_base64 as base64, index_before as before, index_between as between, index_betweenBigInt as betweenBigInt, index_capitalized as capitalized, index_compose as compose, index_custom as custom, index_dateBetween as dateBetween, index_email as email, index_endsWith as endsWith, index_equals as equals, index_everyItem as everyItem, index_extractSchemaError as extractSchemaError, index_finite as finite, index_fromSchema as fromSchema, index_future as future, index_greaterThan as greaterThan, index_greaterThanBigInt as greaterThanBigInt, index_greaterThanOrEqualTo as greaterThanOrEqualTo, index_greaterThanOrEqualToBigInt as greaterThanOrEqualToBigInt, index_hex as hex, index_includes as includes, index_integer as integer, index_itemCount as itemCount, index_json as json, index_length as length, index_lengthBetween as lengthBetween, index_lessThan as lessThan, index_lessThanBigInt as lessThanBigInt, index_lessThanOrEqualTo as lessThanOrEqualTo, index_lessThanOrEqualToBigInt as lessThanOrEqualToBigInt, index_lowercased as lowercased, index_maxItems as maxItems, index_maxLength as maxLength, index_minItems as minItems, index_minLength as minLength, index_multipleOf as multipleOf, index_negative as negative, index_negativeBigInt as negativeBigInt, index_nonEmpty as nonEmpty, index_nonEmptyArray as nonEmptyArray, index_nonNegative as nonNegative, index_nonNegativeBigInt as nonNegativeBigInt, index_nonPositive as nonPositive, index_nonPositiveBigInt as nonPositiveBigInt, index_notOneOf as notOneOf, index_numeric as numeric, index_oneOf as oneOf, index_past as past, index_pattern as pattern, index_positive as positive, index_positiveBigInt as positiveBigInt, index_required as required, index_someItem as someItem, index_startsWith as startsWith, index_trimmed as trimmed, index_ulid as ulid, index_uncapitalized as uncapitalized, index_uniqueItems as uniqueItems, index_uppercased as uppercased, index_url as url, index_uuid as uuid, index_validDate as validDate, index_when as when }; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** Single field validation. Returns error message or undefined. */ declare function validateField(validator: ((value: T) => string | undefined) | undefined, value: T): string | undefined; /** Full form validation. Returns error map. */ declare function validateForm>(validators: FormValidators, values: T): FormErrors; /** Check if error map contains any errors. */ declare function hasErrors>(errors: FormErrors): boolean; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const DEFAULT_DEBOUNCE_MS = 300; declare const DEFAULT_THROTTLE_MS = 100; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type EmitHandler

= (payload: P) => void; type EventMap = Record; type EmitEvents = T; type InferPayload = T; interface EmitOptions { readonly debounce?: number; readonly throttle?: number; readonly once?: boolean; readonly filter?: (payload: unknown) => boolean; } interface EmitContextData { readonly handlers: Map>>; readonly signals: Map>; readonly _phantom?: T; } type EmitFn = (event: K, payload: T[K]) => void; type EmitFnAsync = (event: K, payload: T[K]) => Promise; type SubscribeFn = (event: K, handler: EmitHandler) => () => void; type EventSignal

= ReadonlySignal

; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface EmitServiceApi { createContext: () => EmitContextData; registerHandler: (ctx: EmitContextData, event: string, handler: EmitHandler) => () => void; emit: (ctx: EmitContextData, event: string, payload: unknown) => void; getSignal: (ctx: EmitContextData, event: string) => Signal; } declare const getEmitService: () => EmitServiceApi; declare const useEmitService: (fn: (service: EmitServiceApi) => void) => void; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function useEmits(initialHandlers?: Partial<{ [K in keyof T]: EmitHandler; }>): { emit: EmitFn; emitAsync: EmitFnAsync; on: SubscribeFn; off: (event: K, handler: EmitHandler) => void; context: EmitContextData; }; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function useEventSignal(ctx: EmitContextData, event: string, options?: EmitOptions): EventSignal

; declare function createEventSignal

(initialValue?: P): Signal

; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function createDebounce(ms?: number): { apply: (value: T, callback: (v: T) => void) => void; cancel: () => void; }; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function createThrottle(ms?: number): { apply: (value: T, callback: (v: T) => void) => boolean; reset: () => void; }; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function createOnce(): { apply: (value: T, callback: (v: T) => void) => boolean; reset: () => void; hasFired: () => boolean; }; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type FilterPredicate = (value: T) => boolean; declare function createFilter(predicate: FilterPredicate): { apply: (value: T, callback: (v: T) => void) => boolean; }; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ interface ContextOptions { readonly id: string; readonly defaultValue?: T | (() => T); readonly displayName?: string; } interface ProviderProps { readonly value: T; readonly children: EffuseChild; } interface EffuseContext { readonly id: string; readonly displayName: string; readonly Provider: ReturnType; readonly defaultValue: T | undefined; readonly hasDefault: boolean; readonly _effectTag: Context.Tag; readonly _tag: 'EffuseContext'; } declare function createContext(options: ContextOptions): EffuseContext; declare function useContext(context: EffuseContext, componentName?: string): T; declare function hasContextValue(context: EffuseContext): boolean; declare const isEffuseContext: (value: unknown) => value is EffuseContext; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const ContextNotFoundError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "ContextNotFoundError"; } & Readonly; declare class ContextNotFoundError extends ContextNotFoundError_base<{ readonly contextId: string; readonly componentName?: string; }> { get message(): string; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ type RefCallback = (el: T | null) => void; interface RefObject { readonly current: T | null; readonly subscribe: (callback: RefCallback) => () => void; } type Ref = RefCallback | RefObject; type Directive = (element: T, accessor: () => P) => undefined | (() => void); interface RefOptions { readonly name?: string; } /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function createRef(_options?: RefOptions): RefObject; declare function isRefObject(value: unknown): value is RefObject; declare function isRefCallback(value: unknown): value is RefCallback; declare function applyRef(ref: RefCallback | RefObject | undefined | null, element: T | null): void; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare function registerDirective(name: string, fn: Directive): void; declare function getDirective(name: string): Directive | undefined; declare function hasDirective(name: string): boolean; declare function unregisterDirective(name: string): boolean; declare function applyDirective(name: string, element: Element, accessor: () => unknown): (() => void) | undefined; declare function getDirectiveNames(): string[]; /** * MIT License * * Copyright (c) 2025 Chris M. Perez * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ declare const RefNotAttachedError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "RefNotAttachedError"; } & Readonly; declare class RefNotAttachedError extends RefNotAttachedError_base<{ readonly message: string; readonly refName?: string; }> { } declare const DirectiveError_base: new = {}>(args: effect_Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => effect_Cause.YieldableError & { readonly _tag: "DirectiveError"; } & Readonly; declare class DirectiveError extends DirectiveError_base<{ readonly message: string; readonly directiveName?: string; readonly cause?: unknown; }> { } export { type AnyLayer, type AnyPropSchemaBuilder, type AnyResolvedLayer, type AppInstance, Await, type AwaitProps, type BindResult, BlueprintContext, BlueprintDef, BlueprintNode, type BlueprintOptions, type Canvas, type CleanupFn$2 as CleanupFn, type CompiledLayer, Component, type ComponentLifecycle, ContextNotFoundError, type ContextOptions, DEFAULT_DEBOUNCE_MS, DEFAULT_THROTTLE_MS, type DeepReadonly, type DefineOptions, type DefineOptionsWithLayer, type Directive, DirectiveError, Dynamic, type DynamicProps, EFFUSE_NODE, type EffectHandle, type EffectOptions, EffuseApp, EffuseChild, type EffuseConfigType, type EffuseContext, type EffuseLayer, type EffuseLayerRegistry, EffuseNode, type EffuseRegistry, type EffuseServices, ElementNode, type EmitContextData, type EmitEvents, type EmitFn, type EmitFnAsync, type EmitHandler, type EmitOptions, type EmitServiceApi, ErrorBoundary, type ErrorBoundaryProps, type EventMap, type EventSignal, type FieldValidator, type FilterPredicate, For, type ForProps, type FormErrors, type FormFields, type FormOptions, type FormTouched, type FormValidationOptions, type FormValidators, type Guard, type HandlerConfig, type HeadProps, type HookCleanup, type HookContext, type HookDefinition, type HookFinalizer, type HookScope, type HookSetupFn, type HydrationData, type InferHookConfig, type InferHookReturn, type InferPayload, type LayerProps, type LayerPropsFor, type LayerProvides, type LayerRestriction, type LayerRuntime, type LayerRuntimeOptions, type LayerScriptContext, type LayerSetupFn, type LinkTag, type MaybePromise, type MergeServices, type MergedConfig, type MetaTag, type MountOptions, type MountedNode, type OnCleanup, type OpenGraphProps, PORTAL_PRIORITY, type PluginCleanup, type PluginFn, Portal, type PortalContainer, PortalFn, type PortalInsertMode, PortalOutlet, type PortalPriority, type PortalProps, Portals, type PropDefinition, PropSchema, type PropSchemaBuilder, type PropSchemaInfer, PropsValidationError, type ProviderProps, type Reactive, ReadonlySignal, type Ref, type RefCallback, RefNotAttachedError, type RefObject, type RefOptions, type RenderResult, Repeat, type RepeatProps, type ResolvedLayer, type RouteConfig, type SSRContext, type SSRError, type ScriptContext, type ScriptTag, type SeoMetaInput, type ServerApp, type ServerAppOptions, type SetupContext, Show, type ShowProps, Signal, type StoreConfig, type SubscribeFn, Suspense, type SuspenseProps, Switch, type SwitchProps, type TwitterCardProps, type UseFormReturn, type UseHooksCategories, type ValidationResult, type WatchCallback, type WatchOptions, type WatchSource, applyDirective, applyRef, blueprint, canvas, canvasEffect, checkHydrationMatch, clearGlobalTracing, combineLayers, computed, createApp, createComponentLifecycleSync, createContext, createDebounce, createEventSignal, createFilter, createHandler, createHookContext, createLayerRuntime, createOnce, createPortal, createRef, createServerApp, createThrottle, createTracingService, defaultUseHooksCategories, define, defineHook, defineLayer, effectOnce, el, fragment, getDirective, getDirectiveNames, getEffuseConfig, getEmitService, getGlobalTracing, getHydrationData, getPortalOutlet, getSignalDep, getSignalRef, hasContextValue, hasDirective, hasErrors, headToHtml, initHydration, instantiateBlueprint, isBlueprint, isDebugEnabled, isEffuseContext, isReactive, isReadonly, isRefCallback, isRefObject, isSSRMode, isServer, isSignal, isStrictMode, markRaw, mergeHeadProps, mergeLayerConfigs, mergeLayerHeads, mount, mountEffect, reactive, readonly, readonlySignal, registerDirective, registerPortalOutlet, render, renderToNamedPortal, resolveLayerOrder, setGlobalRouter, setGlobalStoreGetter, setGlobalTracing, shallowReadonly, signal, toNode, toRaw, unmount, unref, unregisterDirective, unregisterPortalOutlet, useContext, useEmitService, useEmits, useEventSignal, useForm, useHead, useSeoMeta, useServerSeoMeta, index as v, validateField, validateForm, watch, watchEffect, watchMultiple, writableComputed };