import { Annotated } from "./records"; export interface Valid { valid: true; input: unknown; parsed: T; error: null; } export interface Invalid { valid: false; input: unknown; parsed: null; error: ValidationErrors; } export type ValidationErrors = string | string[] | Annotated | Annotated[]; export type Validated = Valid | Invalid; export type Validator = (input: unknown) => Validated; export type Guard = (input: unknown) => input is T;