/// import type { FileDataItem } from "arbundles/file"; import type { Signer } from "arbundles"; import type BigNumber from "bignumber.js"; import type { Tx, CurrencyConfig } from "../common/types"; import type { WebCurrency } from "./types"; import type WebBundlr from "./bundlr"; export default abstract class BaseWebCurrency implements WebCurrency { base: [string, number]; protected wallet: any; protected _address: string | undefined; protected providerUrl: any; protected providerInstance?: any; ticker: string; name: string; bundlr: WebBundlr; protected minConfirm: number; isSlow: boolean; needsFee: boolean; inheritsRPC: boolean; constructor(config: CurrencyConfig); get address(): string | undefined; ready(): Promise; getId(item: FileDataItem): Promise; price(): Promise; abstract getTx(_txId: string): Promise; abstract ownerToAddress(_owner: any): string; abstract sign(_data: Uint8Array): Promise; abstract getSigner(): Signer; abstract verify(_pub: any, _data: Uint8Array, _signature: Uint8Array): Promise; abstract getCurrentHeight(): Promise; abstract getFee(_amount: BigNumber.Value, _to?: string): Promise; abstract sendTx(_data: any): Promise; abstract createTx(_amount: BigNumber.Value, _to: string, _fee?: string): Promise<{ txId: string | undefined; tx: any; }>; abstract getPublicKey(): Promise; } export declare function getRedstonePrice(currency: string): Promise;