export enum TopLevelStatementTypes { VERSION = "version", } export interface VersionStatement { readonly type: TopLevelStatementTypes.VERSION, readonly version: number, } export function versionStatement(version: number): VersionStatement { return { type: TopLevelStatementTypes.VERSION, version, } } export function isVersionStatement(statement: TopLevelStatement): statement is VersionStatement { return statement.type === TopLevelStatementTypes.VERSION } export type TopLevelStatement = VersionStatement