import type { EvmAddress, HexBytes } from "./evm.js"; import { type ProtocolContractCallStep, type ProtocolPlanStep, type ProtocolTransaction, type BigintLike } from "./protocol-plans.js"; export declare const cobuildGoalTerminalPayAbi: readonly [{ readonly type: "function"; readonly name: "pay"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "projectId"; readonly type: "uint256"; }, { readonly name: "token"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "beneficiary"; readonly type: "address"; }, { readonly name: "minReturnedTokens"; readonly type: "uint256"; }, { readonly name: "memo"; readonly type: "string"; }, { readonly name: "metadata"; readonly type: "bytes"; }]; readonly outputs: readonly [{ readonly name: "beneficiaryTokenCount"; readonly type: "uint256"; }]; }]; export declare const cobuildCommunityTerminalPayAbi: readonly [{ readonly type: "function"; readonly name: "pay"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "projectId"; readonly type: "uint256"; }, { readonly name: "token"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "beneficiary"; readonly type: "address"; }, { readonly name: "minReturnedTokens"; readonly type: "uint256"; }, { readonly name: "memo"; readonly type: "string"; }, { readonly name: "metadata"; readonly type: "bytes"; }]; readonly outputs: readonly [{ readonly name: "beneficiaryTokenCount"; readonly type: "uint256"; }]; }]; export declare const cobuildCommunityTerminalAddToBalanceAbi: readonly [{ readonly type: "function"; readonly name: "addToBalanceOf"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "projectId"; readonly type: "uint256"; }, { readonly name: "token"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "shouldReturnHeldFees"; readonly type: "bool"; }, { readonly name: "memo"; readonly type: "string"; }, { readonly name: "metadata"; readonly type: "bytes"; }]; readonly outputs: readonly []; }]; export declare function resolveTerminalFundingToken(token?: string): EvmAddress; export declare function isNativeTerminalFundingToken(token: EvmAddress): boolean; export declare function resolveTerminalFundingValueEth(token: EvmAddress, amount: BigintLike, label: string): string; export declare function resolveTerminalFundingMemo(memo?: string): string; export declare function resolveTerminalFundingMetadata(metadata: string | undefined, label: string): HexBytes; export declare function resolveCommunityTerminalAddress(terminal?: string): EvmAddress; export declare function buildTerminalFundingApprovalPlan(params: { tokenAddress: EvmAddress; terminalAddress: EvmAddress; amount: BigintLike; terminalLabel: string; }): { approvalIncluded: boolean; preconditions: string[]; steps: ProtocolPlanStep[]; } | { approvalIncluded: boolean; preconditions: string[]; steps: readonly []; }; export declare function buildTerminalFundingPlanArtifacts(params: { tokenAddress: EvmAddress; terminalAddress: EvmAddress; amount: BigintLike; terminalLabel: string; callStep: TStep; nativePreconditions?: readonly string[]; }): { approvalIncluded: boolean; preconditions: readonly string[]; transaction: ProtocolTransaction; steps: readonly ProtocolPlanStep[]; }; export declare function resolveCommunityTerminalPayMetadata(params: { goalIds?: readonly BigintLike[]; weights?: readonly BigintLike[]; jbMetadata?: string; weightOverflowMessage?: (label: string) => string; }): { metadata: HexBytes; goalIds: bigint[]; weights: number[]; jbMetadata: HexBytes; }; export declare function encodeCommunityTerminalPayMetadata(params: { goalIds?: readonly BigintLike[]; weights?: readonly BigintLike[]; jbMetadata?: string; }): { metadata: HexBytes; goalIds: bigint[]; weights: number[]; jbMetadata: HexBytes; };