// Auto-generated by build-bundle.mjs. Do not edit by hand.

export interface LogicFlowModel {
  id: string;
  label?: string;
  modelType?: string;
  contentType?: string;
  expressionLanguage?: string;
  logicFlow: {
    variables: { input?: unknown[]; output?: unknown[] };
    [k: string]: unknown;
  };
  [k: string]: unknown;
}

export interface RuntimeLogger {
  log(severity: number, message: string, ...vars: unknown[]): void;
}

export interface RuntimeResponse {
  runId: string;
  outputData: Record<string, unknown>;
  traceData: { trace: unknown[]; totalDuration: number };
  errorOutput: Array<{ title: string; detail: string }>;
  runtimeErrors: Array<{ title: string; detail: string }>;
}

export interface Manifest {
  project: { id: string; label: string };
  blueprints: Array<{
    slug: string;
    modelId: string;
    label: string;
    jsonPath?: string;
    helpers?: Array<{ modelId: string; label: string; jsonPath: string }>;
  }>;
}

export interface Project {
  manifest: Manifest;
  models: Record<string, LogicFlowModel>;
  helpers?: LogicFlowModel[];
}

export interface RunBlueprintOptions {
  logger?: RuntimeLogger;
}

export function runBlueprint(
  project: Project,
  blueprintSlug: string,
  input: Record<string, unknown>,
  options?: RunBlueprintOptions,
): Promise<RuntimeResponse>;

export interface BlueprintDescription {
  input: Record<string, unknown>;
  output: Record<string, unknown>;
}

export function describeBlueprint(
  project: Project,
  blueprintSlug: string,
): BlueprintDescription;
