import { TAddress } from '../../models/TAddress'; import { TAccount } from '../../models/TAccount'; import { ClientEventsStream, TClientEventsStreamData } from '../../clients/ClientEventsStream'; import { ContractBase } from '../../contracts/ContractBase'; import { TxWriter } from '../../txs/TxWriter'; import { ITxLogItem } from '../../txs/receipt/ITxLogItem'; import { Web3Client } from '../../clients/Web3Client'; import { IBlockchainExplorer } from '../../explorer/IBlockchainExplorer'; import { SubjectStream } from '../../class/SubjectStream'; import type { TAbiItem } from '../../types/TAbi'; import type { TEth } from '../../models/TEth'; import type { TOverrideReturns } from '../../utils/types'; export declare class RefundEscrow extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TRefundEscrowTypes; $meta: { class: string; }; $constructor(deployer: TSender, beneficiary_: TAddress): Promise; beneficiary(): Promise; beneficiaryWithdraw(sender: TSender): Promise; close(sender: TSender): Promise; deposit(sender: TSender, refundee: TAddress): Promise; depositsOf(payee: TAddress): Promise; enableRefunds(sender: TSender): Promise; owner(): Promise; renounceOwnership(sender: TSender): Promise; state(): Promise; transferOwnership(sender: TSender, newOwner: TAddress): Promise; withdraw(sender: TSender, payee: TAddress): Promise; withdrawalAllowed(input0: TAddress): Promise; $call(): IRefundEscrowTxCaller; $signed(): TOverrideReturns>; $data(): IRefundEscrowTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TRefundEscrowTypes['Methods'][TMethod]['arguments']; }; }>; onLog(event: keyof TEvents, cb?: (event: TClientEventsStreamData) => void): ClientEventsStream; getPastLogs(events: TEventName[], options?: TEventLogOptions>): Promise, TEventName>[]>; getPastLogs(event: TEventName, options?: TEventLogOptions>): Promise, TEventName>[]>; onDeposited(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onOwnershipTransferred(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onRefundsClosed(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onRefundsEnabled(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onWithdrawn(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsDeposited(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsOwnershipTransferred(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsRefundsClosed(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsRefundsEnabled(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsWithdrawn(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsDeposited(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { payee?: TAddress; }; }): Promise>[]>; getPastLogsOwnershipTransferred(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { previousOwner?: TAddress; newOwner?: TAddress; }; }): Promise>[]>; getPastLogsRefundsClosed(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsRefundsEnabled(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsWithdrawn(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { payee?: TAddress; }; }): Promise>[]>; abi: TAbiItem[]; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TRefundEscrowTypes = { Events: { Deposited: { outputParams: { payee: TAddress; weiAmount: bigint; }; outputArgs: [payee: TAddress, weiAmount: bigint]; }; OwnershipTransferred: { outputParams: { previousOwner: TAddress; newOwner: TAddress; }; outputArgs: [previousOwner: TAddress, newOwner: TAddress]; }; RefundsClosed: { outputParams: {}; outputArgs: []; }; RefundsEnabled: { outputParams: {}; outputArgs: []; }; Withdrawn: { outputParams: { payee: TAddress; weiAmount: bigint; }; outputArgs: [payee: TAddress, weiAmount: bigint]; }; }; Methods: { beneficiary: { method: "beneficiary"; arguments: []; }; beneficiaryWithdraw: { method: "beneficiaryWithdraw"; arguments: []; }; close: { method: "close"; arguments: []; }; deposit: { method: "deposit"; arguments: [refundee: TAddress]; }; depositsOf: { method: "depositsOf"; arguments: [payee: TAddress]; }; enableRefunds: { method: "enableRefunds"; arguments: []; }; owner: { method: "owner"; arguments: []; }; renounceOwnership: { method: "renounceOwnership"; arguments: []; }; state: { method: "state"; arguments: []; }; transferOwnership: { method: "transferOwnership"; arguments: [newOwner: TAddress]; }; withdraw: { method: "withdraw"; arguments: [payee: TAddress]; }; withdrawalAllowed: { method: "withdrawalAllowed"; arguments: [input0: TAddress]; }; }; }; interface IRefundEscrowTxCaller { beneficiaryWithdraw(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; close(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; deposit(sender: TSender, refundee: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; enableRefunds(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; renounceOwnership(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; transferOwnership(sender: TSender, newOwner: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; withdraw(sender: TSender, payee: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IRefundEscrowTxData { beneficiaryWithdraw(sender: TSender): Promise; close(sender: TSender): Promise; deposit(sender: TSender, refundee: TAddress): Promise; enableRefunds(sender: TSender): Promise; renounceOwnership(sender: TSender): Promise; transferOwnership(sender: TSender, newOwner: TAddress): Promise; withdraw(sender: TSender, payee: TAddress): Promise; } type TEvents = TRefundEscrowTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};