import type { ShowcasePlatformerPlayableSurfaceMap, ShowcasePlatformerSpec, ShowcaseRacingSpec, ShowcaseRacingTrackTopology, ShowcaseSpec } from "./showcase-spec-types.js"; import { applyRetainedCompositionEvidence } from "./showcase-spec-composition-evidence.js"; export interface ShowcaseGameTemplateArtifacts { readonly spec: ShowcaseSpec; readonly artifacts: Readonly>; readonly assetPairComposition?: { readonly report: string; readonly verdict: "pass" | "fail"; readonly checks: readonly { readonly id: string; readonly verdict: "pass" | "fail"; }[]; }; } export interface ShowcaseGameTemplateEvidenceOptions { readonly projectDir?: string; } export interface RacingTemplatePlan { readonly width: number; readonly points: readonly { readonly x: number; readonly y: number; }[]; readonly checkpoints: readonly number[]; readonly routeLength: number; readonly authoredLapSeconds: number; readonly topology: ShowcaseRacingTrackTopology; readonly extractionReasons: readonly string[]; readonly extractionBlockers: readonly string[]; } export interface PlatformerTemplatePlan { readonly id: string; readonly start: { readonly x: number; readonly y: number; }; readonly finish: { readonly x: number; readonly y: number; }; readonly moveSpeed: number; readonly jumpVelocity: number; readonly lowerBound: number; readonly platforms: readonly PlatformerSurface[]; readonly collectibles: readonly { readonly id: string; readonly x: number; readonly y: number; readonly value: number; }[]; readonly hazards: readonly { readonly id: string; readonly x: number; readonly y: number; readonly width: number; readonly height: number; readonly respawn: true; }[]; readonly checkpoints: readonly { readonly id: string; readonly x: number; readonly y: number; readonly radius: number; }[]; readonly playableSurfaceMap: ShowcasePlatformerPlayableSurfaceMap; readonly extractionReasons: readonly string[]; readonly extractionBlockers: readonly string[]; } export interface PlatformerSurface { readonly id: string; readonly x: number; readonly y: number; readonly width: number; readonly height: number; readonly worldAsset: string; readonly evidenceRole: "playable-surface" | "bridge" | "finish-run"; } export declare function consumeRetainedGameCompositionEvidence(spec: ShowcaseSpec, options?: ShowcaseGameTemplateEvidenceOptions): ReturnType; export declare function applyGeneratedGameTemplateEvidence(spec: ShowcaseSpec, options?: ShowcaseGameTemplateEvidenceOptions): ShowcaseGameTemplateArtifacts; export declare function createRacingTemplatePlan(racing: ShowcaseRacingSpec, options?: ShowcaseGameTemplateEvidenceOptions): RacingTemplatePlan; export declare function createPlatformerTemplatePlan(spec: ShowcaseSpec, platformer: ShowcasePlatformerSpec, options?: ShowcaseGameTemplateEvidenceOptions): PlatformerTemplatePlan; //# sourceMappingURL=showcase-spec-game-template-evidence.d.ts.map