import { BTCNodeClient } from '../../btcNode'; export declare type SendTxCallback = (txHash: string) => void; export interface RedeemDetails { redeem_id: string; amount: string; fee: string; requester: string; vault_id: string; btc_address: string; } export declare enum IssueStatus { PENDING = "1", COMPLETED = "2", CANCELED = "3" } export declare enum RedeemStatus { PENDING = "1", COMPLETED = "2", CANCELED = "3" } export interface IssueDetails { issue_id: string; amount: string; fee: string; requester: string; vault_id: string; btc_address: string; } export interface TransactionReceipt { blockHash: string; blockNumber: number; contractAddress: null; cumulativeGasUsed: number; events: Record; gasUsed: number; logsBloom: string; status: boolean; to: string; from: string; transactionHash: string; } interface Event { returnValues: T; address: string; blockHash: string; blockNumber: number; logIndex: number; removed: boolean; transactionHash: string; transactionIndex: number; id: string; raw: { data: string; topics: string[]; }; event: string; signature: string; } interface IssueRequestEvent extends Event { event: 'IssueRequest'; } interface LockCollateralEvent extends Event<{ sender: string; amount: string; }> { event: 'LockCollateral'; } interface IncreaseToBeIssuedTokensEvent extends Event<{ vaultId: string; amount: string; }> { event: 'IncreaseToBeIssuedTokens'; } export interface RequestIssueReturn extends TransactionReceipt { events: { IssueRequest: IssueRequestEvent; LockCollateral: LockCollateralEvent; IncreaseToBeIssuedTokens: IncreaseToBeIssuedTokensEvent; }; } export default interface IOneBTCClient { btcNodeClient: BTCNodeClient; init(): Promise; setUseOneWallet(value: boolean): boolean; setUseMathWallet(value: boolean): boolean; setUseMetamask(value: boolean): boolean; requestIssue(amount: number, vaultAddress: string, oneAmount: string, sendTxCallback?: SendTxCallback): Promise; getRedeemStatus(requester: string, redeemId: string): Promise; getIssueStatus(requester: string, issueId: string): Promise; executeIssue(requester: string, issueId: string, btcTxHash: string, vaultBtcAddress: string, sendTxCallback?: SendTxCallback): Promise; cancelIssue(requester: string, issueId: string, sendTxCallback?: SendTxCallback): Promise; cancelRedeem(requester: string, issueId: string, reimburse: boolean, sendTxCallback?: SendTxCallback): Promise; getIssueId(requester: string): Promise; transfer(recipient: string, amount: number, sendTxCallback?: SendTxCallback): Promise; requestRedeem(amountOneBtc: number, btcAddress: string, vaultId: string, sendTxCallback?: SendTxCallback): Promise; executeRedeem(requester: string, redeemId: string, rawTx: any, sendTxCallback?: SendTxCallback): Promise; balanceOf(requester: string): Promise; register_vault(x: string, y: string, sendTxCallback?: SendTxCallback): Promise; lockAdditionalCollateral(amount: number | string, sendTxCallback: SendTxCallback): Promise; withdrawCollateral(amount: number | string, sendTxCallback: SendTxCallback): Promise; getIssueDetails(txHash: string): Promise; getRedeemDetails(txHash: string): Promise; extendVaultLockPeriod(vaultId: string, lockPeriod: number, sendTxCallback: SendTxCallback): Promise; getVaultLockExpireAt(lockPeriod: string): Promise; lockedVaults(vaultId: string): Promise; updateVaultAccClaimableRewards(vaultId: string, sendTxCallback: SendTxCallback): Promise; claimRewardsAndLock(vaultId: string, sendTxCallback: SendTxCallback): Promise; claimRewards(vaultId: string, sendTxCallback: SendTxCallback): Promise; } export {};