import Transport from "@ledgerhq/hw-transport"; import { Message } from "@multiversx/sdk-core/out/core/message"; import { Transaction } from "@multiversx/sdk-core/out/core/transaction"; import { IHWWalletApp } from "./interface"; import { TransportType } from "./transport-type.enum"; export interface IProviderAccount { address: string; signature?: string; } export declare class HWProvider { private _hwApp?; private _addressIndex; private _transport; private _transportType; private _account; constructor(_hwApp?: IHWWalletApp | undefined); get addressIndex(): number; get hwApp(): IHWWalletApp | undefined; get transportType(): TransportType | undefined; /** * Creates transport and initialises ledger app. */ init(type?: TransportType): Promise; getTransport(transportType?: TransportType): Promise<{ transport: Transport; transportType: TransportType; }>; private getTransportByType; private getUSBTransport; private getBLETransport; private getHIDTransport; isLedgerTransportSupported(): Promise; isBLESupported(): Promise; isWebUSBSupported(): Promise; isWebHIDSupported(): Promise; /** * Returns true if init() was previously called successfully */ isInitialized(): boolean; /** * Mocked function, returns isInitialized as an async function */ isConnected(): boolean; /** * Returns the current account if it exists */ getAccount(): IProviderAccount | null; /** * Sets the current account * @param account * @returns void */ setAccount(account: IProviderAccount): void; /** * Performs a login request by setting the selected index in Ledger and returning that address */ login(options?: { addressIndex: number; }): Promise; setAddressIndex(addressIndex: number): Promise; getAccounts(page?: number, pageSize?: number): Promise; /** * Mocks a logout request by returning true */ logout(): Promise; /** * Fetches current selected ledger address */ getAddress(): Promise; signTransaction(transaction: Transaction): Promise; private cloneTransaction; signTransactions(transactions: Transaction[]): Promise; signMessage(messageToSign: Message): Promise; private getMessageSize; tokenLogin(options: { token: Buffer; addressIndex?: number; }): Promise<{ signature: Buffer; address: string; }>; private getAppFeatures; }