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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MintRoyaltiesUpdatedEvent { type InputTuple = [royalties: KAMI721C.RoyaltyDataStruct[]]; type OutputTuple = [royalties: KAMI721C.RoyaltyDataStructOutput[]]; interface OutputObject { royalties: KAMI721C.RoyaltyDataStructOutput[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PausedEvent { type InputTuple = [account: AddressLike]; type OutputTuple = [account: string]; interface OutputObject { account: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoyaltyPercentageUpdatedEvent { type InputTuple = [newPercentage: BigNumberish]; type OutputTuple = [newPercentage: bigint]; interface OutputObject { newPercentage: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransferRoyaltiesUpdatedEvent { type InputTuple = [royalties: KAMI721C.RoyaltyDataStruct[]]; type OutputTuple = [royalties: KAMI721C.RoyaltyDataStructOutput[]]; interface OutputObject { royalties: KAMI721C.RoyaltyDataStructOutput[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } 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; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UnpausedEvent { type InputTuple = [account: AddressLike]; type OutputTuple = [account: string]; interface OutputObject { account: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface KAMI721C extends BaseContract { connect(runner?: ContractRunner | null): KAMI721C; waitForDeployment(): Promise; interface: KAMI721CInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; 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(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; getEvent(key: "ApprovalForAll"): TypedContractEvent; getEvent(key: "MintRoyaltiesUpdated"): TypedContractEvent; getEvent(key: "Paused"): TypedContractEvent; getEvent(key: "PlatformCommissionPaid"): TypedContractEvent; getEvent(key: "PlatformCommissionUpdated"): TypedContractEvent; getEvent(key: "RentalEnded"): TypedContractEvent; getEvent(key: "RentalExtended"): TypedContractEvent; getEvent(key: "RoleAdminChanged"): TypedContractEvent; getEvent(key: "RoleGranted"): TypedContractEvent; getEvent(key: "RoleRevoked"): TypedContractEvent; getEvent(key: "RoyaltyPercentageUpdated"): TypedContractEvent; getEvent(key: "TokenMintRoyaltiesUpdated"): TypedContractEvent; getEvent(key: "TokenRented"): TypedContractEvent; getEvent(key: "TokenSold"): TypedContractEvent; getEvent(key: "TokenTransferRoyaltiesUpdated"): TypedContractEvent; getEvent(key: "Transfer"): TypedContractEvent; getEvent(key: "TransferRoyaltiesUpdated"): TypedContractEvent; getEvent(key: "TransferRoyaltyDistributed"): TypedContractEvent; getEvent(key: "Unpaused"): TypedContractEvent; filters: { "Approval(address,address,uint256)": TypedContractEvent; Approval: TypedContractEvent; "ApprovalForAll(address,address,bool)": TypedContractEvent; ApprovalForAll: TypedContractEvent; "MintRoyaltiesUpdated(tuple[])": TypedContractEvent; MintRoyaltiesUpdated: TypedContractEvent; "Paused(address)": TypedContractEvent; Paused: TypedContractEvent; "PlatformCommissionPaid(uint256,address,uint256)": TypedContractEvent; PlatformCommissionPaid: TypedContractEvent; "PlatformCommissionUpdated(uint96,address)": TypedContractEvent; PlatformCommissionUpdated: TypedContractEvent; "RentalEnded(uint256,address,address)": TypedContractEvent; RentalEnded: TypedContractEvent; "RentalExtended(uint256,address,uint256)": TypedContractEvent; RentalExtended: TypedContractEvent; "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent; RoleAdminChanged: TypedContractEvent; "RoleGranted(bytes32,address,address)": TypedContractEvent; RoleGranted: TypedContractEvent; "RoleRevoked(bytes32,address,address)": TypedContractEvent; RoleRevoked: TypedContractEvent; "RoyaltyPercentageUpdated(uint96)": TypedContractEvent; RoyaltyPercentageUpdated: TypedContractEvent; "TokenMintRoyaltiesUpdated(uint256,tuple[])": TypedContractEvent; TokenMintRoyaltiesUpdated: TypedContractEvent; "TokenRented(uint256,address,address,uint256,uint256,uint256)": TypedContractEvent; TokenRented: TypedContractEvent; "TokenSold(uint256,address,address,uint256)": TypedContractEvent; TokenSold: TypedContractEvent; "TokenTransferRoyaltiesUpdated(uint256,tuple[])": TypedContractEvent; TokenTransferRoyaltiesUpdated: TypedContractEvent; "Transfer(address,address,uint256)": TypedContractEvent; Transfer: TypedContractEvent; "TransferRoyaltiesUpdated(tuple[])": TypedContractEvent; TransferRoyaltiesUpdated: TypedContractEvent; "TransferRoyaltyDistributed(uint256,address,uint256)": TypedContractEvent; TransferRoyaltyDistributed: TypedContractEvent; "Unpaused(address)": TypedContractEvent; Unpaused: TypedContractEvent; }; }