/** * pop treasury propose-swap — governance proposal for a treasury token swap * through a Curve-style pool. * * Option 0 executes three calls: PaymentManager.withdraw(token → Executor), * ERC20.approve(pool), pool.exchange(i, j, dx, min_dy). withdraw is * executor-only on-chain (verified against contracts origin/main * src/PaymentManager.sol), hence the governance wrap. DESTRUCTIVE: puts a * treasury swap on the ballot, so non-interactive runs must pass --yes. * * Amount decimals: --amount uses the from-token's decimals, --min-out the * to-token's (known-token table, 18 as default). When --min-out is omitted * the default is 95% of the pool quote (falling back to 95% of the input * when the quote is unavailable). */ import type { Argv, ArgumentsCamelCase } from 'yargs'; interface ProposeSwapArgs { org: string; 'from-token': string; 'to-token': string; amount: number; 'min-out'?: number; 'pool': string; 'from-index': number; 'to-index': number; duration: number; chain?: number; rpc?: string; 'private-key'?: string; 'dry-run'?: boolean; yes?: boolean; preflight?: boolean; } export declare const proposeSwapHandler: { builder: (yargs: Argv) => Argv<{ "from-token": string; } & { "to-token": string; } & { amount: number; } & { "min-out": number | undefined; } & { pool: string; } & { "from-index": number; } & { "to-index": number; } & { duration: number; }>; handler: (argv: ArgumentsCamelCase) => Promise; }; export {};