export class Program { }; export class Environment { }; export class Value { }; export type Posn = { posnLine: number, posnColm: number }; export type Range = [Posn, Posn]; export type CubicalT = { exports: { parseFromStringJs(s: string): Promise; newEnvironment(): Promise; typeCheckProgram(p: Environment, e: Program): Promise; zonkAndShowTypeJs(val: Value): Promise; getTypeByNameJs(name: string, e: Environment): Promise; getValueByNameJs(name: string, e: Environment): Promise; classifyValueByNameJs(name: string, e: Environment): Promise; findDefinitionJs(name: string, e: Environment): Promise; } }; export const waitForLoad : Promise = new Promise(resolve => document.addEventListener('cubicalLoaded', () => { resolve((window as unknown as { cubical: CubicalT}).cubical) }));