import { UserOperation, Transaction } from "@abstraxn/core-types";
import { FeeQuotesOrDataResponse, TokenPaymasterRequest, FeeQuotesOrDataDto, PaymasterAndDataResponse } from "../utils/Types";
import { Provider } from "@ethersproject/abstract-provider";
import { IPaymaster } from "./IPaymaster";
export interface IHybridPaymaster<T> extends IPaymaster {
    getPaymasterAndData(_userOp: Partial<UserOperation>, _paymasterServiceData?: T): Promise<PaymasterAndDataResponse>;
    getDummyPaymasterAndData(_userOp: Partial<UserOperation>, _paymasterServiceData?: T): Promise<string>;
    buildTokenApprovalTransaction(_tokenPaymasterRequest: TokenPaymasterRequest, _provider: Provider): Promise<Transaction>;
    getPaymasterFeeQuotesOrData(_userOp: Partial<UserOperation>, _paymasterServiceData: FeeQuotesOrDataDto): Promise<FeeQuotesOrDataResponse>;
}
