///
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;