import { PopulatedTransaction } from 'ethers'; import { Tokens, Balance } from './tokens'; import { NotVault } from './notvault'; export type Policy = { policy_type: string; upper: bigint; lower: bigint; start: number; expiry: number; counter: number; maxUse: number; callers_address: string[]; callers_id: bigint[]; minSignatories: number; }; export declare class Groups { vault: NotVault; tokens: Tokens; constructor(vault: NotVault, tokens: Tokens); registerTx: (members: { address: string; id: BigInt; }[]) => Promise<(PopulatedTransaction | undefined)>; setWalletTx: (id: bigint, address: string) => Promise<(PopulatedTransaction | undefined)>; getPolicies: (groupId: BigInt) => Promise; addPolicyTx: (groupId: BigInt, policy: Policy, amount: BigInt, deal: { address: string; group_id: BigInt; id: BigInt; }) => Promise<(PopulatedTransaction | undefined)>; getBalance: (id: BigInt, denomination: string, obligor: string, type?: "all" | "in" | "out") => Promise; sendTx: (group: { id: BigInt; vault: NotVault; groups: Groups; }, policy: Policy, denomination: string, obligor: string, destination: string, amount: bigint, oracleAddress?: string, oracleOwner?: string, oracleKeySender?: bigint | string, oracleValueSender?: bigint | string, oracleKeyRecipient?: bigint | string, oracleValueRecipient?: bigint | string, unlockSender?: number, unlockReceiver?: number, dealId?: bigint) => Promise<{ idHash: string; createRequestTx: PopulatedTransaction; setBalanceTx: PopulatedTransaction; privateAfterBalance: string; privateAfterAmount_from: string; privateAfterAmount_to: string; }>; retreiveTx: (group: { vault: NotVault; groups: Groups; }, idHash: string) => Promise<{ acceptRequestTx: PopulatedTransaction; setBalanceTx: PopulatedTransaction; privateAfterBalance: string; sendRequest: any; }>; }