import type { Capability } from "../types/index.js"; export type TypedCapability = { name: string; input: Record; output: string[]; emits: string[]; determinism: "pure" | "effectful"; preconditions: string[]; }; export type TypedEvent = { name: string; payloadSchema: Record; appliesTo: string[]; }; export type TypedState = { name: string; fields: Record; transitions: TypedTransition[]; }; export type TypedTransition = { from: string; to: string; via: string; }; export type TypedIR = { capabilities: TypedCapability[]; events: TypedEvent[]; states: TypedState[]; transitions: TypedTransition[]; validity: TypeCheckResult; }; export type TypeCheckResult = { valid: boolean; errors: TypeError[]; warnings: TypeWarning[]; }; export type TypeError = { rule: string; message: string; context: Record; }; export type TypeWarning = { rule: string; message: string; context: Record; }; export declare class TypeChecker { check(ir: TypedIR): TypeCheckResult; private checkEventCoverage; private checkTransitionValidity; private checkCapabilityClosure; private checkDeterminism; private checkPartitionSafety; private checkUnusedEvents; private checkOrphanStates; private checkUnreachableTransitions; private findCapabilitiesEmitting; isValid(ir: TypedIR): boolean; } export declare function buildTypedIR(capabilities: Capability[]): TypedIR;