///
import { SignersCoordinatorSignResponse } from '@dfns/private-api-client';
import { SendPaymentTxParams, SendTransactionParams } from './requests';
import { TransactionsHistory } from './responses';
import { BroadcastTransactionRequest, BroadcastTransactionResponse, GetAddressResponse, GetBalanceRequest, GetBalanceResponse, SignRequest, SignResponse, TransferRequest, TransferResponse } from '.';
export interface WalletInterface {
getAddress: () => Promise;
getBalance: (assets: string[]) => Promise;
getTransactions: (assets: string[]) => Promise;
sendPaymentTx: (paymentTxParams: SendPaymentTxParams) => Promise;
sendTx?: (txParams: SendTransactionParams) => Promise<{
hash: string;
response: unknown;
}>;
getAddress2?: () => Promise;
getBalance2?: (request: GetBalanceRequest) => Promise>;
transfer?: (request: TransferRequest) => Promise;
broadcastTransaction?: (request: BroadcastTransactionRequest) => Promise;
sign2?: (request: SignRequest) => Promise;
}
export type WalletBalanceResponse = {
walletId: string;
balance: string;
};
export type WalletAddressResponse = {
walletId: string;
address: string;
};
export type WalletTransactionsResponse = {
walletId: string;
transactions: TransactionsHistory;
};
export type WalletPostTransactionResponse = {
walletId: string;
tx: string;
response?: unknown;
};
export type GenerateWalletResponse = {
key: string;
id: string;
parties: string;
threshold: string;
};
export interface DfnsSigner {
getPublicKey(): Buffer;
sign(hash: Buffer): Promise;
}