import MarkdownImage from "/src/components/MarkdownImage";
import { Box, Typography, Grid } from "@mui/material";
import Link from "@docusaurus/Link";
import { VscGithubInverted } from "react-icons/vsc";
import { FiType } from "react-icons/fi";
import { SiTypescript } from "react-icons/si";
import { SiJavascript } from "react-icons/si";
import { SiPython } from "react-icons/si";
import { SiRust } from "react-icons/si";
import { SiPowershell } from "react-icons/si";
import { VscJson } from "react-icons/vsc";
import { GoLinkExternal } from "react-icons/go";
import { SerumIcon } from "/src/components/icons/SerumIcon";

<Typography variant="body2" sx={{ fontSize: "1.5em" }}>
  Switchboard's libraries provide a client interface to interact with
  Switchboard V2 on-chain
</Typography>

| Library                                                                                                                                                                       | Description                                                                                    |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| <Link className="nowrap" to="/api/tasks"><VscJson className="devicons" fontSize="large" /> switchboard-tasks</Link>                                                           | Protobuf definitions for the various supported task definitions to build job definitions from. |
| <Link className="nowrap" to="/api/cli"><SiPowershell className="devicons" fontSize="large" /> switchboardv2-cli</Link>                                                        | A Command Line Interface (CLI) to interact with the Switchboardv2 program.                     |
| <Link className="nowrap" to="/api/ts" target="_blank"><SiTypescript className="devicons" fontSize="large" /> switchboardv2-api <GoLinkExternal className="devicons" /></Link> | A typescript library of utility functions to interact with the Switchboardv2 program.          |
| <Link className="nowrap" to="/api/ts-lite" target="_blank"><SiTypescript className="devicons" fontSize="large" /> sbv2-lite <GoLinkExternal className="devicons" /></Link>    | A typescript "Lite" client to deserialize aggregator accounts.                                 |
| <Link className="nowrap" to="/api/py" target="_blank"><SiPython className="devicons" fontSize="large" /> switchboardpy <GoLinkExternal className="devicons" /></Link>         | A python library of utility functions to interact with the Switchboardv2 program.              |
| <Link className="nowrap" to="https://docs.rs/switchboard-v2"><SiRust className="devicons" /> switchboard-v2 <GoLinkExternal className="devicons" /></Link>                    | A rust library of utility functions to interact with the Switchboardv2 program on-chain.       |
