{
  "name": "betfair-exchange-api",
  "version": "1.0.0",
  "description": "A TypeScript client for the Betfair Exchange API",
  "author": "Your Name",
  "license": "MIT",
  "mcpVersion": "1.0.0",
  "mcpType": "typescript-library",
  "mcpFormat": "json",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/yourusername/betfair-exchange-api.git"
  },
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "dependencies": {
    "axios": "^1.3.4"
  },
  "devDependencies": {
    "@types/jest": "^29.5.14",
    "@types/node": "^18.15.11",
    "jest": "^29.7.0",
    "ts-jest": "^29.2.6",
    "typescript": "^5.0.3"
  },
  "files": [
    "dist",
    "README.md",
    "LICENSE"
  ],
  "components": [
    {
      "name": "BetfairClient",
      "description": "Main client for interacting with the Betfair Exchange REST APIs",
      "file": "src/betfair-api-client.ts",
      "type": "class",
      "exports": [
        {
          "name": "BetfairClient",
          "description": "Main client class for interacting with Betfair APIs"
        },
        {
          "name": "BettingAPI",
          "description": "Client for Betfair Exchange Betting API"
        },
        {
          "name": "AccountsAPI",
          "description": "Client for Betfair Exchange Accounts API"
        },
        {
          "name": "HeartbeatAPI",
          "description": "Client for Betfair Exchange Heartbeat API"
        }
      ],
      "methods": [
        {
          "name": "constructor",
          "description": "Initialize a new BetfairClient instance",
          "parameters": [
            {
              "name": "appKey",
              "type": "string",
              "description": "Your Betfair Application Key"
            },
            {
              "name": "config",
              "type": "BetfairClientConfig",
              "description": "Optional configuration object",
              "optional": true
            }
          ]
        },
        {
          "name": "authenticate",
          "description": "Authenticate using certificate-based non-interactive login",
          "parameters": [
            {
              "name": "username",
              "type": "string",
              "description": "Betfair username"
            },
            {
              "name": "password",
              "type": "string",
              "description": "Betfair password"
            },
            {
              "name": "certificatePath",
              "type": "string",
              "description": "Path to SSL certificate file",
              "optional": true
            }
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "authenticateInteractive",
          "description": "Authenticate using username/password interactive login",
          "parameters": [
            {
              "name": "username",
              "type": "string",
              "description": "Betfair username"
            },
            {
              "name": "password",
              "type": "string",
              "description": "Betfair password"
            }
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "keepAlive",
          "description": "Keep the session alive",
          "returns": "Promise<boolean>"
        },
        {
          "name": "logout",
          "description": "Logout and terminate the session",
          "returns": "Promise<boolean>"
        }
      ]
    },
    {
      "name": "BetfairStreamClient",
      "description": "Client for Betfair Exchange Streaming API",
      "file": "src/stream-api-client.ts",
      "type": "class",
      "exports": [
        {
          "name": "BetfairStreamClient",
          "description": "Client for Betfair Exchange Streaming API"
        },
        {
          "name": "StreamOperation",
          "description": "Enum for stream operation types"
        },
        {
          "name": "ChangeType",
          "description": "Enum for change types"
        },
        {
          "name": "SegmentType",
          "description": "Enum for segmentation types"
        }
      ],
      "methods": [
        {
          "name": "constructor",
          "description": "Initialize a new streaming client",
          "parameters": [
            {
              "name": "appKey",
              "type": "string",
              "description": "Your Betfair Application Key"
            },
            {
              "name": "sessionToken",
              "type": "string",
              "description": "Valid session token from authentication"
            },
            {
              "name": "config",
              "type": "BetfairStreamConfig",
              "description": "Optional configuration object",
              "optional": true
            }
          ]
        },
        {
          "name": "connect",
          "description": "Connect to the Betfair Stream API",
          "returns": "void"
        },
        {
          "name": "disconnect",
          "description": "Disconnect from the Betfair Stream API",
          "returns": "void"
        },
        {
          "name": "authenticate",
          "description": "Authenticate with the streaming service",
          "returns": "void"
        },
        {
          "name": "subscribeToMarkets",
          "description": "Subscribe to market data streams",
          "parameters": [
            {
              "name": "marketFilter",
              "type": "object",
              "description": "Filter for selecting markets",
              "optional": true
            },
            {
              "name": "marketDataFilter",
              "type": "MarketDataFilter",
              "description": "Filter for market data fields",
              "optional": true
            },
            {
              "name": "conflateMs",
              "type": "number",
              "description": "Conflation rate in milliseconds",
              "optional": true
            },
            {
              "name": "heartbeatMs",
              "type": "number",
              "description": "Heartbeat interval in milliseconds",
              "optional": true
            },
            {
              "name": "segmentationEnabled",
              "type": "boolean",
              "description": "Whether to enable segmentation",
              "optional": true
            }
          ],
          "returns": "void"
        },
        {
          "name": "subscribeToOrders",
          "description": "Subscribe to order data streams",
          "parameters": [
            {
              "name": "orderFilter",
              "type": "OrderFilter",
              "description": "Filter for orders",
              "optional": true
            },
            {
              "name": "conflateMs",
              "type": "number",
              "description": "Conflation rate in milliseconds",
              "optional": true
            },
            {
              "name": "heartbeatMs",
              "type": "number",
              "description": "Heartbeat interval in milliseconds",
              "optional": true
            },
            {
              "name": "segmentationEnabled",
              "type": "boolean",
              "description": "Whether to enable segmentation",
              "optional": true
            }
          ],
          "returns": "void"
        }
      ],
      "events": [
        {
          "name": "connected",
          "description": "Emitted when successfully connected to the stream"
        },
        {
          "name": "disconnected",
          "description": "Emitted when disconnected from the stream"
        },
        {
          "name": "error",
          "description": "Emitted when an error occurs",
          "parameters": [
            {
              "name": "error",
              "type": "Error",
              "description": "The error that occurred"
            }
          ]
        },
        {
          "name": "status",
          "description": "Emitted when a status message is received",
          "parameters": [
            {
              "name": "status",
              "type": "StatusMessage",
              "description": "The status message"
            }
          ]
        },
        {
          "name": "marketChange",
          "description": "Emitted when market data changes",
          "parameters": [
            {
              "name": "marketChange",
              "type": "MarketChangeMessage",
              "description": "Market change message"
            }
          ]
        },
        {
          "name": "orderChange",
          "description": "Emitted when order data changes",
          "parameters": [
            {
              "name": "orderChange",
              "type": "OrderChangeMessage",
              "description": "Order change message"
            }
          ]
        }
      ]
    }
  ],
  "types": [
    {
      "name": "BetfairClientConfig",
      "file": "src/betfair-api-client.ts",
      "description": "Configuration options for BetfairClient",
      "properties": [
        {
          "name": "apiUrl",
          "type": "string",
          "optional": true,
          "description": "Custom API endpoint URL"
        },
        {
          "name": "authUrl",
          "type": "string",
          "optional": true,
          "description": "Custom authentication endpoint URL"
        }
      ]
    },
    {
      "name": "BetfairStreamConfig",
      "file": "src/stream-api-client.ts",
      "description": "Configuration options for BetfairStreamClient",
      "properties": [
        {
          "name": "streamApiUrl",
          "type": "string",
          "optional": true,
          "description": "Custom stream API endpoint URL"
        }
      ]
    }
  ]
}
