import { BlockchainName } from '../models/blockchain-name';
import { TokenBaseStruct } from '../models/token-base-struct';
export declare type TokenStruct = {
    blockchain: BlockchainName;
    address: string;
    name: string;
    symbol: string;
    decimals: number;
};
export declare class Token {
    static createToken(tokenBaseStruct: TokenBaseStruct): Promise<Token>;
    static createTokens(tokensAddresses: string[] | ReadonlyArray<string>, blockchain: BlockchainName): Promise<Token[]>;
    static tokensToAddresses(tokens: Token[]): string[];
    readonly blockchain: BlockchainName;
    readonly address: string;
    readonly name: string;
    readonly symbol: string;
    readonly decimals: number;
    get isNative(): boolean;
    constructor(tokenStruct: TokenStruct);
    isEqualTo(token: TokenBaseStruct): boolean;
    isEqualToTokens(tokens: TokenBaseStruct[]): boolean;
    clone(tokenStruct?: Partial<TokenStruct>): Token;
}
