import { Address } from '../../../../../node_modules/@btc-vision/transaction/build/index.js'; import { CallResult } from '../../../../contracts/CallResult.js'; import { OPNetEvent } from '../../../../contracts/OPNetEvent.js'; import { IOP721Contract, TransferredEventNFT, URIEventNFT } from './IOP721Contract.js'; export type MintStatusChangedEventNFT = { readonly enabled: boolean; }; export type ReservationCreatedEventNFT = { readonly user: Address; readonly amount: bigint; readonly block: bigint; readonly feePaid: bigint; }; export type ReservationClaimedEventNFT = { readonly user: Address; readonly amount: bigint; readonly firstTokenId: bigint; }; export type ReservationExpiredEventNFT = { readonly block: bigint; readonly amountRecovered: bigint; }; export type SetMintEnabled = CallResult<{}, [OPNetEvent]>; export type IsMintEnabled = CallResult<{ enabled: boolean; }, [ ]>; export type ReserveNFT = CallResult<{ readonly remainingPayment: bigint; readonly reservationBlock: bigint; }, [ OPNetEvent ]>; export type ClaimNFT = CallResult<{}, [ OPNetEvent, ...OPNetEvent[] ]>; export type PurgeExpiredNFT = CallResult<{}, [...OPNetEvent[]]>; export type GetStatus = CallResult<{ minted: bigint; reserved: bigint; available: bigint; maxSupply: bigint; blocksWithReservations: number; pricePerToken: bigint; reservationFeePercent: bigint; minReservationFee: bigint; }, [ ]>; export type AirdropNFT = CallResult<{}, [...OPNetEvent[]]>; export type SetTokenURI = CallResult<{}, [OPNetEvent]>; export interface IExtendedOP721Contract extends IOP721Contract { setMintEnabled(enabled: boolean): Promise; isMintEnabled(): Promise; airdrop(addresses: Address[], amounts: number[]): Promise; reserve(quantity: bigint): Promise; claim(): Promise; purgeExpired(): Promise; getStatus(): Promise; setTokenURI(tokenId: bigint, uri: string): Promise; } export type IExtendedOP721 = IExtendedOP721Contract;