import type { BaseContract, BigNumber, BytesLike, Signer, utils } from "ethers";
import type { EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../../common";
export interface SponsoredCCTPInterfaceInterface extends utils.Interface {
    functions: {};
    events: {
        "SimpleTansferToCore(address,address,uint256,uint256)": EventFragment;
        "SponsoredDepositForBurn(bytes32,address,bytes32,uint256,uint256,uint256,bytes32,bytes)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "SimpleTansferToCore"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SponsoredDepositForBurn"): EventFragment;
}
export interface SimpleTansferToCoreEventObject {
    finalToken: string;
    finalRecipient: string;
    finalAmount: BigNumber;
    maxAmountToSponsor: BigNumber;
}
export type SimpleTansferToCoreEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber
], SimpleTansferToCoreEventObject>;
export type SimpleTansferToCoreEventFilter = TypedEventFilter<SimpleTansferToCoreEvent>;
export interface SponsoredDepositForBurnEventObject {
    quoteNonce: string;
    originSender: string;
    finalRecipient: string;
    quoteDeadline: BigNumber;
    maxBpsToSponsor: BigNumber;
    maxUserSlippageBps: BigNumber;
    finalToken: string;
    signature: string;
}
export type SponsoredDepositForBurnEvent = TypedEvent<[
    string,
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    string,
    string
], SponsoredDepositForBurnEventObject>;
export type SponsoredDepositForBurnEventFilter = TypedEventFilter<SponsoredDepositForBurnEvent>;
export interface SponsoredCCTPInterface extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: SponsoredCCTPInterfaceInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {};
    callStatic: {};
    filters: {
        "SimpleTansferToCore(address,address,uint256,uint256)"(finalToken?: string | null, finalRecipient?: string | null, finalAmount?: null, maxAmountToSponsor?: null): SimpleTansferToCoreEventFilter;
        SimpleTansferToCore(finalToken?: string | null, finalRecipient?: string | null, finalAmount?: null, maxAmountToSponsor?: null): SimpleTansferToCoreEventFilter;
        "SponsoredDepositForBurn(bytes32,address,bytes32,uint256,uint256,uint256,bytes32,bytes)"(quoteNonce?: BytesLike | null, originSender?: string | null, finalRecipient?: BytesLike | null, quoteDeadline?: null, maxBpsToSponsor?: null, maxUserSlippageBps?: null, finalToken?: null, signature?: null): SponsoredDepositForBurnEventFilter;
        SponsoredDepositForBurn(quoteNonce?: BytesLike | null, originSender?: string | null, finalRecipient?: BytesLike | null, quoteDeadline?: null, maxBpsToSponsor?: null, maxUserSlippageBps?: null, finalToken?: null, signature?: null): SponsoredDepositForBurnEventFilter;
    };
    estimateGas: {};
    populateTransaction: {};
}
