import { Universe } from "@arcana/ca-common";
import Decimal from "decimal.js";
import Long from "long";
import { PublicClient, WebSocketTransport } from "viem";
import type { RequestHandlerInput, SimulateReturnType, UserAssets } from "../../typings";
import RequestBase from "../common/base";
declare class ERC20Transfer extends RequestBase {
    readonly input: RequestHandlerInput;
    destinationUniverse: Universe;
    publicClient: PublicClient<WebSocketTransport>;
    simulateTxRes: null | SimulateReturnType;
    constructor(input: RequestHandlerInput);
    parseSimulation({ assets, simulation, }: {
        assets: UserAssets;
        simulation: SimulateReturnType;
    }): {
        amount: Decimal;
        gas: Decimal;
        isIntentRequired: boolean;
    };
    simulateTx(): Promise<null | SimulateReturnType>;
    waitForFill(requestHash: `0x${string}`, intentID: Long, waitForDoubleCheckTx: () => Promise<void>): Promise<void>;
}
export default ERC20Transfer;
