import { Environment } from "@arcana/ca-common";
import SafeEventEmitter from "@metamask/safe-event-emitter";
import { FuelConnector, Provider } from "fuels";
import { AllowanceQuery } from "./query";
import { BridgeQueryInput, EthereumProvider, OnAllowanceHook, OnIntentHook, RequestArguments, SDKConfig, TransferQueryInput, TxOptions } from "./typings";
export declare class CA {
    #private;
    static getSupportedChains: (env?: Environment) => {
        id: number;
        logo: string;
        name: string;
        tokens: import("./typings").TokenInfo[];
    }[];
    caEvents: SafeEventEmitter;
    private chainList;
    private evm?;
    private fuel?;
    private hooks;
    private initPromises;
    private initStatus;
    private isArcanaProvider;
    private networkConfig;
    private refundInterval;
    private siweStatement;
    constructor(config?: SDKConfig);
    allowance(): AllowanceQuery;
    bridge(input: BridgeQueryInput): Promise<{
        exec: () => Promise<unknown>;
        simulate: () => Promise<{
            intent: import("./typings").ReadableIntent;
            token: import("./typings").TokenInfo;
        }>;
    }>;
    deinit: () => void;
    getEVMProviderWithCA: () => EthereumProvider;
    getFuelWithCA(): Promise<{
        connector: FuelConnector;
        provider: Provider;
    }>;
    getMyIntents(page?: number): Promise<import("./typings").RFF[]>;
    getUnifiedBalance(symbol: string): Promise<import("./typings").UserAssetDatum | undefined>;
    getUnifiedBalances(): Promise<import("./typings").UserAssetDatum[]>;
    handleEVMTx(args: RequestArguments, options?: Partial<TxOptions>): Promise<unknown>;
    init: () => Promise<void>;
    onAccountsChanged: (accounts: Array<`0x${string}`>) => void;
    setEVMProvider(provider: EthereumProvider): Promise<void>;
    setFuelConnector(connector: FuelConnector): Promise<void>;
    setOnAllowanceHook(hook: OnAllowanceHook): void;
    setOnIntentHook(hook: OnIntentHook): void;
    transfer(input: TransferQueryInput): Promise<{
        exec: () => Promise<unknown>;
        simulate: () => Promise<{
            intent: import("./typings").ReadableIntent;
            token: import("./typings").TokenInfo;
        }>;
    }>;
    private changeChain;
    private checkPendingRefunds;
    private createCosmosWallet;
    private createEVMHandler;
    private createFuelHandler;
    private getChainID;
    private getCosmosWallet;
    private getEVMAddress;
    private resolveInitPromises;
    private setProviderHooks;
    private signatureForLogin;
    private waitForInit;
}
