///
import type { Signer } from "arbundles";
import type BigNumber from "bignumber.js";
import type { Tx, TokenConfig } from "../../common/types";
import type { NodeToken } from "../types";
import type Utils from "../../common/utils";
import type BaseNodeIrys from "../base";
export declare abstract class BaseNodeToken implements NodeToken {
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;
irys: BaseNodeIrys;
constructor(config: TokenConfig);
get address(): string | undefined;
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, _multiplier?: BigNumber.Value): 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(token: string): Promise;