import type { ContractFunctionArgs } from "viem"; import type { EvmAddress, HexBytes } from "./evm.js"; import { type BigintLike, type ProtocolExecutionPlan, type ProtocolTransaction } from "./protocol-plans.js"; import { cobuildCommunityTerminalPayAbi } from "./protocol-terminal-funding-shared.js"; export type CommunityTerminalPayRouteInput = { goalIds?: readonly BigintLike[]; weights?: readonly BigintLike[]; }; export type CommunityTerminalPayRoute = { goalIds: readonly bigint[]; weights: readonly number[]; }; export type CommunityTerminalPayArgs = ContractFunctionArgs; export type CommunityTerminalPayTransaction = ProtocolTransaction; export type CommunityTerminalPayWriteContractRequest = { address: EvmAddress; abi: typeof cobuildCommunityTerminalPayAbi; functionName: "pay"; args: CommunityTerminalPayArgs; value?: bigint; }; export type CommunityTerminalPayPlan = ProtocolExecutionPlan<"community.pay"> & { chainId: number; network: "base"; terminal: EvmAddress; projectId: bigint; token: EvmAddress; amount: bigint; beneficiary: EvmAddress; minReturnedTokens: bigint; memo: string; route: CommunityTerminalPayRoute; jbMetadata: HexBytes; metadata: HexBytes; approvalIncluded: boolean; transaction: CommunityTerminalPayTransaction; writeContract: CommunityTerminalPayWriteContractRequest; }; type CommunityTerminalPayPlanParams = { terminal?: string; projectId: BigintLike; token?: string; amount: BigintLike; beneficiary: string; minReturnedTokens?: BigintLike; memo?: string; route?: CommunityTerminalPayRouteInput; jbMetadata?: string; network?: string; }; export declare function buildCommunityTerminalPayPlan(params: CommunityTerminalPayPlanParams): CommunityTerminalPayPlan; export declare function buildCommunityTerminalPayWriteContractRequest(params: CommunityTerminalPayPlanParams): CommunityTerminalPayWriteContractRequest; export declare function buildCommunityTerminalPayTransaction(params: CommunityTerminalPayPlanParams): CommunityTerminalPayTransaction; export {};