import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common";
export declare namespace ZebecCard {
    type FeeTierStruct = {
        minAmount: BigNumberish;
        maxAmount: BigNumberish;
        fee: BigNumberish;
    };
    type FeeTierStructOutput = [
        minAmount: bigint,
        maxAmount: bigint,
        fee: bigint
    ] & {
        minAmount: bigint;
        maxAmount: bigint;
        fee: bigint;
    };
    type CardConfigStruct = {
        nativeFee: BigNumberish;
        nonNativeFee: BigNumberish;
        revenueFee: BigNumberish;
        counter: BigNumberish;
        cardVault: AddressLike;
        revenueVault: AddressLike;
        commissionVault: AddressLike;
        usdcAddress: AddressLike;
        minCardAmount: BigNumberish;
        maxCardAmount: BigNumberish;
        dailyCardBuyLimit: BigNumberish;
    };
    type CardConfigStructOutput = [
        nativeFee: bigint,
        nonNativeFee: bigint,
        revenueFee: bigint,
        counter: bigint,
        cardVault: string,
        revenueVault: string,
        commissionVault: string,
        usdcAddress: string,
        minCardAmount: bigint,
        maxCardAmount: bigint,
        dailyCardBuyLimit: bigint
    ] & {
        nativeFee: bigint;
        nonNativeFee: bigint;
        revenueFee: bigint;
        counter: bigint;
        cardVault: string;
        revenueVault: string;
        commissionVault: string;
        usdcAddress: string;
        minCardAmount: bigint;
        maxCardAmount: bigint;
        dailyCardBuyLimit: bigint;
    };
}
export declare namespace IAggregationRouterV6 {
    type SwapDescriptionStruct = {
        srcToken: AddressLike;
        dstToken: AddressLike;
        srcReceiver: AddressLike;
        dstReceiver: AddressLike;
        amount: BigNumberish;
        minReturnAmount: BigNumberish;
        flags: BigNumberish;
    };
    type SwapDescriptionStructOutput = [
        srcToken: string,
        dstToken: string,
        srcReceiver: string,
        dstReceiver: string,
        amount: bigint,
        minReturnAmount: bigint,
        flags: bigint
    ] & {
        srcToken: string;
        dstToken: string;
        srcReceiver: string;
        dstReceiver: string;
        amount: bigint;
        minReturnAmount: bigint;
        flags: bigint;
    };
}
export interface ZebecCardInterface extends Interface {
    getFunction(nameOrSignature: "UPGRADE_INTERFACE_VERSION" | "aavePool" | "buyCard" | "cardBalances" | "cardConfig" | "cardPurchases" | "depositUsdc" | "feeTiers" | "generateYield" | "getFee" | "getFeeTiers" | "initialize" | "oneInchRouter" | "owner" | "proxiableUUID" | "renounceOwnership" | "setCardVault" | "setComissionVault" | "setDailyCardBuyLimit" | "setFee" | "setFeeArray" | "setMaxCardAmount" | "setMinCardAmount" | "setNativeFee" | "setNonNativeFee" | "setRevenueFee" | "setRevenueVault" | "setUsdcAddress" | "swapAndDeposit" | "transferOwnership" | "upgradeToAndCall" | "wEth" | "withdraw" | "withdrawYield" | "zebecToken"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "CardPurchased" | "Deposited" | "Initialized" | "OwnershipTransferred" | "Swapped" | "Upgraded" | "WithdrawYield" | "Withdrawn"): EventFragment;
    encodeFunctionData(functionFragment: "UPGRADE_INTERFACE_VERSION", values?: undefined): string;
    encodeFunctionData(functionFragment: "aavePool", values?: undefined): string;
    encodeFunctionData(functionFragment: "buyCard", values: [BigNumberish, string, string]): string;
    encodeFunctionData(functionFragment: "cardBalances", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "cardConfig", values?: undefined): string;
    encodeFunctionData(functionFragment: "cardPurchases", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "depositUsdc", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "feeTiers", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "generateYield", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getFee", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getFeeTiers", values?: undefined): string;
    encodeFunctionData(functionFragment: "initialize", values: [
        ZebecCard.CardConfigStruct,
        ZebecCard.FeeTierStruct[],
        AddressLike,
        AddressLike,
        AddressLike,
        AddressLike
    ]): string;
    encodeFunctionData(functionFragment: "oneInchRouter", values?: undefined): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "proxiableUUID", values?: undefined): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "setCardVault", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setComissionVault", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setDailyCardBuyLimit", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setFee", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setFeeArray", values: [ZebecCard.FeeTierStruct[]]): string;
    encodeFunctionData(functionFragment: "setMaxCardAmount", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setMinCardAmount", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setNativeFee", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setNonNativeFee", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setRevenueFee", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setRevenueVault", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setUsdcAddress", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "swapAndDeposit", values: [AddressLike, IAggregationRouterV6.SwapDescriptionStruct, BytesLike]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "upgradeToAndCall", values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "wEth", values?: undefined): string;
    encodeFunctionData(functionFragment: "withdraw", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "withdrawYield", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "zebecToken", values?: undefined): string;
    decodeFunctionResult(functionFragment: "UPGRADE_INTERFACE_VERSION", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "aavePool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "buyCard", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cardBalances", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cardConfig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cardPurchases", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositUsdc", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "feeTiers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "generateYield", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getFeeTiers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "oneInchRouter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "proxiableUUID", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setCardVault", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setComissionVault", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setDailyCardBuyLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setFeeArray", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMaxCardAmount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMinCardAmount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setNativeFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setNonNativeFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setRevenueFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setRevenueVault", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setUsdcAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapAndDeposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "upgradeToAndCall", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "wEth", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawYield", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "zebecToken", data: BytesLike): Result;
}
export declare namespace CardPurchasedEvent {
    type InputTuple = [
        from: AddressLike,
        id: BigNumberish,
        amount: BigNumberish,
        cardType: string,
        userEmail: string,
        purchasedAt: BigNumberish
    ];
    type OutputTuple = [
        from: string,
        id: bigint,
        amount: bigint,
        cardType: string,
        userEmail: string,
        purchasedAt: bigint
    ];
    interface OutputObject {
        from: string;
        id: bigint;
        amount: bigint;
        cardType: string;
        userEmail: string;
        purchasedAt: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DepositedEvent {
    type InputTuple = [from: AddressLike, amount: BigNumberish];
    type OutputTuple = [from: string, amount: bigint];
    interface OutputObject {
        from: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace InitializedEvent {
    type InputTuple = [version: BigNumberish];
    type OutputTuple = [version: bigint];
    interface OutputObject {
        version: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferredEvent {
    type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
    type OutputTuple = [previousOwner: string, newOwner: string];
    interface OutputObject {
        previousOwner: string;
        newOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SwappedEvent {
    type InputTuple = [
        from: AddressLike,
        srcToken: AddressLike,
        amount: BigNumberish,
        spentAmount: BigNumberish,
        returnAmount: BigNumberish,
        feeAmount: BigNumberish
    ];
    type OutputTuple = [
        from: string,
        srcToken: string,
        amount: bigint,
        spentAmount: bigint,
        returnAmount: bigint,
        feeAmount: bigint
    ];
    interface OutputObject {
        from: string;
        srcToken: string;
        amount: bigint;
        spentAmount: bigint;
        returnAmount: bigint;
        feeAmount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace UpgradedEvent {
    type InputTuple = [implementation: AddressLike];
    type OutputTuple = [implementation: string];
    interface OutputObject {
        implementation: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace WithdrawYieldEvent {
    type InputTuple = [from: AddressLike, withdrawnAmount: BigNumberish];
    type OutputTuple = [from: string, withdrawnAmount: bigint];
    interface OutputObject {
        from: string;
        withdrawnAmount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace WithdrawnEvent {
    type InputTuple = [from: AddressLike, withdrawnAmount: BigNumberish];
    type OutputTuple = [from: string, withdrawnAmount: bigint];
    interface OutputObject {
        from: string;
        withdrawnAmount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface ZebecCard extends BaseContract {
    connect(runner?: ContractRunner | null): ZebecCard;
    waitForDeployment(): Promise<this>;
    interface: ZebecCardInterface;
    queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
    listeners(eventName?: string): Promise<Array<Listener>>;
    removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
    UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">;
    aavePool: TypedContractMethod<[], [string], "view">;
    buyCard: TypedContractMethod<[
        amount: BigNumberish,
        cardType: string,
        userEmail: string
    ], [
        void
    ], "nonpayable">;
    cardBalances: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
    cardConfig: TypedContractMethod<[
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint,
            string,
            string,
            string,
            string,
            bigint,
            bigint,
            bigint
        ] & {
            nativeFee: bigint;
            nonNativeFee: bigint;
            revenueFee: bigint;
            counter: bigint;
            cardVault: string;
            revenueVault: string;
            commissionVault: string;
            usdcAddress: string;
            minCardAmount: bigint;
            maxCardAmount: bigint;
            dailyCardBuyLimit: bigint;
        }
    ], "view">;
    cardPurchases: TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            bigint,
            bigint
        ] & {
            unixInRecord: bigint;
            totalCardBoughtPerDay: bigint;
        }
    ], "view">;
    depositUsdc: TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    feeTiers: TypedContractMethod<[
        arg0: BigNumberish
    ], [
        [
            bigint,
            bigint,
            bigint
        ] & {
            minAmount: bigint;
            maxAmount: bigint;
            fee: bigint;
        }
    ], "view">;
    generateYield: TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFee: TypedContractMethod<[amount: BigNumberish], [bigint], "view">;
    getFeeTiers: TypedContractMethod<[
    ], [
        ZebecCard.FeeTierStructOutput[]
    ], "view">;
    initialize: TypedContractMethod<[
        card_config: ZebecCard.CardConfigStruct,
        fee_tiers: ZebecCard.FeeTierStruct[],
        inch_router: AddressLike,
        weth: AddressLike,
        zbc_token: AddressLike,
        aave_pool: AddressLike
    ], [
        void
    ], "nonpayable">;
    oneInchRouter: TypedContractMethod<[], [string], "view">;
    owner: TypedContractMethod<[], [string], "view">;
    proxiableUUID: TypedContractMethod<[], [string], "view">;
    renounceOwnership: TypedContractMethod<[], [void], "nonpayable">;
    setCardVault: TypedContractMethod<[
        cardVault: AddressLike
    ], [
        void
    ], "nonpayable">;
    setComissionVault: TypedContractMethod<[
        commissionVault: AddressLike
    ], [
        void
    ], "nonpayable">;
    setDailyCardBuyLimit: TypedContractMethod<[
        dailyCardBuyLimit: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setFee: TypedContractMethod<[
        minAmount: BigNumberish,
        maxAmount: BigNumberish,
        fee: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setFeeArray: TypedContractMethod<[
        newTiers: ZebecCard.FeeTierStruct[]
    ], [
        void
    ], "nonpayable">;
    setMaxCardAmount: TypedContractMethod<[
        maxAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setMinCardAmount: TypedContractMethod<[
        minAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setNativeFee: TypedContractMethod<[
        nativeFee: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setNonNativeFee: TypedContractMethod<[
        nonNativeFee: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setRevenueFee: TypedContractMethod<[
        revenueFee: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setRevenueVault: TypedContractMethod<[
        revenueVault: AddressLike
    ], [
        void
    ], "nonpayable">;
    setUsdcAddress: TypedContractMethod<[
        usdcAddress: AddressLike
    ], [
        void
    ], "nonpayable">;
    swapAndDeposit: TypedContractMethod<[
        executor: AddressLike,
        desc: IAggregationRouterV6.SwapDescriptionStruct,
        routeData: BytesLike
    ], [
        void
    ], "payable">;
    transferOwnership: TypedContractMethod<[
        newOwner: AddressLike
    ], [
        void
    ], "nonpayable">;
    upgradeToAndCall: TypedContractMethod<[
        newImplementation: AddressLike,
        data: BytesLike
    ], [
        void
    ], "payable">;
    wEth: TypedContractMethod<[], [string], "view">;
    withdraw: TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">;
    withdrawYield: TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    zebecToken: TypedContractMethod<[], [string], "view">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "UPGRADE_INTERFACE_VERSION"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "aavePool"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "buyCard"): TypedContractMethod<[
        amount: BigNumberish,
        cardType: string,
        userEmail: string
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "cardBalances"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "cardConfig"): TypedContractMethod<[
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint,
            string,
            string,
            string,
            string,
            bigint,
            bigint,
            bigint
        ] & {
            nativeFee: bigint;
            nonNativeFee: bigint;
            revenueFee: bigint;
            counter: bigint;
            cardVault: string;
            revenueVault: string;
            commissionVault: string;
            usdcAddress: string;
            minCardAmount: bigint;
            maxCardAmount: bigint;
            dailyCardBuyLimit: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "cardPurchases"): TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            bigint,
            bigint
        ] & {
            unixInRecord: bigint;
            totalCardBoughtPerDay: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "depositUsdc"): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "feeTiers"): TypedContractMethod<[
        arg0: BigNumberish
    ], [
        [
            bigint,
            bigint,
            bigint
        ] & {
            minAmount: bigint;
            maxAmount: bigint;
            fee: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "generateYield"): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "getFee"): TypedContractMethod<[amount: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "getFeeTiers"): TypedContractMethod<[], [ZebecCard.FeeTierStructOutput[]], "view">;
    getFunction(nameOrSignature: "initialize"): TypedContractMethod<[
        card_config: ZebecCard.CardConfigStruct,
        fee_tiers: ZebecCard.FeeTierStruct[],
        inch_router: AddressLike,
        weth: AddressLike,
        zbc_token: AddressLike,
        aave_pool: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "oneInchRouter"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "proxiableUUID"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "setCardVault"): TypedContractMethod<[cardVault: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "setComissionVault"): TypedContractMethod<[commissionVault: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "setDailyCardBuyLimit"): TypedContractMethod<[
        dailyCardBuyLimit: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setFee"): TypedContractMethod<[
        minAmount: BigNumberish,
        maxAmount: BigNumberish,
        fee: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setFeeArray"): TypedContractMethod<[
        newTiers: ZebecCard.FeeTierStruct[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setMaxCardAmount"): TypedContractMethod<[maxAmount: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setMinCardAmount"): TypedContractMethod<[minAmount: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setNativeFee"): TypedContractMethod<[nativeFee: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setNonNativeFee"): TypedContractMethod<[nonNativeFee: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setRevenueFee"): TypedContractMethod<[revenueFee: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setRevenueVault"): TypedContractMethod<[revenueVault: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "setUsdcAddress"): TypedContractMethod<[usdcAddress: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "swapAndDeposit"): TypedContractMethod<[
        executor: AddressLike,
        desc: IAggregationRouterV6.SwapDescriptionStruct,
        routeData: BytesLike
    ], [
        void
    ], "payable">;
    getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "upgradeToAndCall"): TypedContractMethod<[
        newImplementation: AddressLike,
        data: BytesLike
    ], [
        void
    ], "payable">;
    getFunction(nameOrSignature: "wEth"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "withdraw"): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "withdrawYield"): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "zebecToken"): TypedContractMethod<[], [string], "view">;
    getEvent(key: "CardPurchased"): TypedContractEvent<CardPurchasedEvent.InputTuple, CardPurchasedEvent.OutputTuple, CardPurchasedEvent.OutputObject>;
    getEvent(key: "Deposited"): TypedContractEvent<DepositedEvent.InputTuple, DepositedEvent.OutputTuple, DepositedEvent.OutputObject>;
    getEvent(key: "Initialized"): TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
    getEvent(key: "OwnershipTransferred"): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
    getEvent(key: "Swapped"): TypedContractEvent<SwappedEvent.InputTuple, SwappedEvent.OutputTuple, SwappedEvent.OutputObject>;
    getEvent(key: "Upgraded"): TypedContractEvent<UpgradedEvent.InputTuple, UpgradedEvent.OutputTuple, UpgradedEvent.OutputObject>;
    getEvent(key: "WithdrawYield"): TypedContractEvent<WithdrawYieldEvent.InputTuple, WithdrawYieldEvent.OutputTuple, WithdrawYieldEvent.OutputObject>;
    getEvent(key: "Withdrawn"): TypedContractEvent<WithdrawnEvent.InputTuple, WithdrawnEvent.OutputTuple, WithdrawnEvent.OutputObject>;
    filters: {
        "CardPurchased(address,uint256,uint256,string,string,uint256)": TypedContractEvent<CardPurchasedEvent.InputTuple, CardPurchasedEvent.OutputTuple, CardPurchasedEvent.OutputObject>;
        CardPurchased: TypedContractEvent<CardPurchasedEvent.InputTuple, CardPurchasedEvent.OutputTuple, CardPurchasedEvent.OutputObject>;
        "Deposited(address,uint256)": TypedContractEvent<DepositedEvent.InputTuple, DepositedEvent.OutputTuple, DepositedEvent.OutputObject>;
        Deposited: TypedContractEvent<DepositedEvent.InputTuple, DepositedEvent.OutputTuple, DepositedEvent.OutputObject>;
        "Initialized(uint64)": TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
        Initialized: TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
        "OwnershipTransferred(address,address)": TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        "Swapped(address,address,uint256,uint256,uint256,uint256)": TypedContractEvent<SwappedEvent.InputTuple, SwappedEvent.OutputTuple, SwappedEvent.OutputObject>;
        Swapped: TypedContractEvent<SwappedEvent.InputTuple, SwappedEvent.OutputTuple, SwappedEvent.OutputObject>;
        "Upgraded(address)": TypedContractEvent<UpgradedEvent.InputTuple, UpgradedEvent.OutputTuple, UpgradedEvent.OutputObject>;
        Upgraded: TypedContractEvent<UpgradedEvent.InputTuple, UpgradedEvent.OutputTuple, UpgradedEvent.OutputObject>;
        "WithdrawYield(address,uint256)": TypedContractEvent<WithdrawYieldEvent.InputTuple, WithdrawYieldEvent.OutputTuple, WithdrawYieldEvent.OutputObject>;
        WithdrawYield: TypedContractEvent<WithdrawYieldEvent.InputTuple, WithdrawYieldEvent.OutputTuple, WithdrawYieldEvent.OutputObject>;
        "Withdrawn(address,uint256)": TypedContractEvent<WithdrawnEvent.InputTuple, WithdrawnEvent.OutputTuple, WithdrawnEvent.OutputObject>;
        Withdrawn: TypedContractEvent<WithdrawnEvent.InputTuple, WithdrawnEvent.OutputTuple, WithdrawnEvent.OutputObject>;
    };
}
