use serde::{Deserialize, Serialize};
use std::collections::HashMap;
pub use turbomcp_types::{GetPromptResult, Prompt, PromptArgument, PromptMessage};
use super::core::Cursor;
pub type PromptInput = HashMap<String, serde_json::Value>;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct ListPromptsRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<Cursor>,
#[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
pub _meta: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ListPromptsResult {
pub prompts: Vec<Prompt>,
#[serde(rename = "nextCursor", skip_serializing_if = "Option::is_none")]
pub next_cursor: Option<Cursor>,
#[serde(skip_serializing_if = "Option::is_none")]
pub _meta: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetPromptRequest {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub arguments: Option<PromptInput>,
#[serde(skip_serializing_if = "Option::is_none")]
pub _meta: Option<serde_json::Value>,
}