import { providers } from "ethers";
import { BigNumber } from "./";
export declare function isContractDeployedToAddress(address: string, provider: providers.Provider): Promise<boolean>;
export declare function compareAddresses(addressA: string, addressB: string): 1 | -1 | 0;
export declare function compareAddressesSimple(addressA?: string, addressB?: string): boolean;
export declare function toBytes32(address: string): string;
export declare function toEvmAddress(hexString: string): string;
export declare function isValidEvmAddress(address: string): boolean;
export declare function toAddressType(address: string, chainId: number): Address;
export declare abstract class Address {
    readonly __address_type_brand = true;
    readonly rawAddress: Uint8Array;
    evmAddress: string | undefined;
    bytes32Address: string | undefined;
    svmAddress: string | undefined;
    bnAddress: BigNumber | undefined;
    constructor(_rawAddress: Uint8Array);
    static isAddress(obj: unknown): obj is Address;
    toBytes32(): string;
    truncateToBytes20(): string;
    toBase58(): string;
    private toBigNumber;
    toEvmAddress(): string;
    toNative(): string;
    toHexString(): string;
    isValidOn(chainId: number): boolean;
    toString(): string;
    isZeroAddress(): boolean;
    forceSvmAddress(): SvmAddress;
    eq(other: Address): boolean;
    compare(otherAddress: Address): 1 | -1 | 0;
    isEVM(): this is EvmAddress;
    isSVM(): this is SvmAddress;
}
export declare class EvmAddress extends Address {
    private readonly _type;
    constructor(rawAddress: Uint8Array);
    static validate(rawAddress: Uint8Array): boolean;
    isEVM(): this is EvmAddress;
    toNative(): string;
    static from(address: string): EvmAddress;
}
export declare class SvmAddress extends Address {
    private readonly _type;
    constructor(rawAddress: Uint8Array);
    static validate(rawAddress: Uint8Array): boolean;
    isSVM(): this is SvmAddress;
    toNative(): string;
    static from(address: string): SvmAddress;
}
export declare class RawAddress extends Address {
    private readonly _type;
    constructor(rawAddress: Uint8Array);
}
