import type { EffectContext } from "./types"; export type EffectStrategy = "default" | "takeLatest" | "debounce"; export type EffectMode = "sequential" | "parallel" | "race" | "allSettled"; export type EffectHandler = (context: EffectContext) => void | Promise; export type EffectDef = { _kind: "effect"; id: symbol; handler: EffectHandler; blocking?: boolean; strategy: EffectStrategy; wait?: number; }; type EffectBuilder = EffectDef & { takeLatest(): EffectBuilder; debounce(ms: number): EffectBuilder; blocking(): EffectBuilder; }; export declare function effect(fn: EffectHandler): EffectBuilder; export {};