export { Lexer, LexError } from "./tokenizer.ts";
export { formatWrn } from "./formatter.ts";
export type { FormatWrnOptions } from "./formatter.ts";
export { parse, parseHtmlView, ParseError, VOID_ELEMENTS } from "./parser.ts";
export type {
  ActionBlock,
  ApiBlock,
  Attr,
  ComputedDecl,
  DataApiBlock,
  DataMode,
  EffectBlock,
  EventDecl,
  LifecycleBlock,
  LoadBlock,
  ModeFunctionsBlock,
  PageAst,
  PropDecl,
  RealtimeBlock,
  RealtimeHandler,
  SeoBlock,
  StateDecl,
  ViewNode,
  WatchBlock,
} from "./parser.ts";
export {
  eraseFunctionTypes,
  inferredRuntimeType,
  runtimeTypeOf,
  validateTypedInitializer,
} from "./types.ts";
export type { RuntimeType } from "./types.ts";
export {
  assertValidAst,
  classifyParseError,
  containsReadonlyPropMutation,
  diagnose,
  diagnosticFromError,
  formatDiagnostic,
  isHydrationStrategy,
  isRuntimeTarget,
  positionAt,
} from "./diagnostics.ts";
export type {
  DiagnoseOptions,
  WrnDiagnostic,
  WrnDiagnosticSeverity,
  WrnSourcePosition,
} from "./diagnostics.ts";
export * from "./spec.ts";
export {
  WRN_SYNTAX_VERSION,
  WRN_SYNTAX_FEATURES,
  createSourceRange,
  sliceSource,
  diagnosticSummary,
  supportsSyntaxFeature,
} from "./versioning.ts";
export type { SourceRange, WrnSyntaxFeature } from "./versioning.ts";

export {
  parseComputedDeclarations,
  parseOutputs,
  parsePersist,
  parseRuntimeFunctions,
  parseStateDeclarations,
  parseStoreLifecycle,
  parseStructuredImports,
  stripRuntimeFunctionModifiers,
} from "./v060.ts";
export type {
  FunctionParameterDecl,
  FunctionRuntime,
  OutputDecl,
  PersistDecl,
  RuntimeFunctionDecl,
  StateRuntime,
  StoreKind,
  StoreLifecycleDecl,
  StructuredImportDecl,
} from "./v060.ts";
