import type { BaseWebIrys } from '@irys/web-upload/dist/types/base'; import type { BaseNodeIrys } from '@irys/upload/dist/types/base'; import { Context, Signer, SolAmount, UploaderInterface } from '@metaplex-foundation/umi'; import { Connection as Web3JsConnection, PublicKey as Web3JsPublicKey, SendOptions as Web3JsSendOptions, Signer as Web3JsSigner, Transaction as Web3JsTransaction, TransactionSignature as Web3JsTransactionSignature } from '@solana/web3.js'; export type IrysUploader = UploaderInterface & { irys: () => Promise; getUploadPriceFromBytes: (bytes: number) => Promise; getBalance: () => Promise; fund: (amount: SolAmount, skipBalanceCheck: boolean) => Promise; withdrawAll: (amount: SolAmount) => Promise; withdraw: (amount: SolAmount) => Promise; }; export type IrysUploaderOptions = { address?: string; timeout?: number; providerUrl?: string; priceMultiplier?: number; payer?: Signer; uploadConcurrency?: number; }; export type IrysWalletAdapter = { publicKey: Web3JsPublicKey | null; signMessage?: (message: Uint8Array) => Promise; signTransaction?: (transaction: Web3JsTransaction) => Promise; signAllTransactions?: (transactions: Web3JsTransaction[]) => Promise; sendTransaction: (transaction: Web3JsTransaction, connection: Web3JsConnection, options?: Web3JsSendOptions & { signers?: Web3JsSigner[]; }) => Promise; }; export declare function createBaseIrysUploader(initFn: (address: string, payer: Signer, options: any, context: any) => Promise, context: Pick, uploaderOptions?: IrysUploaderOptions): IrysUploader; export declare const isIrysUploader: (uploader: UploaderInterface) => uploader is IrysUploader;