import { ConnectedMessageData, MessageParams, SignQueryParams, TransactionParams, WindowMessage } from '../types'; import { WINDOW_MESSAGES } from '../constants'; export declare type WalletState = Required & { walletOpen: boolean; walletWindowActive: boolean; }; declare type SetWalletState = (state: WalletState) => void; export declare class WalletService { private setWalletState; private walletWindow; private eventListeners; private walletUrl; private messageListener; private boundMessageListener; state: WalletState; constructor(walletUrl?: string); private closeWindow; setWalletUrl(url: string): void; addEventListener(event: WINDOW_MESSAGES, cb: (state: WalletState & { message: WindowMessage; }) => void): void; removeEventListener(event: WINDOW_MESSAGES): void; removeAllEventListeners(): void; updateState(): void; setStateUpdater(setWalletState: SetWalletState): void; connect(): void; /** * Initialize the wallet with the parameters returned from {@link connect} * * @remarks * Make sure a {@link WalletService} instance has been created via {@link useWalletService} or the constructor. */ initialize(state: ConnectedMessageData): void; disconnect(): void; /** * Initiate a transaction, submitting any message to be signed. * Message needs to be a base64 string. * Use {@link MessageService.buildMessage} to build message. * Use {@link MessageService.createAnyMessageBase64} to turn message in a base64 string that is ready to be consumed here. * * @remarks * Requires wallet to be initialized via {@link connect} or {@link initialize} * After signing, the signed payload can be accessed by subscribing to the {@link WINDOW_MESSAGES.TRANSACTION_COMPLETE} event via {@link addEventListener} * @remarks * Custom Gas Price and Denom can be used when passing `gasPrice` and `denom` in the object to transaction (both values are required or the default price and denom will be used) */ transaction({ msgAnyB64, ...rest }: TransactionParams): void; /** * Send a payload to the wallet to be signed * * @remarks * Requires wallet to be initialized via {@link connect} or {@link initialize} * After signing, the signed payload can be accessed by subscribing to the {@link WINDOW_MESSAGES.SIGNATURE_COMPLETE} event via {@link addEventListener} */ sign({ payload, ...tx }: Omit): void; private openWallet; private pollForOpenWindow; } export default WalletService;