import BaseRequest from "../../requestHandlers/common/base";
import { Intent, onAllowanceHookSource, RequestHandlerInput, SetAllowanceInput, TokenInfo } from "../../typings";
import { getAllowances } from "../../utils";
declare abstract class ERC20RequestBase extends BaseRequest {
    readonly input: RequestHandlerInput;
    isNative: boolean;
    protected constructor(input: RequestHandlerInput);
    buildIntent: () => Promise<{
        intent: Intent;
        token: TokenInfo;
    } | undefined>;
    getUnallowedSources(intent: Intent, allowances: Awaited<ReturnType<typeof getAllowances>>): onAllowanceHookSource[];
    process: () => Promise<void>;
    setAllowances(input: Array<SetAllowanceInput>): Promise<void>;
    waitForOnAllowanceHook(sources: onAllowanceHookSource[]): Promise<boolean>;
    private parseSimulation;
}
export default ERC20RequestBase;
