import type { Transaction, TransactionArgument, TransactionObjectArgument } from '@iota/iota-sdk/transactions'; import type { ObjectArgument } from '../types/index.js'; /** * Call the `transfer_policy::new` function to create a new transfer policy. * Returns `transferPolicyCap` */ export declare function createTransferPolicy(tx: Transaction, itemType: string, publisher: ObjectArgument): TransactionObjectArgument; /** * Creates a transfer Policy and returns both the Policy and the Cap. * Used if we want to use the policy before making it a shared object. */ export declare function createTransferPolicyWithoutSharing(tx: Transaction, itemType: string, publisher: ObjectArgument): [TransactionObjectArgument, TransactionObjectArgument]; /** * Converts Transfer Policy to a shared object. */ export declare function shareTransferPolicy(tx: Transaction, itemType: string, transferPolicy: TransactionObjectArgument): void; /** * Call the `transfer_policy::withdraw` function to withdraw profits from a transfer policy. */ export declare function withdrawFromPolicy(tx: Transaction, itemType: string, policy: ObjectArgument, policyCap: ObjectArgument, amount?: string | bigint | null): TransactionObjectArgument; /** * Call the `transfer_policy::confirm_request` function to unblock the * transaction. */ export declare function confirmRequest(tx: Transaction, itemType: string, policy: ObjectArgument, request: TransactionArgument): void; /** * Calls the `transfer_policy::remove_rule` function to remove a Rule from the transfer policy's ruleset. */ export declare function removeTransferPolicyRule(tx: Transaction, itemType: string, ruleType: string, configType: string, policy: ObjectArgument, policyCap: ObjectArgument): void;