@firfi/quint-connect
Version:
Model-based testing framework connecting Quint specifications to TypeScript implementations
35 lines • 2.62 kB
TypeScript
import { Effect, Schema } from "effect";
import type { Config, DriverFactory } from "./driver/types.js";
import type { StateCheck } from "./runner/runner.js";
export type { ActionDef, ActionMap, ActionPicks, Config, Driver, DriverFactory, StateComparator } from "./driver/types.js";
export { defaultConfig } from "./driver/types.js";
export type { QuintRunGeneration, QuintTestGeneration, RunGenerationOptions, RunOptions, TestGenerationOptions, TraceGenerationMode, TraceGenerationOptions } from "./cli/quint.js";
export { generateTraces, QuintError, QuintNotFoundError } from "./cli/quint.js";
export type { TraceGenerationService } from "./cli/trace-generation.js";
export { TraceGeneration, traceGenerationLayer } from "./cli/trace-generation.js";
export type { QuintGenerationOptions, QuintRunOptions, QuintTestOptions, StateCheck } from "./runner/runner.js";
export { NoTracesError, quintRun, quintRunWithTraceGeneration, StateMismatchError, TraceReplayError } from "./runner/runner.js";
export { ITFBigInt, ITFList, ITFMap, ItfOption, ITFSet, ItfTrace, ITFTuple, ITFUnserializable, ITFVariant, MbtMeta, UntypedTraceSchema } from "./itf/schema.js";
export type { ITFValueRaw } from "./itf/schema.js";
export declare const stateCheck: <S, E, R>(deserializeState: (raw: unknown) => Effect.Effect<S, E, R>, compareState: (spec: S, impl: S) => boolean) => StateCheck<S, E, R>;
type EffectPicksSchema = Record<string, Schema.Codec<unknown, unknown, never, unknown>>;
type EffectHandlerPicks<Fields extends EffectPicksSchema> = {
readonly [K in keyof Fields]: Schema.Schema.Type<Fields[K]>;
};
type EffectDriverFactoryResult<S extends Record<string, EffectPicksSchema>> = {
[K in keyof S]: (picks: EffectHandlerPicks<S[K]>) => Effect.Effect<void, any, any>;
} & {
getState?: () => Effect.Effect<any, any, any>;
config?: () => Config;
};
type FactoryState<F> = F extends {
readonly getState: () => Effect.Effect<infer State, infer _Error, infer _Requirements>;
} ? State : unknown;
type FactoryError<F> = {
[K in keyof F]: F[K] extends (...args: ReadonlyArray<never>) => Effect.Effect<unknown, infer E, unknown> ? E : never;
}[keyof F];
type FactoryRequirements<F> = {
[K in keyof F]: F[K] extends (...args: ReadonlyArray<never>) => Effect.Effect<unknown, unknown, infer R> ? R : never;
}[keyof F];
export declare function defineDriver<S extends Record<string, EffectPicksSchema>, Factory extends EffectDriverFactoryResult<S>>(schema: S, factory: () => Factory): DriverFactory<FactoryState<Factory>, FactoryError<Factory>, FactoryRequirements<Factory>>;
//# sourceMappingURL=effect.d.ts.map