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 KAMI721C {
    type RoyaltyDataStruct = {
        receiver: AddressLike;
        feeNumerator: BigNumberish;
    };
    type RoyaltyDataStructOutput = [
        receiver: string,
        feeNumerator: bigint
    ] & {
        receiver: string;
        feeNumerator: bigint;
    };
}
export interface KAMI721CInterface extends Interface {
    getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE" | "OWNER_ROLE" | "PLATFORM_ROLE" | "RENTER_ROLE" | "approve" | "balanceOf" | "burn" | "endRental" | "extendRental" | "getApproved" | "getMintRoyaltyReceivers" | "getRentalInfo" | "getRoleAdmin" | "getTransferRoyaltyReceivers" | "grantRole" | "hasActiveRentals" | "hasRole" | "isApprovedForAll" | "isRented" | "mint" | "mintPrice" | "name" | "ownerOf" | "pause" | "paused" | "platformAddress" | "platformCommissionPercentage" | "renounceRole" | "rentToken" | "revokeRole" | "royaltyInfo" | "royaltyPercentage" | "safeTransferFrom(address,address,uint256)" | "safeTransferFrom(address,address,uint256,bytes)" | "sellToken" | "setApprovalForAll" | "setBaseURI" | "setMintPrice" | "setMintRoyalties" | "setPlatformCommission" | "setRoyaltyPercentage" | "setTokenMintRoyalties" | "setTokenTransferRoyalties" | "setTransferRoyalties" | "supportsInterface" | "symbol" | "tokenByIndex" | "tokenOfOwnerByIndex" | "tokenURI" | "totalSupply" | "transferFrom" | "unpause" | "usdcToken"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "Approval" | "ApprovalForAll" | "MintRoyaltiesUpdated" | "Paused" | "PlatformCommissionPaid" | "PlatformCommissionUpdated" | "RentalEnded" | "RentalExtended" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" | "RoyaltyPercentageUpdated" | "TokenMintRoyaltiesUpdated" | "TokenRented" | "TokenSold" | "TokenTransferRoyaltiesUpdated" | "Transfer" | "TransferRoyaltiesUpdated" | "TransferRoyaltyDistributed" | "Unpaused"): EventFragment;
    encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "OWNER_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "PLATFORM_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "RENTER_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "approve", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "endRental", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "extendRental", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getApproved", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getMintRoyaltyReceivers", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getRentalInfo", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getRoleAdmin", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "getTransferRoyaltyReceivers", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "grantRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "hasActiveRentals", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "hasRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "isApprovedForAll", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "isRented", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "mint", values?: undefined): string;
    encodeFunctionData(functionFragment: "mintPrice", values?: undefined): string;
    encodeFunctionData(functionFragment: "name", values?: undefined): string;
    encodeFunctionData(functionFragment: "ownerOf", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "pause", values?: undefined): string;
    encodeFunctionData(functionFragment: "paused", values?: undefined): string;
    encodeFunctionData(functionFragment: "platformAddress", values?: undefined): string;
    encodeFunctionData(functionFragment: "platformCommissionPercentage", values?: undefined): string;
    encodeFunctionData(functionFragment: "renounceRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "rentToken", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "revokeRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "royaltyInfo", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "royaltyPercentage", values?: undefined): string;
    encodeFunctionData(functionFragment: "safeTransferFrom(address,address,uint256)", values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "safeTransferFrom(address,address,uint256,bytes)", values: [AddressLike, AddressLike, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "sellToken", values: [AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setApprovalForAll", values: [AddressLike, boolean]): string;
    encodeFunctionData(functionFragment: "setBaseURI", values: [string]): string;
    encodeFunctionData(functionFragment: "setMintPrice", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setMintRoyalties", values: [KAMI721C.RoyaltyDataStruct[]]): string;
    encodeFunctionData(functionFragment: "setPlatformCommission", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "setRoyaltyPercentage", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setTokenMintRoyalties", values: [BigNumberish, KAMI721C.RoyaltyDataStruct[]]): string;
    encodeFunctionData(functionFragment: "setTokenTransferRoyalties", values: [BigNumberish, KAMI721C.RoyaltyDataStruct[]]): string;
    encodeFunctionData(functionFragment: "setTransferRoyalties", values: [KAMI721C.RoyaltyDataStruct[]]): string;
    encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
    encodeFunctionData(functionFragment: "tokenByIndex", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "tokenOfOwnerByIndex", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "tokenURI", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferFrom", values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "unpause", values?: undefined): string;
    encodeFunctionData(functionFragment: "usdcToken", values?: undefined): string;
    decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "OWNER_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "PLATFORM_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "RENTER_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "endRental", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "extendRental", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getApproved", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMintRoyaltyReceivers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRentalInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTransferRoyaltyReceivers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasActiveRentals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isApprovedForAll", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isRented", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintPrice", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "platformAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "platformCommissionPercentage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rentToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "royaltyInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "royaltyPercentage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "safeTransferFrom(address,address,uint256)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "safeTransferFrom(address,address,uint256,bytes)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "sellToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setApprovalForAll", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setBaseURI", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMintPrice", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMintRoyalties", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPlatformCommission", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setRoyaltyPercentage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setTokenMintRoyalties", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setTokenTransferRoyalties", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setTransferRoyalties", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokenByIndex", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokenOfOwnerByIndex", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferFrom", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "usdcToken", data: BytesLike): Result;
}
export declare namespace ApprovalEvent {
    type InputTuple = [
        owner: AddressLike,
        approved: AddressLike,
        tokenId: BigNumberish
    ];
    type OutputTuple = [owner: string, approved: string, tokenId: bigint];
    interface OutputObject {
        owner: string;
        approved: string;
        tokenId: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ApprovalForAllEvent {
    type InputTuple = [
        owner: AddressLike,
        operator: AddressLike,
        approved: boolean
    ];
    type OutputTuple = [
        owner: string,
        operator: string,
        approved: boolean
    ];
    interface OutputObject {
        owner: string;
        operator: string;
        approved: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MintRoyaltiesUpdatedEvent {
    type InputTuple = [royalties: KAMI721C.RoyaltyDataStruct[]];
    type OutputTuple = [royalties: KAMI721C.RoyaltyDataStructOutput[]];
    interface OutputObject {
        royalties: KAMI721C.RoyaltyDataStructOutput[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PausedEvent {
    type InputTuple = [account: AddressLike];
    type OutputTuple = [account: string];
    interface OutputObject {
        account: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PlatformCommissionPaidEvent {
    type InputTuple = [
        tokenId: BigNumberish,
        platformAddress: AddressLike,
        amount: BigNumberish
    ];
    type OutputTuple = [
        tokenId: bigint,
        platformAddress: string,
        amount: bigint
    ];
    interface OutputObject {
        tokenId: bigint;
        platformAddress: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PlatformCommissionUpdatedEvent {
    type InputTuple = [
        newPercentage: BigNumberish,
        newPlatformAddress: AddressLike
    ];
    type OutputTuple = [newPercentage: bigint, newPlatformAddress: string];
    interface OutputObject {
        newPercentage: bigint;
        newPlatformAddress: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RentalEndedEvent {
    type InputTuple = [
        tokenId: BigNumberish,
        owner: AddressLike,
        renter: AddressLike
    ];
    type OutputTuple = [tokenId: bigint, owner: string, renter: string];
    interface OutputObject {
        tokenId: bigint;
        owner: string;
        renter: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RentalExtendedEvent {
    type InputTuple = [
        tokenId: BigNumberish,
        renter: AddressLike,
        newEndTime: BigNumberish
    ];
    type OutputTuple = [
        tokenId: bigint,
        renter: string,
        newEndTime: bigint
    ];
    interface OutputObject {
        tokenId: bigint;
        renter: string;
        newEndTime: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleAdminChangedEvent {
    type InputTuple = [
        role: BytesLike,
        previousAdminRole: BytesLike,
        newAdminRole: BytesLike
    ];
    type OutputTuple = [
        role: string,
        previousAdminRole: string,
        newAdminRole: string
    ];
    interface OutputObject {
        role: string;
        previousAdminRole: string;
        newAdminRole: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleGrantedEvent {
    type InputTuple = [
        role: BytesLike,
        account: AddressLike,
        sender: AddressLike
    ];
    type OutputTuple = [role: string, account: string, sender: string];
    interface OutputObject {
        role: string;
        account: string;
        sender: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleRevokedEvent {
    type InputTuple = [
        role: BytesLike,
        account: AddressLike,
        sender: AddressLike
    ];
    type OutputTuple = [role: string, account: string, sender: string];
    interface OutputObject {
        role: string;
        account: string;
        sender: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoyaltyPercentageUpdatedEvent {
    type InputTuple = [newPercentage: BigNumberish];
    type OutputTuple = [newPercentage: bigint];
    interface OutputObject {
        newPercentage: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TokenMintRoyaltiesUpdatedEvent {
    type InputTuple = [
        tokenId: BigNumberish,
        royalties: KAMI721C.RoyaltyDataStruct[]
    ];
    type OutputTuple = [
        tokenId: bigint,
        royalties: KAMI721C.RoyaltyDataStructOutput[]
    ];
    interface OutputObject {
        tokenId: bigint;
        royalties: KAMI721C.RoyaltyDataStructOutput[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TokenRentedEvent {
    type InputTuple = [
        tokenId: BigNumberish,
        owner: AddressLike,
        renter: AddressLike,
        startTime: BigNumberish,
        endTime: BigNumberish,
        rentalPrice: BigNumberish
    ];
    type OutputTuple = [
        tokenId: bigint,
        owner: string,
        renter: string,
        startTime: bigint,
        endTime: bigint,
        rentalPrice: bigint
    ];
    interface OutputObject {
        tokenId: bigint;
        owner: string;
        renter: string;
        startTime: bigint;
        endTime: bigint;
        rentalPrice: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TokenSoldEvent {
    type InputTuple = [
        tokenId: BigNumberish,
        from: AddressLike,
        to: AddressLike,
        salePrice: BigNumberish
    ];
    type OutputTuple = [
        tokenId: bigint,
        from: string,
        to: string,
        salePrice: bigint
    ];
    interface OutputObject {
        tokenId: bigint;
        from: string;
        to: string;
        salePrice: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TokenTransferRoyaltiesUpdatedEvent {
    type InputTuple = [
        tokenId: BigNumberish,
        royalties: KAMI721C.RoyaltyDataStruct[]
    ];
    type OutputTuple = [
        tokenId: bigint,
        royalties: KAMI721C.RoyaltyDataStructOutput[]
    ];
    interface OutputObject {
        tokenId: bigint;
        royalties: KAMI721C.RoyaltyDataStructOutput[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferEvent {
    type InputTuple = [
        from: AddressLike,
        to: AddressLike,
        tokenId: BigNumberish
    ];
    type OutputTuple = [from: string, to: string, tokenId: bigint];
    interface OutputObject {
        from: string;
        to: string;
        tokenId: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferRoyaltiesUpdatedEvent {
    type InputTuple = [royalties: KAMI721C.RoyaltyDataStruct[]];
    type OutputTuple = [royalties: KAMI721C.RoyaltyDataStructOutput[]];
    interface OutputObject {
        royalties: KAMI721C.RoyaltyDataStructOutput[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferRoyaltyDistributedEvent {
    type InputTuple = [
        tokenId: BigNumberish,
        receiver: AddressLike,
        amount: BigNumberish
    ];
    type OutputTuple = [tokenId: bigint, receiver: string, amount: bigint];
    interface OutputObject {
        tokenId: bigint;
        receiver: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace UnpausedEvent {
    type InputTuple = [account: AddressLike];
    type OutputTuple = [account: string];
    interface OutputObject {
        account: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface KAMI721C extends BaseContract {
    connect(runner?: ContractRunner | null): KAMI721C;
    waitForDeployment(): Promise<this>;
    interface: KAMI721CInterface;
    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>;
    DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">;
    OWNER_ROLE: TypedContractMethod<[], [string], "view">;
    PLATFORM_ROLE: TypedContractMethod<[], [string], "view">;
    RENTER_ROLE: TypedContractMethod<[], [string], "view">;
    approve: TypedContractMethod<[
        to: AddressLike,
        tokenId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">;
    burn: TypedContractMethod<[tokenId: BigNumberish], [void], "nonpayable">;
    endRental: TypedContractMethod<[tokenId: BigNumberish], [void], "nonpayable">;
    extendRental: TypedContractMethod<[
        tokenId: BigNumberish,
        additionalDuration: BigNumberish,
        additionalPayment: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getApproved: TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
    getMintRoyaltyReceivers: TypedContractMethod<[
        tokenId: BigNumberish
    ], [
        KAMI721C.RoyaltyDataStructOutput[]
    ], "view">;
    getRentalInfo: TypedContractMethod<[
        tokenId: BigNumberish
    ], [
        [
            string,
            bigint,
            bigint,
            bigint,
            boolean
        ] & {
            renter: string;
            startTime: bigint;
            endTime: bigint;
            rentalPrice: bigint;
            active: boolean;
        }
    ], "view">;
    getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">;
    getTransferRoyaltyReceivers: TypedContractMethod<[
        tokenId: BigNumberish
    ], [
        KAMI721C.RoyaltyDataStructOutput[]
    ], "view">;
    grantRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    hasActiveRentals: TypedContractMethod<[user: AddressLike], [boolean], "view">;
    hasRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        boolean
    ], "view">;
    isApprovedForAll: TypedContractMethod<[
        owner: AddressLike,
        operator: AddressLike
    ], [
        boolean
    ], "view">;
    isRented: TypedContractMethod<[tokenId: BigNumberish], [boolean], "view">;
    mint: TypedContractMethod<[], [void], "nonpayable">;
    mintPrice: TypedContractMethod<[], [bigint], "view">;
    name: TypedContractMethod<[], [string], "view">;
    ownerOf: TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
    pause: TypedContractMethod<[], [void], "nonpayable">;
    paused: TypedContractMethod<[], [boolean], "view">;
    platformAddress: TypedContractMethod<[], [string], "view">;
    platformCommissionPercentage: TypedContractMethod<[], [bigint], "view">;
    renounceRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    rentToken: TypedContractMethod<[
        tokenId: BigNumberish,
        duration: BigNumberish,
        rentalPrice: BigNumberish
    ], [
        void
    ], "nonpayable">;
    revokeRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    royaltyInfo: TypedContractMethod<[
        tokenId: BigNumberish,
        salePrice: BigNumberish
    ], [
        [string, bigint] & {
            receiver: string;
            royaltyAmount: bigint;
        }
    ], "view">;
    royaltyPercentage: TypedContractMethod<[], [bigint], "view">;
    "safeTransferFrom(address,address,uint256)": TypedContractMethod<[
        from: AddressLike,
        to: AddressLike,
        tokenId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    "safeTransferFrom(address,address,uint256,bytes)": TypedContractMethod<[
        from: AddressLike,
        to: AddressLike,
        tokenId: BigNumberish,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    sellToken: TypedContractMethod<[
        to: AddressLike,
        tokenId: BigNumberish,
        salePrice: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setApprovalForAll: TypedContractMethod<[
        operator: AddressLike,
        approved: boolean
    ], [
        void
    ], "nonpayable">;
    setBaseURI: TypedContractMethod<[baseURI: string], [void], "nonpayable">;
    setMintPrice: TypedContractMethod<[
        newMintPrice: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setMintRoyalties: TypedContractMethod<[
        royalties: KAMI721C.RoyaltyDataStruct[]
    ], [
        void
    ], "nonpayable">;
    setPlatformCommission: TypedContractMethod<[
        newPlatformCommissionPercentage: BigNumberish,
        newPlatformAddress: AddressLike
    ], [
        void
    ], "nonpayable">;
    setRoyaltyPercentage: TypedContractMethod<[
        newRoyaltyPercentage: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setTokenMintRoyalties: TypedContractMethod<[
        tokenId: BigNumberish,
        royalties: KAMI721C.RoyaltyDataStruct[]
    ], [
        void
    ], "nonpayable">;
    setTokenTransferRoyalties: TypedContractMethod<[
        tokenId: BigNumberish,
        royalties: KAMI721C.RoyaltyDataStruct[]
    ], [
        void
    ], "nonpayable">;
    setTransferRoyalties: TypedContractMethod<[
        royalties: KAMI721C.RoyaltyDataStruct[]
    ], [
        void
    ], "nonpayable">;
    supportsInterface: TypedContractMethod<[
        interfaceId: BytesLike
    ], [
        boolean
    ], "view">;
    symbol: TypedContractMethod<[], [string], "view">;
    tokenByIndex: TypedContractMethod<[index: BigNumberish], [bigint], "view">;
    tokenOfOwnerByIndex: TypedContractMethod<[
        owner: AddressLike,
        index: BigNumberish
    ], [
        bigint
    ], "view">;
    tokenURI: TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
    totalSupply: TypedContractMethod<[], [bigint], "view">;
    transferFrom: TypedContractMethod<[
        from: AddressLike,
        to: AddressLike,
        tokenId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    unpause: TypedContractMethod<[], [void], "nonpayable">;
    usdcToken: TypedContractMethod<[], [string], "view">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "OWNER_ROLE"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "PLATFORM_ROLE"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "RENTER_ROLE"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "approve"): TypedContractMethod<[
        to: AddressLike,
        tokenId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "balanceOf"): TypedContractMethod<[owner: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "burn"): TypedContractMethod<[tokenId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "endRental"): TypedContractMethod<[tokenId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "extendRental"): TypedContractMethod<[
        tokenId: BigNumberish,
        additionalDuration: BigNumberish,
        additionalPayment: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "getApproved"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
    getFunction(nameOrSignature: "getMintRoyaltyReceivers"): TypedContractMethod<[
        tokenId: BigNumberish
    ], [
        KAMI721C.RoyaltyDataStructOutput[]
    ], "view">;
    getFunction(nameOrSignature: "getRentalInfo"): TypedContractMethod<[
        tokenId: BigNumberish
    ], [
        [
            string,
            bigint,
            bigint,
            bigint,
            boolean
        ] & {
            renter: string;
            startTime: bigint;
            endTime: bigint;
            rentalPrice: bigint;
            active: boolean;
        }
    ], "view">;
    getFunction(nameOrSignature: "getRoleAdmin"): TypedContractMethod<[role: BytesLike], [string], "view">;
    getFunction(nameOrSignature: "getTransferRoyaltyReceivers"): TypedContractMethod<[
        tokenId: BigNumberish
    ], [
        KAMI721C.RoyaltyDataStructOutput[]
    ], "view">;
    getFunction(nameOrSignature: "grantRole"): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "hasActiveRentals"): TypedContractMethod<[user: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "hasRole"): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "isApprovedForAll"): TypedContractMethod<[
        owner: AddressLike,
        operator: AddressLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "isRented"): TypedContractMethod<[tokenId: BigNumberish], [boolean], "view">;
    getFunction(nameOrSignature: "mint"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "mintPrice"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "name"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "ownerOf"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
    getFunction(nameOrSignature: "pause"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "paused"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "platformAddress"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "platformCommissionPercentage"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "renounceRole"): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "rentToken"): TypedContractMethod<[
        tokenId: BigNumberish,
        duration: BigNumberish,
        rentalPrice: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "revokeRole"): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "royaltyInfo"): TypedContractMethod<[
        tokenId: BigNumberish,
        salePrice: BigNumberish
    ], [
        [string, bigint] & {
            receiver: string;
            royaltyAmount: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "royaltyPercentage"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "safeTransferFrom(address,address,uint256)"): TypedContractMethod<[
        from: AddressLike,
        to: AddressLike,
        tokenId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "safeTransferFrom(address,address,uint256,bytes)"): TypedContractMethod<[
        from: AddressLike,
        to: AddressLike,
        tokenId: BigNumberish,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "sellToken"): TypedContractMethod<[
        to: AddressLike,
        tokenId: BigNumberish,
        salePrice: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setApprovalForAll"): TypedContractMethod<[
        operator: AddressLike,
        approved: boolean
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setBaseURI"): TypedContractMethod<[baseURI: string], [void], "nonpayable">;
    getFunction(nameOrSignature: "setMintPrice"): TypedContractMethod<[newMintPrice: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setMintRoyalties"): TypedContractMethod<[
        royalties: KAMI721C.RoyaltyDataStruct[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setPlatformCommission"): TypedContractMethod<[
        newPlatformCommissionPercentage: BigNumberish,
        newPlatformAddress: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setRoyaltyPercentage"): TypedContractMethod<[
        newRoyaltyPercentage: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setTokenMintRoyalties"): TypedContractMethod<[
        tokenId: BigNumberish,
        royalties: KAMI721C.RoyaltyDataStruct[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setTokenTransferRoyalties"): TypedContractMethod<[
        tokenId: BigNumberish,
        royalties: KAMI721C.RoyaltyDataStruct[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setTransferRoyalties"): TypedContractMethod<[
        royalties: KAMI721C.RoyaltyDataStruct[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;
    getFunction(nameOrSignature: "symbol"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "tokenByIndex"): TypedContractMethod<[index: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "tokenOfOwnerByIndex"): TypedContractMethod<[
        owner: AddressLike,
        index: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "tokenURI"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
    getFunction(nameOrSignature: "totalSupply"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "transferFrom"): TypedContractMethod<[
        from: AddressLike,
        to: AddressLike,
        tokenId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "unpause"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "usdcToken"): TypedContractMethod<[], [string], "view">;
    getEvent(key: "Approval"): TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
    getEvent(key: "ApprovalForAll"): TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
    getEvent(key: "MintRoyaltiesUpdated"): TypedContractEvent<MintRoyaltiesUpdatedEvent.InputTuple, MintRoyaltiesUpdatedEvent.OutputTuple, MintRoyaltiesUpdatedEvent.OutputObject>;
    getEvent(key: "Paused"): TypedContractEvent<PausedEvent.InputTuple, PausedEvent.OutputTuple, PausedEvent.OutputObject>;
    getEvent(key: "PlatformCommissionPaid"): TypedContractEvent<PlatformCommissionPaidEvent.InputTuple, PlatformCommissionPaidEvent.OutputTuple, PlatformCommissionPaidEvent.OutputObject>;
    getEvent(key: "PlatformCommissionUpdated"): TypedContractEvent<PlatformCommissionUpdatedEvent.InputTuple, PlatformCommissionUpdatedEvent.OutputTuple, PlatformCommissionUpdatedEvent.OutputObject>;
    getEvent(key: "RentalEnded"): TypedContractEvent<RentalEndedEvent.InputTuple, RentalEndedEvent.OutputTuple, RentalEndedEvent.OutputObject>;
    getEvent(key: "RentalExtended"): TypedContractEvent<RentalExtendedEvent.InputTuple, RentalExtendedEvent.OutputTuple, RentalExtendedEvent.OutputObject>;
    getEvent(key: "RoleAdminChanged"): TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
    getEvent(key: "RoleGranted"): TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
    getEvent(key: "RoleRevoked"): TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
    getEvent(key: "RoyaltyPercentageUpdated"): TypedContractEvent<RoyaltyPercentageUpdatedEvent.InputTuple, RoyaltyPercentageUpdatedEvent.OutputTuple, RoyaltyPercentageUpdatedEvent.OutputObject>;
    getEvent(key: "TokenMintRoyaltiesUpdated"): TypedContractEvent<TokenMintRoyaltiesUpdatedEvent.InputTuple, TokenMintRoyaltiesUpdatedEvent.OutputTuple, TokenMintRoyaltiesUpdatedEvent.OutputObject>;
    getEvent(key: "TokenRented"): TypedContractEvent<TokenRentedEvent.InputTuple, TokenRentedEvent.OutputTuple, TokenRentedEvent.OutputObject>;
    getEvent(key: "TokenSold"): TypedContractEvent<TokenSoldEvent.InputTuple, TokenSoldEvent.OutputTuple, TokenSoldEvent.OutputObject>;
    getEvent(key: "TokenTransferRoyaltiesUpdated"): TypedContractEvent<TokenTransferRoyaltiesUpdatedEvent.InputTuple, TokenTransferRoyaltiesUpdatedEvent.OutputTuple, TokenTransferRoyaltiesUpdatedEvent.OutputObject>;
    getEvent(key: "Transfer"): TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
    getEvent(key: "TransferRoyaltiesUpdated"): TypedContractEvent<TransferRoyaltiesUpdatedEvent.InputTuple, TransferRoyaltiesUpdatedEvent.OutputTuple, TransferRoyaltiesUpdatedEvent.OutputObject>;
    getEvent(key: "TransferRoyaltyDistributed"): TypedContractEvent<TransferRoyaltyDistributedEvent.InputTuple, TransferRoyaltyDistributedEvent.OutputTuple, TransferRoyaltyDistributedEvent.OutputObject>;
    getEvent(key: "Unpaused"): TypedContractEvent<UnpausedEvent.InputTuple, UnpausedEvent.OutputTuple, UnpausedEvent.OutputObject>;
    filters: {
        "Approval(address,address,uint256)": TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
        Approval: TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
        "ApprovalForAll(address,address,bool)": TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
        ApprovalForAll: TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
        "MintRoyaltiesUpdated(tuple[])": TypedContractEvent<MintRoyaltiesUpdatedEvent.InputTuple, MintRoyaltiesUpdatedEvent.OutputTuple, MintRoyaltiesUpdatedEvent.OutputObject>;
        MintRoyaltiesUpdated: TypedContractEvent<MintRoyaltiesUpdatedEvent.InputTuple, MintRoyaltiesUpdatedEvent.OutputTuple, MintRoyaltiesUpdatedEvent.OutputObject>;
        "Paused(address)": TypedContractEvent<PausedEvent.InputTuple, PausedEvent.OutputTuple, PausedEvent.OutputObject>;
        Paused: TypedContractEvent<PausedEvent.InputTuple, PausedEvent.OutputTuple, PausedEvent.OutputObject>;
        "PlatformCommissionPaid(uint256,address,uint256)": TypedContractEvent<PlatformCommissionPaidEvent.InputTuple, PlatformCommissionPaidEvent.OutputTuple, PlatformCommissionPaidEvent.OutputObject>;
        PlatformCommissionPaid: TypedContractEvent<PlatformCommissionPaidEvent.InputTuple, PlatformCommissionPaidEvent.OutputTuple, PlatformCommissionPaidEvent.OutputObject>;
        "PlatformCommissionUpdated(uint96,address)": TypedContractEvent<PlatformCommissionUpdatedEvent.InputTuple, PlatformCommissionUpdatedEvent.OutputTuple, PlatformCommissionUpdatedEvent.OutputObject>;
        PlatformCommissionUpdated: TypedContractEvent<PlatformCommissionUpdatedEvent.InputTuple, PlatformCommissionUpdatedEvent.OutputTuple, PlatformCommissionUpdatedEvent.OutputObject>;
        "RentalEnded(uint256,address,address)": TypedContractEvent<RentalEndedEvent.InputTuple, RentalEndedEvent.OutputTuple, RentalEndedEvent.OutputObject>;
        RentalEnded: TypedContractEvent<RentalEndedEvent.InputTuple, RentalEndedEvent.OutputTuple, RentalEndedEvent.OutputObject>;
        "RentalExtended(uint256,address,uint256)": TypedContractEvent<RentalExtendedEvent.InputTuple, RentalExtendedEvent.OutputTuple, RentalExtendedEvent.OutputObject>;
        RentalExtended: TypedContractEvent<RentalExtendedEvent.InputTuple, RentalExtendedEvent.OutputTuple, RentalExtendedEvent.OutputObject>;
        "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
        RoleAdminChanged: TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
        "RoleGranted(bytes32,address,address)": TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
        RoleGranted: TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
        "RoleRevoked(bytes32,address,address)": TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
        RoleRevoked: TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
        "RoyaltyPercentageUpdated(uint96)": TypedContractEvent<RoyaltyPercentageUpdatedEvent.InputTuple, RoyaltyPercentageUpdatedEvent.OutputTuple, RoyaltyPercentageUpdatedEvent.OutputObject>;
        RoyaltyPercentageUpdated: TypedContractEvent<RoyaltyPercentageUpdatedEvent.InputTuple, RoyaltyPercentageUpdatedEvent.OutputTuple, RoyaltyPercentageUpdatedEvent.OutputObject>;
        "TokenMintRoyaltiesUpdated(uint256,tuple[])": TypedContractEvent<TokenMintRoyaltiesUpdatedEvent.InputTuple, TokenMintRoyaltiesUpdatedEvent.OutputTuple, TokenMintRoyaltiesUpdatedEvent.OutputObject>;
        TokenMintRoyaltiesUpdated: TypedContractEvent<TokenMintRoyaltiesUpdatedEvent.InputTuple, TokenMintRoyaltiesUpdatedEvent.OutputTuple, TokenMintRoyaltiesUpdatedEvent.OutputObject>;
        "TokenRented(uint256,address,address,uint256,uint256,uint256)": TypedContractEvent<TokenRentedEvent.InputTuple, TokenRentedEvent.OutputTuple, TokenRentedEvent.OutputObject>;
        TokenRented: TypedContractEvent<TokenRentedEvent.InputTuple, TokenRentedEvent.OutputTuple, TokenRentedEvent.OutputObject>;
        "TokenSold(uint256,address,address,uint256)": TypedContractEvent<TokenSoldEvent.InputTuple, TokenSoldEvent.OutputTuple, TokenSoldEvent.OutputObject>;
        TokenSold: TypedContractEvent<TokenSoldEvent.InputTuple, TokenSoldEvent.OutputTuple, TokenSoldEvent.OutputObject>;
        "TokenTransferRoyaltiesUpdated(uint256,tuple[])": TypedContractEvent<TokenTransferRoyaltiesUpdatedEvent.InputTuple, TokenTransferRoyaltiesUpdatedEvent.OutputTuple, TokenTransferRoyaltiesUpdatedEvent.OutputObject>;
        TokenTransferRoyaltiesUpdated: TypedContractEvent<TokenTransferRoyaltiesUpdatedEvent.InputTuple, TokenTransferRoyaltiesUpdatedEvent.OutputTuple, TokenTransferRoyaltiesUpdatedEvent.OutputObject>;
        "Transfer(address,address,uint256)": TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
        Transfer: TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
        "TransferRoyaltiesUpdated(tuple[])": TypedContractEvent<TransferRoyaltiesUpdatedEvent.InputTuple, TransferRoyaltiesUpdatedEvent.OutputTuple, TransferRoyaltiesUpdatedEvent.OutputObject>;
        TransferRoyaltiesUpdated: TypedContractEvent<TransferRoyaltiesUpdatedEvent.InputTuple, TransferRoyaltiesUpdatedEvent.OutputTuple, TransferRoyaltiesUpdatedEvent.OutputObject>;
        "TransferRoyaltyDistributed(uint256,address,uint256)": TypedContractEvent<TransferRoyaltyDistributedEvent.InputTuple, TransferRoyaltyDistributedEvent.OutputTuple, TransferRoyaltyDistributedEvent.OutputObject>;
        TransferRoyaltyDistributed: TypedContractEvent<TransferRoyaltyDistributedEvent.InputTuple, TransferRoyaltyDistributedEvent.OutputTuple, TransferRoyaltyDistributedEvent.OutputObject>;
        "Unpaused(address)": TypedContractEvent<UnpausedEvent.InputTuple, UnpausedEvent.OutputTuple, UnpausedEvent.OutputObject>;
        Unpaused: TypedContractEvent<UnpausedEvent.InputTuple, UnpausedEvent.OutputTuple, UnpausedEvent.OutputObject>;
    };
}
