import { a as TObject, s as TString } from "../../helpers-DutyHbVD.mjs";
import { t as TUnsafe } from "../../unsafe-C_mX8nG4.mjs";
import { t as TNumber } from "../../number-BDPWg_Sz.mjs";
import { t as TOptional } from "../../optional-Bis1WTKK.mjs";

//#region extensions/crypto/src/tools/governance.d.ts
/**
 * Governance Tool — DAO proposals, voting, and delegation.
 *
 * Actions:
 *   proposals       — List proposals from a Snapshot space or on-chain Governor
 *   vote            — Vote on a proposal (Snapshot off-chain or on-chain Governor)
 *   delegate        — Delegate voting power to another address
 *   voting_power    — Check voting power on a space/protocol
 *   spaces          — Search Snapshot spaces
 *   governors       — List known on-chain Governors
 *
 * Uses Snapshot GraphQL API (off-chain) and direct Governor contract calls (on-chain).
 */
declare function createGovernanceTool(): {
  name: string;
  label: string;
  ownerOnly: boolean;
  description: string;
  parameters: TObject<{
    action: TUnsafe<"delegate" | "proposals" | "vote" | "voting_power" | "spaces" | "governors">;
    space: TOptional<TString>;
    proposal_id: TOptional<TString>;
    choice: TOptional<TString>;
    reason: TOptional<TString>;
    delegatee: TOptional<TString>;
    state: TOptional<TString>;
    address: TOptional<TString>;
    limit: TOptional<TNumber>;
  }>;
  execute: (_toolCallId: string, args: unknown) => Promise<{
    content: Array<{
      type: "text";
      text: string;
    }>;
    details: unknown;
  }>;
};
//#endregion
export { createGovernanceTool };
//# sourceMappingURL=governance.d.mts.map