import { PermissionType } from "./permissions"; import { CreateTransactionInterface } from "arweave/web/common"; import { SignatureOptions } from "arweave/web/lib/crypto/crypto-interface"; declare global { interface Window { weavemask: { connect: typeof connect; getActiveAddress: typeof getActiveAddress; getAllAddresses: typeof getAllAddresses; createTransaction: typeof createTransaction; getPermissions: typeof getPermissions; }; } interface WindowEventMap { walletSwitch: CustomEvent<{ address: string; }>; weaveMaskLoaded: CustomEvent<{}>; } } /** * Check if the WeaveMask extension is installed * * @returns installed */ export declare function isAvailable(): boolean; /** * Connect to WeaveMask and request permissions * * @param permissions The permissions the site wants to use * * @returns connected */ export declare function connect(permissions: PermissionType[]): Promise; /** * Get the current active/used address from WeaveMask * * Requires the `ACCESS_ADDRESS` permission * * @returns address */ export declare function getActiveAddress(): Promise; /** * Get all wallet addresses added to WeaveMask * * Requires the `ACCESS_ALL_ADDRESSES` permission * * @returns addresses */ export declare function getAllAddresses(): Promise; /** * Create and sign an Arweave transaction, than post it * * Requires the `CREATE_TRANSACTION` permission * * @param attributes Transaction params, must have `data` or * `target` and `quantity` * @param signatureOptions Optional signature options * * @returns TransactionID */ export declare function createTransaction(attributes: Partial, signatureOptions?: SignatureOptions): Promise; /** * Get the added/allowed permissions for this site * * @returns permissions */ export declare function getPermissions(): Promise; export * from "./permissions";