import type { IFieldBase } from "$lib/Models"; // SCHEMA export interface ValidationStateScaffold { initial: string; states: { avalid: any; invalid: { }; validating: any; valid: any; }; } export interface ValidationStates extends ValidationStateScaffold { initial: string; states: { avalid: {}; invalid: { }; validating: {}; valid: {}; }; } // EVENTS that the machine handles export type Validation_Event_Validating = { type: 'VALIDATE'; field: IFieldBase }; export type Validation_Event_Validated = { type: 'VALIDATED'; value: any }; export type Validation_Event_Invalidated = { type: 'INVALIDATED'; value: any }; export type ValidationEvent = | Validation_Event_Validating | Validation_Event_Validated | Validation_Event_Invalidated; export interface ValidationEventsScaffold { 'VALIDATE': Function, 'VALIDATED': Function, 'INVALIDATED': Function } // CONTEXT export interface ValidationContext {} interface ValidationContextUndefined {} export interface ValidationStateSchema { id: string; initial: string; context: ValidationContext; states: ValidationStates }; export type ValidationState = { value: 'active'; context: ValidationContext & ValidationContextUndefined; };