import { Files } from './files'; import { PopulatedTransaction } from 'ethers'; import { Tokens, SendRequest, Cashflows } from './tokens'; import { NotVault } from './notvault'; export type DealPackage = { counterpart: string; deal_address: string; deal_group_id: bigint; denomination: string; obligor: string; notional: bigint; expiry: number; data: any; initial_payments?: { amount: bigint; payments: { oracle_address?: string; oracle_owner?: string; oracle_key_sender?: string | number; oracle_value_sender?: string | number; oracle_value_sender_secret?: string | number; oracle_key_recipient?: string | number; oracle_value_recipient?: string | number; oracle_value_recipient_secret?: string | number; unlock_sender?: number; unlock_receiver?: number; }[]; }; }; export type Deal = DealPackage & { dealId: bigint; owner: string; key: number; payments: SendRequest[]; cashflows: Cashflows; meta: { accepted: number; cancelled_owner: number; cancelled_counterpart: number; created: number; total_locked: bigint; }; }; export type DealStruct = { tokenId: bigint; tokenUri: string; created: number; cancelledOwner: number; cancelledCounterpart: number; accepted: number; expiry: number; }; export declare class Deals { vault: NotVault; tokens: Tokens; files: Files; constructor(vault: NotVault, tokens: Tokens, files: Files); getDeal: (id: BigInt, getFile?: ((uri: string) => Promise) | undefined) => Promise; getAssets: (getFile?: ((uri: string) => Promise) | undefined) => Promise; getLiabilities: (getFile?: ((uri: string) => Promise) | undefined) => Promise; createTx: (pkg: DealPackage, getFileId: (data: any) => Promise) => Promise<{ idHash: string; safeMintTx: PopulatedTransaction; }>; addPaymentsTx: (dealId: BigInt, getFile: (data: any) => Promise) => Promise<(PopulatedTransaction | undefined)[]>; acceptTx: (dealId: BigInt, getFile?: ((uri: string) => Promise) | undefined) => Promise<{ acceptTx: PopulatedTransaction; setBalanceTx: PopulatedTransaction | undefined; destination: string | undefined; afterBalance: string | undefined; amounts: { idHash: string; privateAmount_from: string; privateAmount_to: string; }[] | undefined; }>; approveTx: (key: string, value: string) => Promise; }