//#region src/a2a-types.d.ts
interface A2AMockOptions {
  port?: number;
  host?: string;
}
interface A2AAgentDefinition {
  name: string;
  description?: string;
  version?: string;
  skills?: Array<{
    id: string;
    name: string;
    description?: string;
    tags?: string[];
  }>;
  capabilities?: {
    streaming?: boolean;
  };
}
type A2APart = {
  text: string;
} | {
  data: unknown;
  mediaType?: string;
} | {
  url: string;
  mediaType?: string;
};
interface A2AArtifact {
  artifactId?: string;
  name?: string;
  description?: string;
  parts: A2APart[];
}
interface A2ATaskResponse {
  artifacts?: A2AArtifact[];
}
type A2AStreamEvent = {
  type: "status";
  state: A2ATaskState;
} | {
  type: "artifact";
  parts: A2APart[];
  append?: boolean;
  lastChunk?: boolean;
  name?: string;
};
interface A2ATask {
  id: string;
  contextId: string;
  status: {
    state: A2ATaskState;
    timestamp: string;
  };
  artifacts: A2AArtifact[];
  history: A2AMessage[];
}
type A2ARole = "ROLE_USER" | "ROLE_AGENT";
interface A2AMessage {
  messageId: string;
  role: A2ARole;
  parts: A2APart[];
}
type A2ATaskState = "TASK_STATE_SUBMITTED" | "TASK_STATE_WORKING" | "TASK_STATE_COMPLETED" | "TASK_STATE_FAILED" | "TASK_STATE_CANCELED" | "TASK_STATE_INPUT_REQUIRED";
//# sourceMappingURL=a2a-types.d.ts.map
//#endregion
export { A2AAgentDefinition, A2AArtifact, A2AMessage, A2AMockOptions, A2APart, A2ARole, A2AStreamEvent, A2ATask, A2ATaskResponse, A2ATaskState };
//# sourceMappingURL=a2a-types.d.cts.map