@hexworks/cobalt-state
Version:
State machine utility for Cobalt.
15 lines (14 loc) • 828 B
TypeScript
import { ProgramError } from "@hexworks/cobalt-core";
import { Event } from "@hexworks/cobalt-events";
import * as RTE from "fp-ts/ReaderTaskEither";
import { z } from "zod";
import { State, StateBuilder, TransitionBuilder } from "..";
export declare class DefaultStateBuilder<S, C, N extends string> implements StateBuilder<S, C, N> {
private params;
constructor(name: N);
withSchema(schema: z.Schema<S>): StateBuilder<S, C, N>;
onEvent<E extends Event<T>, T extends string = string>(type: T, fn: (builder: TransitionBuilder<S, C, T, E, N>) => StateBuilder<S, C, N>): StateBuilder<S, C, N>;
onEntry(fn: (data: S) => RTE.ReaderTaskEither<C, ProgramError, S>): StateBuilder<S, C, N>;
onExit(fn: (data: S) => RTE.ReaderTaskEither<C, ProgramError, S>): StateBuilder<S, C, N>;
build(): State<S, C, N>;
}