import { Paymaster } from "./Paymaster";
import { UserOperationV6, UserOperationV7, UserOperationV8, PaymasterMetadataV8, PaymasterMetadataV7, PaymasterMetadataV6, ERC20Token, SponsorMetadata, SupportedERC20TokensAndMetadataV8WithExchangeRate, SupportedERC20TokensAndMetadataV7WithExchangeRate, SupportedERC20TokensAndMetadataV6WithExchangeRate } from "../types";
import { CandidePaymasterContext, PrependTokenPaymasterApproveAccount, GasPaymasterUserOperationOverrides, BasePaymasterUserOperationOverrides } from "./types";
export declare class CandidePaymaster extends Paymaster {
    readonly rpcUrl: string;
    private version;
    private entrypointDataV8;
    private entrypointDataV7;
    private entrypointDataV6;
    private initialized;
    constructor(rpcUrl: string);
    private initialize;
    private getSupportedERC20TokensAndPaymasterMetadata;
    private getSupportedEntrypointsLive;
    getSupportedEntrypoints(): Promise<string[]>;
    getPaymasterMetaData(entrypoint: string): Promise<PaymasterMetadataV8 | PaymasterMetadataV7 | PaymasterMetadataV6 | null>;
    isSupportedERC20Token(erc20TokenAddress: string, entrypoint?: string): Promise<boolean>;
    getSupportedERC20TokenData(erc20TokenAddress: string, entrypoint?: string): Promise<ERC20Token | null>;
    createPaymasterUserOperation(userOperation: UserOperationV8, bundlerRpc: string, context?: CandidePaymasterContext, overrides?: BasePaymasterUserOperationOverrides | GasPaymasterUserOperationOverrides): Promise<[UserOperationV8, SponsorMetadata | undefined]>;
    createPaymasterUserOperation(userOperation: UserOperationV7, bundlerRpc: string, context?: CandidePaymasterContext, overrides?: BasePaymasterUserOperationOverrides | GasPaymasterUserOperationOverrides): Promise<[UserOperationV7, SponsorMetadata | undefined]>;
    createPaymasterUserOperation(userOperation: UserOperationV6, bundlerRpc: string, context?: CandidePaymasterContext, overrides?: BasePaymasterUserOperationOverrides | GasPaymasterUserOperationOverrides): Promise<[UserOperationV6, SponsorMetadata | undefined]>;
    createSponsorPaymasterUserOperation(userOperation: UserOperationV8, bundlerRpc: string, sponsorshipPolicyId?: string, overrides?: BasePaymasterUserOperationOverrides): Promise<[UserOperationV8, SponsorMetadata | undefined]>;
    createSponsorPaymasterUserOperation(userOperation: UserOperationV7, bundlerRpc: string, sponsorshipPolicyId?: string, overrides?: BasePaymasterUserOperationOverrides): Promise<[UserOperationV7, SponsorMetadata | undefined]>;
    createSponsorPaymasterUserOperation(userOperation: UserOperationV6, bundlerRpc: string, sponsorshipPolicyId?: string, overrides?: BasePaymasterUserOperationOverrides): Promise<[UserOperationV6, SponsorMetadata | undefined]>;
    createTokenPaymasterUserOperation(smartAccount: PrependTokenPaymasterApproveAccount, userOperation: UserOperationV8, tokenAddress: string, bundlerRpc: string, overrides?: GasPaymasterUserOperationOverrides): Promise<UserOperationV8>;
    createTokenPaymasterUserOperation(smartAccount: PrependTokenPaymasterApproveAccount, userOperation: UserOperationV7, tokenAddress: string, bundlerRpc: string, overrides?: GasPaymasterUserOperationOverrides): Promise<UserOperationV7>;
    createTokenPaymasterUserOperation(smartAccount: PrependTokenPaymasterApproveAccount, userOperation: UserOperationV6, tokenAddress: string, bundlerRpc: string, overrides?: GasPaymasterUserOperationOverrides): Promise<UserOperationV6>;
    calculateUserOperationErc20TokenMaxGasCost(userOperation: UserOperationV8 | UserOperationV7 | UserOperationV6, erc20TokenAddress: string, overrides?: {
        entrypoint?: string | null;
    }): Promise<bigint>;
    fetchTokenPaymasterExchangeRate(erc20TokenAddress: string, entrypoint?: string): Promise<bigint>;
    fetchSupportedERC20TokensAndPaymasterMetadata(entrypoint?: string): Promise<SupportedERC20TokensAndMetadataV8WithExchangeRate | SupportedERC20TokensAndMetadataV7WithExchangeRate | SupportedERC20TokensAndMetadataV6WithExchangeRate>;
}
//# sourceMappingURL=CandidePaymaster.d.ts.map