/** * pop vote cast — cast a weighted vote on a proposal. * * Input safety kept from the original implementation: option/weight counts * must match, weights must be non-negative and sum to exactly 100 (the * contract's invariant) — all validated before any network traffic. * * --proposal accepts a numeric ID or a fuzzy title query (resolved against * the voting contract's recent proposals with preferActive: an ended homonym * never shadows the one still-open match, since you can only cast on an * open proposal). * * Pre-flight (skippable with --no-preflight): gas balance + the proposal * exists on-chain (proposalsCount > id) via one Multicall3 round-trip. */ import type { Argv, ArgumentsCamelCase } from 'yargs'; interface CastArgs { org: string; type: string; proposal: string; options: string; weights: string; chain?: number; rpc?: string; 'private-key'?: string; 'dry-run'?: boolean; yes?: boolean; preflight?: boolean; 'idempotency-key'?: string; 'no-idempotency'?: boolean; } export declare const castHandler: { builder: (yargs: Argv) => Argv<{ type: string; } & { proposal: string; } & { options: string; } & { weights: string; } & { "idempotency-key": string | undefined; } & { "no-idempotency": boolean; }>; handler: (argv: ArgumentsCamelCase) => Promise; }; export {};