import type { Effect } from "effect";
export declare const Code: {
readonly Markup: {
readonly Promise: "MarkupPromise";
readonly Run: "MarkupRun";
readonly Value: "MarkupValue";
};
};
export interface MarkupPromiseOptions {
/** Keep the SSR promise pending so Svelte renders an await block fallback. */
ssr?: "pending";
}
export type Dispose = () => void;
export interface ValueOptions {
/** Stable cache key for this value block. */
id: string;
deps: readonly unknown[];
/** Value returned synchronously while the effect is running or during SSR. */
fallback: A;
factory: () => Effect.gen.Return;
}
export interface PromiseOptions {
/** Stable cache key for this promise block. */
id: string;
deps: readonly unknown[];
factory: () => Effect.gen.Return;
}
export interface MarkupValueEvent {
type: typeof Code.Markup.Value;
/** Stable identifier generated from the expression's source position. */
id: string;
deps: readonly unknown[];
/** Value returned synchronously while the effect is pending. */
fallback: F;
fn: () => Effect.gen.Return;
}
export interface MarkupPromiseEvent {
type: typeof Code.Markup.Promise;
/** Stable identifier generated from the expression's source position. */
id: string;
deps: readonly unknown[];
fn: () => Effect.gen.Return;
/** Value resolved during SSR when a fallback is required. */
ssr_fallback?: A;
/** Optional SSR behavior for await blocks and similar contexts. */
options?: MarkupPromiseOptions;
}
export interface MarkupRunEvent {
type: typeof Code.Markup.Run;
fn: () => Effect.gen.Return;
}
export type DispatcherEvent = MarkupPromiseEvent | MarkupRunEvent | MarkupValueEvent;