import { FungiblePostCondition, StxPostCondition, FungiblePostConditionWire, STXPostConditionWire, ClarityValue, AnchorMode, PostConditionMode } from '@stacks/transactions'; import { StringOnly } from '../utils/helpers.mjs'; import { ContractBaseType, OpenCallFunctionDescriptor, ParameterObjOfDescriptor } from './contractBase.mjs'; import './types.mjs'; type PostConditionPlain = FungiblePostCondition | StxPostCondition; type PostConditionWire = FungiblePostConditionWire | STXPostConditionWire; type PostCondition = PostConditionPlain | PostConditionWire; interface ContractCallOptions { contractAddress: string; contractName: string; functionName: string; functionArgs: ClarityValue[]; anchorMode: AnchorMode; postConditionMode: PostConditionMode; postConditions?: PC[]; } type ComposeTxOptionsFn = , F extends StringOnly, Descriptor extends Contracts[T][F], PC extends PostCondition>(contractName: T, functionName: F, args: Descriptor extends OpenCallFunctionDescriptor ? ParameterObjOfDescriptor : never, options?: { deployerAddress?: string; postConditions?: PC[]; }) => ContractCallOptions; declare const composeTxOptionsFactory: (contracts: T, factoryOptions: { deployerAddress?: string; }) => ComposeTxOptionsFn; export { type ComposeTxOptionsFn, type ContractCallOptions, composeTxOptionsFactory };