import type { AppInfo, GatewayConfig, PermissionType } from 'arconnect'; import { ArweaveInterface } from 'arweave-wallet-connector/lib/Arweave'; import React, { ReactNode } from 'react'; export type supportedWallets = 'arconnect' | 'arweave.app' | 'window.arweaveWallet'; export type AlgorithmInterface = AlgorithmIdentifier | RsaPssParams | EcdsaParams; export interface options { algorithm: string; hash: string; salt?: string; } type BufferEncoding = 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'; export interface createSignatureInterface { data: string; signatureParams?: AlgorithmInterface; returnType?: 'Uint8Array' | BufferEncoding; sigType?: 'new' | 'old'; } export interface arweaveConnectInterface { permissions: PermissionType[]; AppInfo?: AppInfo; gatewayConfig?: GatewayConfig; walletChoice?: supportedWallets; } export interface arweaveContextInterface { api: any | ArweaveInterface; walletPermissions: PermissionType[]; walletConnected: boolean; walletType: supportedWallets | undefined; address: string; searchingWallet: boolean; getActiveAddress: () => Promise; arweaveConnect: ({ permissions, AppInfo, gatewayConfig, walletChoice, }: arweaveConnectInterface) => Promise<{ api: any; }>; arweaveDisconnect: () => Promise; getPublicKey: () => Promise; createSignature: ({ data, signatureParams, returnType, sigType, }: createSignatureInterface) => Promise; } export declare const defaultSignatureParams: { name: string; saltLength: number; }; export declare const defaultAlgorithmParams: { name: string; hash: string; saltLength: number; }; export declare const ArweavePermissions: PermissionType[]; export { PermissionType }; export declare const shortenAddress: (address: string, maxLength?: number) => string; export declare const ArweaveContext: React.Context; export declare function useArweave(): arweaveContextInterface; export declare function getWalletPermissions(arweaveWallet: any): Promise; export declare function getActiveAddress(): Promise; export type ArweaveProviderProps = { children: any; permissions?: PermissionType[]; AppInfo?: AppInfo; gatewayConfig?: GatewayConfig; defaultWallet?: supportedWallets; }; export declare const ArweaveProvider: ({ children, permissions, AppInfo, gatewayConfig, }: ArweaveProviderProps) => React.JSX.Element; interface ConnectButtonInterface { walletChoice: supportedWallets; permissions: PermissionType[]; className?: string; onConnectCallback?: () => void; gatewayConfig?: GatewayConfig; AppInfo?: { name: string; logo: string; }; children?: ReactNode; } export declare const ConnectButton: ({ walletChoice, permissions, className, onConnectCallback, AppInfo, gatewayConfig, children, }: ConnectButtonInterface) => React.JSX.Element; interface DisconnectButtonProps { className?: string; } export declare const DisconnectButton: ({ className }: DisconnectButtonProps) => React.JSX.Element; interface ArweaveModalProps { isOpen: boolean; onClose: () => void; } export declare const ArweaveModal: ({ isOpen, onClose }: ArweaveModalProps) => React.JSX.Element; interface ArweaveConnectButtonProps { connectButtonClass?: string; disconnectButtonClass?: string; } export declare const ArweaveConnectButton: ({ disconnectButtonClass, connectButtonClass, }: ArweaveConnectButtonProps) => React.JSX.Element;