import type { Effect, Schema } from "effect"; export interface Config { readonly statePath?: ReadonlyArray | undefined; readonly nondetPath?: ReadonlyArray | undefined; } export declare const defaultConfig: Config; type SchemaFields = { readonly [key: string]: Schema.Schema; }; export type ActionPicks = { readonly [K in keyof Fields]: Schema.Schema.Type; }; interface ActionDefSchema { readonly picks: Schema.Struct; } interface ActionDefHandler { readonly handler: (picks: ActionPicks) => Effect.Effect; } export type ActionDef = ActionDefSchema & ActionDefHandler; interface AnyActionDefSchema { readonly picks: Schema.Struct>>; } interface AnyActionDefHandler { readonly handler: (picks: any) => Effect.Effect; } export type AnyActionDef = AnyActionDefSchema & AnyActionDefHandler; export interface ActionMap { readonly [action: string]: AnyActionDef | undefined; } interface DriverActions, E, R> { readonly actions: Actions; } interface DriverHooks { readonly getState?: () => Effect.Effect; readonly config?: () => Config; } export type Driver = ActionMap> = DriverActions & DriverHooks; export interface DriverFactory = ActionMap> { readonly create: () => Effect.Effect, E, R>; } export type StateComparator = (spec: S, impl: S) => boolean; export {}; //# sourceMappingURL=types.d.ts.map