///
import type { FileDataItem } from "arbundles/file";
import type { Signer } from "arbundles";
import type BigNumber from "bignumber.js";
import type { Tx, CurrencyConfig } from "../common/types.js";
import type { NodeCurrency } from "./types.js";
import type Utils from "../common/utils.js";
import type NodeBundlr from "./bundlr.js";
export default abstract class BaseNodeCurrency implements NodeCurrency {
base: [string, number];
protected wallet: any;
protected _address: string | undefined;
protected providerUrl: any;
protected providerInstance?: any;
ticker: string;
name: string;
protected minConfirm: number;
isSlow: boolean;
needsFee: boolean;
protected opts?: any;
protected utils: Utils;
bundlr: NodeBundlr;
constructor(config: CurrencyConfig);
get address(): string | undefined;
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 | object): Promise<{
txId: string | undefined;
tx: any;
}>;
abstract getPublicKey(): string | Buffer;
}
export declare function getRedstonePrice(currency: string): Promise;