/**
 * @vaultfire/langchain — LangChain/LangGraph Integration for Vaultfire Protocol
 *
 * On-chain identity, trust verification, and partnership bonds for AI agents.
 * Deployed on Base, Avalanche, Arbitrum, and Polygon.
 *
 * @example Quick Start (3 lines)
 * ```typescript
 * import { createVaultfireTools } from '@vaultfire/langchain';
 *
 * const tools = createVaultfireTools({ chain: 'base' });
 * // Pass `tools` to your LangChain agent — done.
 * ```
 *
 * @example With signer (for write operations)
 * ```typescript
 * import { createVaultfireTools } from '@vaultfire/langchain';
 *
 * const tools = createVaultfireTools({
 *   chain: 'base',
 *   privateKey: process.env.AGENT_PRIVATE_KEY,  // NEVER hardcode keys
 * });
 * ```
 *
 * @example Read-only (safe for any agent)
 * ```typescript
 * import { createVaultfireReadTools } from '@vaultfire/langchain';
 *
 * const tools = createVaultfireReadTools({ chain: 'arbitrum' });
 * ```
 *
 * @packageDocumentation
 */

// ── Tools (primary API) ──────────────────────────────────────────────────
export {
  createVaultfireTools,
  createVaultfireReadTools,
} from './tools';

export type { VaultfireTool } from './tools';

// ── Client (direct access) ───────────────────────────────────────────────
export { VaultfireClient } from './client';

export type {
  VaultfireClientConfig,
  AgentInfo,
  BondInfo,
  ReputationInfo,
  StreetCred,
  TrustVerification,
} from './client';

// ── Chain Configuration ──────────────────────────────────────────────────
export {
  CHAIN_CONFIG,
  getChainConfig,
  getSupportedChains,
} from './chains';

export type {
  VaultfireChain,
  ChainConfig,
  ChainContracts,
} from './chains';
