import { type ProtocolNetwork } from "./protocol-addresses.js"; import { type ProtocolPlanStep, type ProtocolRiskClass } from "./protocol-plans.js"; export declare const CLI_PROTOCOL_STEP_KIND: "protocol-step"; export declare const CLI_PROTOCOL_PLAN_KIND: "protocol-plan"; declare const CLI_PROTOCOL_ACTION_DESCRIPTORS: { readonly "goal.create": { readonly riskClass: "economic"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GoalFactory"; readonly functionName: "deployOpenGoal"; }, { readonly kind: "contract-call"; readonly contract: "GoalFactory"; readonly functionName: "deployManagedGoal"; }]; }; readonly "stake.deposit-goal": { readonly riskClass: "stake"; readonly allowedSteps: readonly [{ readonly kind: "erc20-approval"; }, { readonly kind: "contract-call"; readonly contract: "GoalStakeVault"; readonly functionName: "depositGoal"; }]; }; readonly "stake.deposit-cobuild": { readonly riskClass: "stake"; readonly allowedSteps: readonly [{ readonly kind: "erc20-approval"; }, { readonly kind: "contract-call"; readonly contract: "GoalStakeVault"; readonly functionName: "depositCobuild"; }]; }; readonly "stake.opt-in-juror": { readonly riskClass: "stake"; readonly allowedSteps: readonly [{ readonly kind: "erc20-approval"; }, { readonly kind: "contract-call"; readonly contract: "GoalStakeVault"; readonly functionName: "optInAsJuror"; }]; }; readonly "stake.request-juror-exit": { readonly riskClass: "stake"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GoalStakeVault"; readonly functionName: "requestJurorExit"; }]; }; readonly "stake.finalize-juror-exit": { readonly riskClass: "stake"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GoalStakeVault"; readonly functionName: "finalizeJurorExit"; }]; }; readonly "stake.set-juror-delegate": { readonly riskClass: "stake"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GoalStakeVault"; readonly functionName: "setJurorDelegate"; }]; }; readonly "stake.prepare-underwriter-withdrawal": { readonly riskClass: "stake"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GoalStakeVault"; readonly functionName: "prepareUnderwriterWithdrawal"; }]; }; readonly "stake.withdraw-goal": { readonly riskClass: "stake"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GoalStakeVault"; readonly functionName: "withdrawGoal"; }]; }; readonly "stake.withdraw-cobuild": { readonly riskClass: "stake"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GoalStakeVault"; readonly functionName: "withdrawCobuild"; }]; }; readonly "premium.checkpoint": { readonly riskClass: "claim"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "PremiumEscrow"; readonly functionName: "checkpoint"; }]; }; readonly "premium.claim": { readonly riskClass: "claim"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "PremiumEscrow"; readonly functionName: "claim"; }]; }; readonly "prize-vault.claim": { readonly riskClass: "claim"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "RoundPrizeVault"; readonly functionName: "claim"; }]; }; readonly "prize-vault.downgrade": { readonly riskClass: "maintenance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "RoundPrizeVault"; readonly functionName: "downgrade"; }]; }; readonly "treasury.donate-goal": { readonly riskClass: "economic"; readonly allowedSteps: readonly [{ readonly kind: "erc20-approval"; }, { readonly kind: "contract-call"; readonly contract: "GoalTreasury"; readonly functionName: "donateUnderlyingAndUpgrade"; }]; }; readonly "treasury.donate-budget": { readonly riskClass: "economic"; readonly allowedSteps: readonly [{ readonly kind: "erc20-approval"; }, { readonly kind: "contract-call"; readonly contract: "BudgetTreasury"; readonly functionName: "donateUnderlyingAndUpgrade"; }]; }; readonly addItem: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "erc20-approval"; }, { readonly kind: "contract-call"; readonly contract: "GeneralizedTCR"; readonly functionName: "addItem"; }]; }; readonly removeItem: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "erc20-approval"; }, { readonly kind: "contract-call"; readonly contract: "GeneralizedTCR"; readonly functionName: "removeItem"; }]; }; readonly challengeRequest: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "erc20-approval"; }, { readonly kind: "contract-call"; readonly contract: "GeneralizedTCR"; readonly functionName: "challengeRequest"; }]; }; readonly executeRequest: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GeneralizedTCR"; readonly functionName: "executeRequest"; }]; }; readonly executeRequestTimeout: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GeneralizedTCR"; readonly functionName: "executeRequestTimeout"; }]; }; readonly submitEvidence: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GeneralizedTCR"; readonly functionName: "submitEvidence"; }]; }; readonly withdrawFeesAndRewards: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "GeneralizedTCR"; readonly functionName: "withdrawFeesAndRewards"; }]; }; readonly commitVote: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "ERC20VotesArbitrator"; readonly functionName: "commitVote"; }]; }; readonly commitVoteFor: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "ERC20VotesArbitrator"; readonly functionName: "commitVoteFor"; }]; }; readonly revealVote: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "ERC20VotesArbitrator"; readonly functionName: "revealVote"; }]; }; readonly executeRuling: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "ERC20VotesArbitrator"; readonly functionName: "executeRuling"; }]; }; readonly withdrawVoterRewards: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "ERC20VotesArbitrator"; readonly functionName: "withdrawVoterRewards"; }]; }; readonly withdrawInvalidRoundRewards: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "ERC20VotesArbitrator"; readonly functionName: "withdrawInvalidRoundRewards"; }]; }; readonly slashVoter: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "ERC20VotesArbitrator"; readonly functionName: "slashVoter"; }]; }; readonly slashVoters: { readonly riskClass: "governance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "ERC20VotesArbitrator"; readonly functionName: "slashVoters"; }]; }; readonly "flow.allocate": { readonly riskClass: "economic"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "Flow"; readonly functionName: "allocate"; }]; }; readonly "flow.sync-allocation": { readonly riskClass: "maintenance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "Flow"; readonly functionName: "syncAllocation"; }]; }; readonly "flow.sync-allocation-for-account": { readonly riskClass: "maintenance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "Flow"; readonly functionName: "syncAllocationForAccount"; }]; }; readonly "flow.clear-stale-allocation": { readonly riskClass: "maintenance"; readonly allowedSteps: readonly [{ readonly kind: "contract-call"; readonly contract: "Flow"; readonly functionName: "clearStaleAllocation"; }]; }; }; export type CliProtocolAction = keyof typeof CLI_PROTOCOL_ACTION_DESCRIPTORS; export type CliProtocolStepAction = CliProtocolAction; export type CliProtocolPlanAction = CliProtocolAction; export type CliProtocolStepRequest = { kind: typeof CLI_PROTOCOL_STEP_KIND; network: ProtocolNetwork; action: TAction; riskClass: ProtocolRiskClass; step: ProtocolPlanStep; }; export type CliProtocolStepLogKind = `protocol-step:${string}`; export type CliProtocolPlanRequest = { kind: typeof CLI_PROTOCOL_PLAN_KIND; network: ProtocolNetwork; action: TAction; riskClass: ProtocolRiskClass; steps: readonly ProtocolPlanStep[]; }; export type CliProtocolPlanLogKind = `protocol-plan:${string}`; export declare function buildCliProtocolStepRequest(params: { network?: string; action: CliProtocolStepAction; riskClass?: ProtocolRiskClass; step: ProtocolPlanStep; }): CliProtocolStepRequest; export declare function validateCliProtocolStepRequest(value: unknown): CliProtocolStepRequest; export declare function buildCliProtocolPlanRequest(params: { network?: string; action: CliProtocolPlanAction; riskClass?: ProtocolRiskClass; steps: readonly ProtocolPlanStep[]; }): CliProtocolPlanRequest; export declare function validateCliProtocolPlanRequest(value: unknown): CliProtocolPlanRequest; export declare function buildCliProtocolStepLogKind(action: string): CliProtocolStepLogKind; export declare function buildCliProtocolPlanLogKind(action: string): CliProtocolPlanLogKind; export {};