types/surface.types.ts

types/surface.types.ts is a file in Bane's Lab Build Scripts. 43 lines of code and 10 definitions.

import type { SurfaceFigureName, SurfaceFrame } from "@banes-lab/web/types/surface.types.ts";

export type ScenarioTool = "await" | "govern";

export interface ToolStep {
    readonly kind: "tool";
    readonly tool: ScenarioTool;
    readonly args: readonly string[];
    readonly exit: number | null;
    readonly figures: readonly SurfaceFigureName[];
    readonly delivers: boolean;
}

export interface WaitStep {
    readonly kind: "wait";
    readonly args: readonly string[];
    readonly exit: number;
    readonly figures: readonly SurfaceFigureName[];
}

export interface WriteStep {
    readonly kind: "write";
    readonly text: string;
    readonly figures: readonly SurfaceFigureName[];
}

export type ScenarioStep = ToolStep | WaitStep | WriteStep;

export interface SampleFile {
    readonly name: string;
    readonly text: string;
}

export interface Scenario {
    readonly samples: readonly SampleFile[];
    readonly steps: readonly ScenarioStep[];
}

export interface Region {
    readonly from: number;
    readonly to: number;
}

export interface FigureFrame {
    readonly figure: SurfaceFigureName;
    readonly before: readonly string[];
    readonly frame: SurfaceFrame;
}

export interface SurfaceRecord {
    readonly figures: number;
    readonly reused: boolean;
}