import { IProviderAccount } from '@multiversx/sdk-wallet-connect-provider/out'; import { Transaction, Message } from '../../../lib/sdkCore'; import { IDAppProviderOptions, IDAppProviderAccount } from '../../../lib/sdkDappUtils'; import { SignTransactionsOptionsType } from '../../../providers/DappProvider/helpers/signTransactions/signTransactionsWithProvider'; import { IProvider, ProviderType } from '../../../providers/types/providerFactory.types'; export type LoginOptionsTypes = { token?: string; }; export declare abstract class BaseProviderStrategy implements IProvider { protected address?: string; protected _login: ((options?: LoginOptionsTypes) => Promise) | null; protected loginAbortController: AbortController | null; constructor(address?: string); abstract init(): Promise; abstract logout(): Promise; abstract getType(): T; abstract getAddress(): Promise; abstract setAccount(account: IDAppProviderAccount): void; abstract isInitialized(): boolean; isConnected?(): boolean; getAccount(): IDAppProviderAccount | null; signTransaction(_transaction: Transaction, _options?: SignTransactionsOptionsType): Promise; abstract signTransactions(transactions: Transaction[], options?: IDAppProviderOptions): Promise; abstract signMessage(messageToSign: Message, options?: IDAppProviderOptions): Promise; login(options?: LoginOptionsTypes): Promise<{ address: string; signature: string; }>; cancelLogin: () => void; protected loginOperation: (options?: LoginOptionsTypes) => Promise<{ address: string; signature: string; }>; /** * Initializes the provider by setting the address if it is not already set. */ protected initializeAddress: () => void; cancelAction: (() => Promise) | undefined; /** * This method should be overridden by subclasses to handle cancel login event. */ protected initSignState(): Promise<{ onClose: () => Promise<{}>; manager: null; } | { onClose: ({ shouldCancelAction }?: { shouldCancelAction?: boolean | undefined; }) => Promise; manager: import("../../../managers/internal/PendingTransactionsStateManager").PendingTransactionsStateManager; }>; }