import { D as MutationActionName, r as Petrinaut } from "./instance-CBnoTOa_.js";
import { z } from "zod";

//#region src/command-schemas.d.ts
/**
 * AI-callable commands. Keys MUST also appear in
 * {@link commandActionInputSchemas}. A command must be added here (with a
 * full `meta({ description })`) to be exposed to the AI tool bundle.
 */
declare const aiCommandActionInputSchemas: {
  readonly applyAutoLayout: z.ZodObject<{
    askUserFirst: z.ZodBoolean;
  }, z.core.$strict>;
};
/**
 * All commands the host can invoke on the instance. Includes AI-callable
 * commands plus host-only ones (e.g. clipboard paste) that are intentionally
 * absent from the AI tool surface.
 */
declare const commandActionInputSchemas: {
  readonly applyAutoLayout: z.ZodObject<{
    askUserFirst: z.ZodBoolean;
  }, z.core.$strict>;
  readonly applyClipboardPaste: z.ZodObject<{
    payload: z.ZodObject<{
      format: z.ZodLiteral<"petrinaut-sdcpn">;
      version: z.ZodNumber;
      documentId: z.ZodNullable<z.ZodString>;
      data: z.ZodObject<{
        places: z.ZodArray<z.ZodObject<{
          colorId: z.ZodNullable<z.ZodString>;
          dynamicsEnabled: z.ZodBoolean;
          differentialEquationId: z.ZodNullable<z.ZodString>;
          visualizerCode: z.ZodOptional<z.ZodString>;
          x: z.ZodNumber;
          y: z.ZodNumber;
          id: z.ZodString;
          name: z.ZodString;
        }, z.core.$strip>>;
        transitions: z.ZodArray<z.ZodObject<{
          lambdaType: z.ZodEnum<{
            predicate: "predicate";
            stochastic: "stochastic";
          }>;
          lambdaCode: z.ZodString;
          transitionKernelCode: z.ZodString;
          x: z.ZodNumber;
          y: z.ZodNumber;
          id: z.ZodString;
          name: z.ZodString;
          inputArcs: z.ZodArray<z.ZodObject<{
            placeId: z.ZodString;
            weight: z.ZodNumber;
            type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
              inhibitor: "inhibitor";
              standard: "standard";
            }>>>;
          }, z.core.$strip>>;
          outputArcs: z.ZodArray<z.ZodObject<{
            placeId: z.ZodString;
            weight: z.ZodNumber;
          }, z.core.$strip>>;
        }, z.core.$strip>>;
        types: z.ZodArray<z.ZodObject<{
          iconSlug: z.ZodString;
          displayColor: z.ZodString;
          id: z.ZodString;
          name: z.ZodString;
          elements: z.ZodArray<z.ZodObject<{
            type: z.ZodEnum<{
              boolean: "boolean";
              integer: "integer";
              real: "real";
            }>;
            elementId: z.ZodString;
            name: z.ZodString;
          }, z.core.$strip>>;
        }, z.core.$strip>>;
        differentialEquations: z.ZodArray<z.ZodObject<{
          code: z.ZodString;
          id: z.ZodString;
          name: z.ZodString;
          colorId: z.ZodNullable<z.ZodString>;
        }, z.core.$strip>>;
        parameters: z.ZodArray<z.ZodObject<{
          variableName: z.ZodString;
          type: z.ZodEnum<{
            boolean: "boolean";
            integer: "integer";
            real: "real";
          }>;
          defaultValue: z.ZodString;
          id: z.ZodString;
          name: z.ZodString;
        }, z.core.$strip>>;
      }, z.core.$strip>;
    }, z.core.$strip>;
  }, z.core.$strict>;
};
type CommandActionName = keyof typeof commandActionInputSchemas;
type AiCommandActionName = keyof typeof aiCommandActionInputSchemas;
type CommandActionInput<Name extends CommandActionName> = z.infer<(typeof commandActionInputSchemas)[Name]>;
type AiCommandActionInput<Name extends AiCommandActionName> = z.infer<(typeof aiCommandActionInputSchemas)[Name]>;
//#endregion
//#region src/ai.d.ts
type PetrinautAiTool<InputSchema extends z.ZodType> = {
  description: string;
  inputSchema: InputSchema;
};
type PetrinautAiTools = { [Name in keyof typeof petrinautAiToolInputSchemas]: PetrinautAiTool<(typeof petrinautAiToolInputSchemas)[Name]> };
declare const getLatestNetDefinitionToolName = "getLatestNetDefinition";
declare const getNetCompilationErrorsToolName = "getNetCompilationErrors";
declare const setNetTitleToolName = "setNetTitle";
declare const readPetrinautDocToolName = "readPetrinautDoc";
declare const petrinautDocNames: readonly ["drawing-a-net", "petri-net-extensions", "useful-patterns", "simulation", "scenarios", "experiments", "ai-assistant", "visual-settings", "examples"];
type PetrinautDocName = (typeof petrinautDocNames)[number];
declare const petrinautDocSummaries: Record<PetrinautDocName, string>;
declare const setNetTitleToolInputSchema: z.ZodObject<{
  title: z.ZodString;
}, z.core.$strict>;
declare const readPetrinautDocToolInputSchema: z.ZodObject<{
  doc: z.ZodEnum<{
    "ai-assistant": "ai-assistant";
    "drawing-a-net": "drawing-a-net";
    examples: "examples";
    experiments: "experiments";
    "petri-net-extensions": "petri-net-extensions";
    scenarios: "scenarios";
    simulation: "simulation";
    "useful-patterns": "useful-patterns";
    "visual-settings": "visual-settings";
  }>;
}, z.core.$strict>;
declare const petrinautAiToolInputSchemas: {
  addPlace: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    colorId: z.ZodNullable<z.ZodString>;
    dynamicsEnabled: z.ZodBoolean;
    differentialEquationId: z.ZodNullable<z.ZodString>;
    visualizerCode: z.ZodOptional<z.ZodString>;
    showAsInitialState: z.ZodOptional<z.ZodBoolean>;
    x: z.ZodNumber;
    y: z.ZodNumber;
  }, z.core.$strict>;
  updatePlace: z.ZodObject<{
    placeId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      colorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
      dynamicsEnabled: z.ZodOptional<z.ZodBoolean>;
      differentialEquationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
      visualizerCode: z.ZodOptional<z.ZodOptional<z.ZodString>>;
      showAsInitialState: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strict>;
  }, z.core.$strict>;
  updatePlacePosition: z.ZodObject<{
    placeId: z.ZodString;
    position: z.ZodObject<{
      x: z.ZodNumber;
      y: z.ZodNumber;
    }, z.core.$strict>;
  }, z.core.$strict>;
  removePlace: z.ZodObject<{
    placeId: z.ZodString;
  }, z.core.$strict>;
  addTransition: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    inputArcs: z.ZodArray<z.ZodObject<{
      placeId: z.ZodString;
      weight: z.ZodNumber;
      type: z.ZodEnum<{
        inhibitor: "inhibitor";
        standard: "standard";
      }>;
    }, z.core.$strict>>;
    outputArcs: z.ZodArray<z.ZodObject<{
      placeId: z.ZodString;
      weight: z.ZodNumber;
    }, z.core.$strict>>;
    lambdaType: z.ZodEnum<{
      predicate: "predicate";
      stochastic: "stochastic";
    }>;
    lambdaCode: z.ZodString;
    transitionKernelCode: z.ZodString;
    x: z.ZodNumber;
    y: z.ZodNumber;
  }, z.core.$strict>;
  updateTransition: z.ZodObject<{
    transitionId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      lambdaType: z.ZodOptional<z.ZodEnum<{
        predicate: "predicate";
        stochastic: "stochastic";
      }>>;
      lambdaCode: z.ZodOptional<z.ZodString>;
      transitionKernelCode: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>;
  updateTransitionPosition: z.ZodObject<{
    transitionId: z.ZodString;
    position: z.ZodObject<{
      x: z.ZodNumber;
      y: z.ZodNumber;
    }, z.core.$strict>;
  }, z.core.$strict>;
  removeTransition: z.ZodObject<{
    transitionId: z.ZodString;
  }, z.core.$strict>;
  addArc: z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    placeId: z.ZodString;
    weight: z.ZodNumber;
  }, z.core.$strict>;
  removeArc: z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    placeId: z.ZodString;
  }, z.core.$strict>;
  updateArcWeight: z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    placeId: z.ZodString;
    weight: z.ZodNumber;
  }, z.core.$strict>;
  updateArcType: z.ZodObject<{
    transitionId: z.ZodString;
    placeId: z.ZodString;
    type: z.ZodEnum<{
      inhibitor: "inhibitor";
      standard: "standard";
    }>;
  }, z.core.$strict>;
  updateArcPlace: z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    oldPlaceId: z.ZodString;
    newPlaceId: z.ZodString;
  }, z.core.$strict>;
  addType: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    iconSlug: z.ZodString;
    displayColor: z.ZodString;
    elements: z.ZodArray<z.ZodObject<{
      elementId: z.ZodString;
      name: z.ZodString;
      type: z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>;
    }, z.core.$strict>>;
  }, z.core.$strict>;
  updateType: z.ZodObject<{
    typeId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      iconSlug: z.ZodOptional<z.ZodString>;
      displayColor: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>;
  removeType: z.ZodObject<{
    typeId: z.ZodString;
  }, z.core.$strict>;
  addTypeElement: z.ZodObject<{
    typeId: z.ZodString;
    element: z.ZodObject<{
      elementId: z.ZodString;
      name: z.ZodString;
      type: z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>;
    }, z.core.$strict>;
  }, z.core.$strict>;
  updateTypeElement: z.ZodObject<{
    typeId: z.ZodString;
    elementId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      type: z.ZodOptional<z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>>;
    }, z.core.$strict>;
  }, z.core.$strict>;
  removeTypeElement: z.ZodObject<{
    typeId: z.ZodString;
    elementId: z.ZodString;
  }, z.core.$strict>;
  moveTypeElement: z.ZodObject<{
    typeId: z.ZodString;
    elementId: z.ZodString;
    toIndex: z.ZodNumber;
  }, z.core.$strict>;
  addDifferentialEquation: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    colorId: z.ZodNullable<z.ZodString>;
    code: z.ZodString;
  }, z.core.$strict>;
  updateDifferentialEquation: z.ZodObject<{
    equationId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      colorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
      code: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>;
  removeDifferentialEquation: z.ZodObject<{
    equationId: z.ZodString;
  }, z.core.$strict>;
  addParameter: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    variableName: z.ZodString;
    type: z.ZodEnum<{
      boolean: "boolean";
      integer: "integer";
      real: "real";
    }>;
    defaultValue: z.ZodString;
  }, z.core.$strict>;
  updateParameter: z.ZodObject<{
    parameterId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      variableName: z.ZodOptional<z.ZodString>;
      type: z.ZodOptional<z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>>;
      defaultValue: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>;
  removeParameter: z.ZodObject<{
    parameterId: z.ZodString;
  }, z.core.$strict>;
  addScenario: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    scenarioParameters: z.ZodArray<z.ZodObject<{
      type: z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        ratio: "ratio";
        real: "real";
      }>;
      identifier: z.ZodString;
      default: z.ZodNumber;
    }, z.core.$strict>>;
    parameterOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
    initialState: z.ZodDiscriminatedUnion<[z.ZodObject<{
      type: z.ZodLiteral<"per_place">;
      content: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodArray<z.ZodNumber>>]>>;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"code">;
      content: z.ZodString;
    }, z.core.$strict>], "type">;
  }, z.core.$strict>;
  updateScenario: z.ZodObject<{
    scenarioId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
      scenarioParameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodEnum<{
          boolean: "boolean";
          integer: "integer";
          ratio: "ratio";
          real: "real";
        }>;
        identifier: z.ZodString;
        default: z.ZodNumber;
      }, z.core.$strict>>>;
      parameterOverrides: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>>;
      initialState: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"per_place">;
        content: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodArray<z.ZodNumber>>]>>;
      }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"code">;
        content: z.ZodString;
      }, z.core.$strict>], "type">>;
    }, z.core.$strict>;
  }, z.core.$strict>;
  removeScenario: z.ZodObject<{
    scenarioId: z.ZodString;
  }, z.core.$strict>;
  addMetric: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    code: z.ZodString;
  }, z.core.$strict>;
  updateMetric: z.ZodObject<{
    metricId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
      code: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>;
  removeMetric: z.ZodObject<{
    metricId: z.ZodString;
  }, z.core.$strict>;
  deleteItemsByIds: z.ZodObject<{
    items: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
      type: z.ZodLiteral<"place">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"transition">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"arc">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"type">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"differentialEquation">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"parameter">;
      id: z.ZodString;
    }, z.core.$strict>], "type">>;
  }, z.core.$strict>;
  commitNodePositions: z.ZodObject<{
    commits: z.ZodArray<z.ZodObject<{
      id: z.ZodString;
      itemType: z.ZodEnum<{
        place: "place";
        transition: "transition";
      }>;
      position: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
      }, z.core.$strict>;
    }, z.core.$strict>>;
  }, z.core.$strict>;
  applyAutoLayout: z.ZodObject<{
    askUserFirst: z.ZodBoolean;
  }, z.core.$strict>;
  getLatestNetDefinition: z.ZodObject<{}, z.core.$strict>;
  getNetCompilationErrors: z.ZodObject<{}, z.core.$strict>;
  setNetTitle: z.ZodObject<{
    title: z.ZodString;
  }, z.core.$strict>;
  readPetrinautDoc: z.ZodObject<{
    doc: z.ZodEnum<{
      "ai-assistant": "ai-assistant";
      "drawing-a-net": "drawing-a-net";
      examples: "examples";
      experiments: "experiments";
      "petri-net-extensions": "petri-net-extensions";
      scenarios: "scenarios";
      simulation: "simulation";
      "useful-patterns": "useful-patterns";
      "visual-settings": "visual-settings";
    }>;
  }, z.core.$strict>;
};
declare const petrinautAiMutationTools: {
  readonly addPlace: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    colorId: z.ZodNullable<z.ZodString>;
    dynamicsEnabled: z.ZodBoolean;
    differentialEquationId: z.ZodNullable<z.ZodString>;
    visualizerCode: z.ZodOptional<z.ZodString>;
    showAsInitialState: z.ZodOptional<z.ZodBoolean>;
    x: z.ZodNumber;
    y: z.ZodNumber;
  }, z.core.$strict>>;
  readonly updatePlace: PetrinautAiTool<z.ZodObject<{
    placeId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      colorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
      dynamicsEnabled: z.ZodOptional<z.ZodBoolean>;
      differentialEquationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
      visualizerCode: z.ZodOptional<z.ZodOptional<z.ZodString>>;
      showAsInitialState: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly updatePlacePosition: PetrinautAiTool<z.ZodObject<{
    placeId: z.ZodString;
    position: z.ZodObject<{
      x: z.ZodNumber;
      y: z.ZodNumber;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly removePlace: PetrinautAiTool<z.ZodObject<{
    placeId: z.ZodString;
  }, z.core.$strict>>;
  readonly addTransition: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    inputArcs: z.ZodArray<z.ZodObject<{
      placeId: z.ZodString;
      weight: z.ZodNumber;
      type: z.ZodEnum<{
        inhibitor: "inhibitor";
        standard: "standard";
      }>;
    }, z.core.$strict>>;
    outputArcs: z.ZodArray<z.ZodObject<{
      placeId: z.ZodString;
      weight: z.ZodNumber;
    }, z.core.$strict>>;
    lambdaType: z.ZodEnum<{
      predicate: "predicate";
      stochastic: "stochastic";
    }>;
    lambdaCode: z.ZodString;
    transitionKernelCode: z.ZodString;
    x: z.ZodNumber;
    y: z.ZodNumber;
  }, z.core.$strict>>;
  readonly updateTransition: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      lambdaType: z.ZodOptional<z.ZodEnum<{
        predicate: "predicate";
        stochastic: "stochastic";
      }>>;
      lambdaCode: z.ZodOptional<z.ZodString>;
      transitionKernelCode: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly updateTransitionPosition: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    position: z.ZodObject<{
      x: z.ZodNumber;
      y: z.ZodNumber;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly removeTransition: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
  }, z.core.$strict>>;
  readonly addArc: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    placeId: z.ZodString;
    weight: z.ZodNumber;
  }, z.core.$strict>>;
  readonly removeArc: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    placeId: z.ZodString;
  }, z.core.$strict>>;
  readonly updateArcWeight: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    placeId: z.ZodString;
    weight: z.ZodNumber;
  }, z.core.$strict>>;
  readonly updateArcType: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    placeId: z.ZodString;
    type: z.ZodEnum<{
      inhibitor: "inhibitor";
      standard: "standard";
    }>;
  }, z.core.$strict>>;
  readonly updateArcPlace: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    oldPlaceId: z.ZodString;
    newPlaceId: z.ZodString;
  }, z.core.$strict>>;
  readonly addType: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    iconSlug: z.ZodString;
    displayColor: z.ZodString;
    elements: z.ZodArray<z.ZodObject<{
      elementId: z.ZodString;
      name: z.ZodString;
      type: z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>;
    }, z.core.$strict>>;
  }, z.core.$strict>>;
  readonly updateType: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      iconSlug: z.ZodOptional<z.ZodString>;
      displayColor: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly removeType: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
  }, z.core.$strict>>;
  readonly addTypeElement: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    element: z.ZodObject<{
      elementId: z.ZodString;
      name: z.ZodString;
      type: z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly updateTypeElement: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    elementId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      type: z.ZodOptional<z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly removeTypeElement: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    elementId: z.ZodString;
  }, z.core.$strict>>;
  readonly moveTypeElement: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    elementId: z.ZodString;
    toIndex: z.ZodNumber;
  }, z.core.$strict>>;
  readonly addDifferentialEquation: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    colorId: z.ZodNullable<z.ZodString>;
    code: z.ZodString;
  }, z.core.$strict>>;
  readonly updateDifferentialEquation: PetrinautAiTool<z.ZodObject<{
    equationId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      colorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
      code: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly removeDifferentialEquation: PetrinautAiTool<z.ZodObject<{
    equationId: z.ZodString;
  }, z.core.$strict>>;
  readonly addParameter: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    variableName: z.ZodString;
    type: z.ZodEnum<{
      boolean: "boolean";
      integer: "integer";
      real: "real";
    }>;
    defaultValue: z.ZodString;
  }, z.core.$strict>>;
  readonly updateParameter: PetrinautAiTool<z.ZodObject<{
    parameterId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      variableName: z.ZodOptional<z.ZodString>;
      type: z.ZodOptional<z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>>;
      defaultValue: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly removeParameter: PetrinautAiTool<z.ZodObject<{
    parameterId: z.ZodString;
  }, z.core.$strict>>;
  readonly addScenario: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    scenarioParameters: z.ZodArray<z.ZodObject<{
      type: z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        ratio: "ratio";
        real: "real";
      }>;
      identifier: z.ZodString;
      default: z.ZodNumber;
    }, z.core.$strict>>;
    parameterOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
    initialState: z.ZodDiscriminatedUnion<[z.ZodObject<{
      type: z.ZodLiteral<"per_place">;
      content: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodArray<z.ZodNumber>>]>>;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"code">;
      content: z.ZodString;
    }, z.core.$strict>], "type">;
  }, z.core.$strict>>;
  readonly updateScenario: PetrinautAiTool<z.ZodObject<{
    scenarioId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
      scenarioParameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodEnum<{
          boolean: "boolean";
          integer: "integer";
          ratio: "ratio";
          real: "real";
        }>;
        identifier: z.ZodString;
        default: z.ZodNumber;
      }, z.core.$strict>>>;
      parameterOverrides: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>>;
      initialState: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"per_place">;
        content: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodArray<z.ZodNumber>>]>>;
      }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"code">;
        content: z.ZodString;
      }, z.core.$strict>], "type">>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly removeScenario: PetrinautAiTool<z.ZodObject<{
    scenarioId: z.ZodString;
  }, z.core.$strict>>;
  readonly addMetric: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    code: z.ZodString;
  }, z.core.$strict>>;
  readonly updateMetric: PetrinautAiTool<z.ZodObject<{
    metricId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
      code: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  readonly removeMetric: PetrinautAiTool<z.ZodObject<{
    metricId: z.ZodString;
  }, z.core.$strict>>;
  readonly deleteItemsByIds: PetrinautAiTool<z.ZodObject<{
    items: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
      type: z.ZodLiteral<"place">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"transition">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"arc">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"type">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"differentialEquation">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"parameter">;
      id: z.ZodString;
    }, z.core.$strict>], "type">>;
  }, z.core.$strict>>;
  readonly commitNodePositions: PetrinautAiTool<z.ZodObject<{
    commits: z.ZodArray<z.ZodObject<{
      id: z.ZodString;
      itemType: z.ZodEnum<{
        place: "place";
        transition: "transition";
      }>;
      position: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
      }, z.core.$strict>;
    }, z.core.$strict>>;
  }, z.core.$strict>>;
};
declare const petrinautAiCommandTools: {
  readonly applyAutoLayout: PetrinautAiTool<z.ZodObject<{
    askUserFirst: z.ZodBoolean;
  }, z.core.$strict>>;
};
declare const petrinautAiTools: {
  addPlace: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    colorId: z.ZodNullable<z.ZodString>;
    dynamicsEnabled: z.ZodBoolean;
    differentialEquationId: z.ZodNullable<z.ZodString>;
    visualizerCode: z.ZodOptional<z.ZodString>;
    showAsInitialState: z.ZodOptional<z.ZodBoolean>;
    x: z.ZodNumber;
    y: z.ZodNumber;
  }, z.core.$strict>>;
  updatePlace: PetrinautAiTool<z.ZodObject<{
    placeId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      colorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
      dynamicsEnabled: z.ZodOptional<z.ZodBoolean>;
      differentialEquationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
      visualizerCode: z.ZodOptional<z.ZodOptional<z.ZodString>>;
      showAsInitialState: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  updatePlacePosition: PetrinautAiTool<z.ZodObject<{
    placeId: z.ZodString;
    position: z.ZodObject<{
      x: z.ZodNumber;
      y: z.ZodNumber;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  removePlace: PetrinautAiTool<z.ZodObject<{
    placeId: z.ZodString;
  }, z.core.$strict>>;
  addTransition: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    inputArcs: z.ZodArray<z.ZodObject<{
      placeId: z.ZodString;
      weight: z.ZodNumber;
      type: z.ZodEnum<{
        inhibitor: "inhibitor";
        standard: "standard";
      }>;
    }, z.core.$strict>>;
    outputArcs: z.ZodArray<z.ZodObject<{
      placeId: z.ZodString;
      weight: z.ZodNumber;
    }, z.core.$strict>>;
    lambdaType: z.ZodEnum<{
      predicate: "predicate";
      stochastic: "stochastic";
    }>;
    lambdaCode: z.ZodString;
    transitionKernelCode: z.ZodString;
    x: z.ZodNumber;
    y: z.ZodNumber;
  }, z.core.$strict>>;
  updateTransition: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      lambdaType: z.ZodOptional<z.ZodEnum<{
        predicate: "predicate";
        stochastic: "stochastic";
      }>>;
      lambdaCode: z.ZodOptional<z.ZodString>;
      transitionKernelCode: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  updateTransitionPosition: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    position: z.ZodObject<{
      x: z.ZodNumber;
      y: z.ZodNumber;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  removeTransition: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
  }, z.core.$strict>>;
  addArc: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    placeId: z.ZodString;
    weight: z.ZodNumber;
  }, z.core.$strict>>;
  removeArc: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    placeId: z.ZodString;
  }, z.core.$strict>>;
  updateArcWeight: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    placeId: z.ZodString;
    weight: z.ZodNumber;
  }, z.core.$strict>>;
  updateArcType: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    placeId: z.ZodString;
    type: z.ZodEnum<{
      inhibitor: "inhibitor";
      standard: "standard";
    }>;
  }, z.core.$strict>>;
  updateArcPlace: PetrinautAiTool<z.ZodObject<{
    transitionId: z.ZodString;
    arcDirection: z.ZodEnum<{
      input: "input";
      output: "output";
    }>;
    oldPlaceId: z.ZodString;
    newPlaceId: z.ZodString;
  }, z.core.$strict>>;
  addType: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    iconSlug: z.ZodString;
    displayColor: z.ZodString;
    elements: z.ZodArray<z.ZodObject<{
      elementId: z.ZodString;
      name: z.ZodString;
      type: z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>;
    }, z.core.$strict>>;
  }, z.core.$strict>>;
  updateType: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      iconSlug: z.ZodOptional<z.ZodString>;
      displayColor: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  removeType: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
  }, z.core.$strict>>;
  addTypeElement: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    element: z.ZodObject<{
      elementId: z.ZodString;
      name: z.ZodString;
      type: z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  updateTypeElement: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    elementId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      type: z.ZodOptional<z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  removeTypeElement: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    elementId: z.ZodString;
  }, z.core.$strict>>;
  moveTypeElement: PetrinautAiTool<z.ZodObject<{
    typeId: z.ZodString;
    elementId: z.ZodString;
    toIndex: z.ZodNumber;
  }, z.core.$strict>>;
  addDifferentialEquation: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    colorId: z.ZodNullable<z.ZodString>;
    code: z.ZodString;
  }, z.core.$strict>>;
  updateDifferentialEquation: PetrinautAiTool<z.ZodObject<{
    equationId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      colorId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
      code: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  removeDifferentialEquation: PetrinautAiTool<z.ZodObject<{
    equationId: z.ZodString;
  }, z.core.$strict>>;
  addParameter: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    variableName: z.ZodString;
    type: z.ZodEnum<{
      boolean: "boolean";
      integer: "integer";
      real: "real";
    }>;
    defaultValue: z.ZodString;
  }, z.core.$strict>>;
  updateParameter: PetrinautAiTool<z.ZodObject<{
    parameterId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      variableName: z.ZodOptional<z.ZodString>;
      type: z.ZodOptional<z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        real: "real";
      }>>;
      defaultValue: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  removeParameter: PetrinautAiTool<z.ZodObject<{
    parameterId: z.ZodString;
  }, z.core.$strict>>;
  addScenario: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    scenarioParameters: z.ZodArray<z.ZodObject<{
      type: z.ZodEnum<{
        boolean: "boolean";
        integer: "integer";
        ratio: "ratio";
        real: "real";
      }>;
      identifier: z.ZodString;
      default: z.ZodNumber;
    }, z.core.$strict>>;
    parameterOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
    initialState: z.ZodDiscriminatedUnion<[z.ZodObject<{
      type: z.ZodLiteral<"per_place">;
      content: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodArray<z.ZodNumber>>]>>;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"code">;
      content: z.ZodString;
    }, z.core.$strict>], "type">;
  }, z.core.$strict>>;
  updateScenario: PetrinautAiTool<z.ZodObject<{
    scenarioId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
      scenarioParameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodEnum<{
          boolean: "boolean";
          integer: "integer";
          ratio: "ratio";
          real: "real";
        }>;
        identifier: z.ZodString;
        default: z.ZodNumber;
      }, z.core.$strict>>>;
      parameterOverrides: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>>;
      initialState: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"per_place">;
        content: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodArray<z.ZodNumber>>]>>;
      }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"code">;
        content: z.ZodString;
      }, z.core.$strict>], "type">>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  removeScenario: PetrinautAiTool<z.ZodObject<{
    scenarioId: z.ZodString;
  }, z.core.$strict>>;
  addMetric: PetrinautAiTool<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    code: z.ZodString;
  }, z.core.$strict>>;
  updateMetric: PetrinautAiTool<z.ZodObject<{
    metricId: z.ZodString;
    update: z.ZodObject<{
      name: z.ZodOptional<z.ZodString>;
      description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
      code: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
  }, z.core.$strict>>;
  removeMetric: PetrinautAiTool<z.ZodObject<{
    metricId: z.ZodString;
  }, z.core.$strict>>;
  deleteItemsByIds: PetrinautAiTool<z.ZodObject<{
    items: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
      type: z.ZodLiteral<"place">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"transition">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"arc">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"type">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"differentialEquation">;
      id: z.ZodString;
    }, z.core.$strict>, z.ZodObject<{
      type: z.ZodLiteral<"parameter">;
      id: z.ZodString;
    }, z.core.$strict>], "type">>;
  }, z.core.$strict>>;
  commitNodePositions: PetrinautAiTool<z.ZodObject<{
    commits: z.ZodArray<z.ZodObject<{
      id: z.ZodString;
      itemType: z.ZodEnum<{
        place: "place";
        transition: "transition";
      }>;
      position: z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
      }, z.core.$strict>;
    }, z.core.$strict>>;
  }, z.core.$strict>>;
  applyAutoLayout: PetrinautAiTool<z.ZodObject<{
    askUserFirst: z.ZodBoolean;
  }, z.core.$strict>>;
  getLatestNetDefinition: {
    description: string;
    inputSchema: z.ZodObject<{}, z.core.$strict>;
  };
  getNetCompilationErrors: {
    description: string;
    inputSchema: z.ZodObject<{}, z.core.$strict>;
  };
  setNetTitle: {
    description: string;
    inputSchema: z.ZodObject<{
      title: z.ZodString;
    }, z.core.$strict>;
  };
  readPetrinautDoc: {
    description: string;
    inputSchema: z.ZodObject<{
      doc: z.ZodEnum<{
        "ai-assistant": "ai-assistant";
        "drawing-a-net": "drawing-a-net";
        examples: "examples";
        experiments: "experiments";
        "petri-net-extensions": "petri-net-extensions";
        scenarios: "scenarios";
        simulation: "simulation";
        "useful-patterns": "useful-patterns";
        "visual-settings": "visual-settings";
      }>;
    }, z.core.$strict>;
  };
};
type PetrinautAiToolName = keyof typeof petrinautAiTools;
type PetrinautAiToolInput<Name extends PetrinautAiToolName> = z.input<(typeof petrinautAiTools)[Name]["inputSchema"]>;
/**
 * Writable tool callbacks exposed to the AI: every mutation, plus the subset
 * of commands registered in {@link aiCommandActionInputSchemas}. Read-only
 * tools (e.g. `getLatestNetDefinition`) are handled by the dispatcher
 * separately and are not part of this bundle.
 */
type PetrinautAiWritableCallbacks = Pick<Petrinaut["mutations"], MutationActionName> & Pick<Petrinaut["commands"], AiCommandActionName>;
declare function createPetrinautAiWritableCallbacks(instance: Petrinaut): PetrinautAiWritableCallbacks;
declare const petrinautAiPrompt: string;
//#endregion
export { CommandActionInput as C, commandActionInputSchemas as E, AiCommandActionName as S, aiCommandActionInputSchemas as T, readPetrinautDocToolInputSchema as _, PetrinautAiWritableCallbacks as a, setNetTitleToolName as b, getLatestNetDefinitionToolName as c, petrinautAiMutationTools as d, petrinautAiPrompt as f, petrinautDocSummaries as g, petrinautDocNames as h, PetrinautAiTools as i, getNetCompilationErrorsToolName as l, petrinautAiTools as m, PetrinautAiToolInput as n, PetrinautDocName as o, petrinautAiToolInputSchemas as p, PetrinautAiToolName as r, createPetrinautAiWritableCallbacks as s, PetrinautAiTool as t, petrinautAiCommandTools as u, readPetrinautDocToolName as v, CommandActionName as w, AiCommandActionInput as x, setNetTitleToolInputSchema as y };
//# sourceMappingURL=ai-DeVI4U0V.d.ts.map