///
import type { FileDataItem } from "arbundles/file";
import type { Signer } from "arbundles";
import type BigNumber from "bignumber.js";
import type { Tx, TokenConfig } from "../../common/types";
import type { WebToken } from "../types";
import type { BaseWebIrys } from "../base";
export default abstract class BaseWebToken implements WebToken {
base: [string, number];
protected wallet: any;
protected _address: string | undefined;
protected providerUrl: any;
protected providerInstance?: any;
ticker: string;
name: string;
irys: BaseWebIrys;
config: TokenConfig;
protected opts?: any;
minConfirm: number;
isSlow: boolean;
needsFee: boolean;
inheritsRPC: boolean;
constructor(config: TokenConfig);
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?: any): Promise<{
txId: string | undefined;
tx: any;
}>;
abstract getPublicKey(): Promise;
}
export declare function getRedstonePrice(token: string): Promise;