defmodule Jido.Chat.GitHub.Transport do @moduledoc "Transport contract for GitHub REST API calls used by the adapter." @callback create_issue_comment(String.t(), String.t(), integer(), String.t(), keyword()) :: {:ok, map()} | {:error, term()} @callback create_issue(String.t(), String.t(), String.t(), String.t() | nil, keyword()) :: {:ok, map()} | {:error, term()} @callback update_issue_comment( String.t(), String.t(), integer() | String.t(), String.t(), keyword() ) :: {:ok, map()} | {:error, term()} @callback delete_issue_comment(String.t(), String.t(), integer() | String.t(), keyword()) :: :ok | {:error, term()} @callback get_issue(String.t(), String.t(), integer(), keyword()) :: {:ok, map()} | {:error, term()} @callback list_issue_comments(String.t(), String.t(), integer(), keyword()) :: {:ok, list(map())} | {:error, term()} @callback get_issue_comment(String.t(), String.t(), integer() | String.t(), keyword()) :: {:ok, map()} | {:error, term()} @callback list_issues(String.t(), String.t(), keyword()) :: {:ok, list(map())} | {:error, term()} @callback create_issue_reaction(String.t(), String.t(), integer(), String.t(), keyword()) :: {:ok, map()} | {:error, term()} @callback create_issue_comment_reaction( String.t(), String.t(), integer() | String.t(), String.t(), keyword() ) :: {:ok, map()} | {:error, term()} @callback list_issue_reactions(String.t(), String.t(), integer(), keyword()) :: {:ok, list(map())} | {:error, term()} @callback list_issue_comment_reactions( String.t(), String.t(), integer() | String.t(), keyword() ) :: {:ok, list(map())} | {:error, term()} @callback delete_issue_reaction( String.t(), String.t(), integer(), integer() | String.t(), keyword() ) :: :ok | {:error, term()} @callback delete_issue_comment_reaction( String.t(), String.t(), integer() | String.t(), integer() | String.t(), keyword() ) :: :ok | {:error, term()} end