import { AztecAddress } from '@aztec/aztec.js/addresses'; import { type AbiType, type AztecAddressLike, type ContractArtifact, EventSelector, type FieldLike, type OptionLike } from '@aztec/aztec.js/abi'; import { ContractBase, ContractFunctionInteraction, type ContractMethod, type ContractStorageLayout, DeployMethod } from '@aztec/aztec.js/contracts'; import { PublicKeys } from '@aztec/aztec.js/keys'; import type { Wallet } from '@aztec/aztec.js/wallet'; export declare const NFTContractArtifact: ContractArtifact; export type Transfer = { from: AztecAddressLike; to: AztecAddressLike; token_id: FieldLike; }; /** * Type-safe interface for contract NFT; */ export declare class NFTContract extends ContractBase { private constructor(); /** * Creates a contract instance. * @param address - The deployed contract's address. * @param wallet - The wallet to use when interacting with the contract. * @returns A new Contract instance. */ static at(address: AztecAddress, wallet: Wallet): NFTContract; /** * Creates a tx to deploy a new instance of this contract. */ static deploy(wallet: Wallet, name: string, symbol: string, minter: AztecAddressLike): DeployMethod; /** * Creates a tx to deploy a new instance of this contract using the specified public keys hash to derive the address. */ static deployWithPublicKeys(publicKeys: PublicKeys, wallet: Wallet, name: string, symbol: string, minter: AztecAddressLike): DeployMethod; /** * Creates a tx to deploy a new instance of this contract using the specified constructor method. */ static deployWithOpts(opts: { publicKeys?: PublicKeys; method?: M; wallet: Wallet; }, ...args: Parameters): DeployMethod; /** * Returns this contract's artifact. */ static get artifact(): ContractArtifact; /** * Returns this contract's artifact with public bytecode. */ static get artifactForPublic(): ContractArtifact; static get storage(): ContractStorageLayout<'symbol' | 'name' | 'private_nfts' | 'nft_exists' | 'public_owners' | 'minter'>; /** Type-safe wrappers for the public methods exposed by the contract. */ methods: { /** burn_private(from: struct, token_id: field, _nonce: field) */ burn_private: ((from: AztecAddressLike, token_id: FieldLike, _nonce: FieldLike) => ContractFunctionInteraction) & Pick; /** burn_public(from: struct, token_id: field, _nonce: field) */ burn_public: ((from: AztecAddressLike, token_id: FieldLike, _nonce: FieldLike) => ContractFunctionInteraction) & Pick; /** constructor_with_minter(name: string, symbol: string, minter: struct) */ constructor_with_minter: ((name: string, symbol: string, minter: AztecAddressLike) => ContractFunctionInteraction) & Pick; /** get_private_nfts(owner: struct, page_index: integer) */ get_private_nfts: ((owner: AztecAddressLike, page_index: (bigint | number)) => ContractFunctionInteraction) & Pick; /** initialize_transfer_commitment(to: struct, completer: struct) */ initialize_transfer_commitment: ((to: AztecAddressLike, completer: AztecAddressLike) => ContractFunctionInteraction) & Pick; /** mint_to_private(to: struct, token_id: field) */ mint_to_private: ((to: AztecAddressLike, token_id: FieldLike) => ContractFunctionInteraction) & Pick; /** mint_to_public(to: struct, token_id: field) */ mint_to_public: ((to: AztecAddressLike, token_id: FieldLike) => ContractFunctionInteraction) & Pick; /** offchain_receive(messages: struct) */ offchain_receive: ((messages: { ciphertext: FieldLike[]; recipient: AztecAddressLike; tx_hash: OptionLike; anchor_block_timestamp: (bigint | number); }[]) => ContractFunctionInteraction) & Pick; /** public_dispatch(selector: field) */ public_dispatch: ((selector: FieldLike) => ContractFunctionInteraction) & Pick; /** public_get_name() */ public_get_name: (() => ContractFunctionInteraction) & Pick; /** public_get_symbol() */ public_get_symbol: (() => ContractFunctionInteraction) & Pick; /** public_owner_of(token_id: field) */ public_owner_of: ((token_id: FieldLike) => ContractFunctionInteraction) & Pick; /** sync_state(scope: struct) */ sync_state: ((scope: AztecAddressLike) => ContractFunctionInteraction) & Pick; /** transfer_private_to_commitment(from: struct, token_id: field, commitment: field, _nonce: field) */ transfer_private_to_commitment: ((from: AztecAddressLike, token_id: FieldLike, commitment: FieldLike, _nonce: FieldLike) => ContractFunctionInteraction) & Pick; /** transfer_private_to_private(from: struct, to: struct, token_id: field, _nonce: field) */ transfer_private_to_private: ((from: AztecAddressLike, to: AztecAddressLike, token_id: FieldLike, _nonce: FieldLike) => ContractFunctionInteraction) & Pick; /** transfer_private_to_public(from: struct, to: struct, token_id: field, _nonce: field) */ transfer_private_to_public: ((from: AztecAddressLike, to: AztecAddressLike, token_id: FieldLike, _nonce: FieldLike) => ContractFunctionInteraction) & Pick; /** transfer_private_to_public_with_commitment(from: struct, to: struct, token_id: field, _nonce: field) */ transfer_private_to_public_with_commitment: ((from: AztecAddressLike, to: AztecAddressLike, token_id: FieldLike, _nonce: FieldLike) => ContractFunctionInteraction) & Pick; /** transfer_public_to_commitment(from: struct, token_id: field, commitment: field, _nonce: field) */ transfer_public_to_commitment: ((from: AztecAddressLike, token_id: FieldLike, commitment: FieldLike, _nonce: FieldLike) => ContractFunctionInteraction) & Pick; /** transfer_public_to_private(from: struct, to: struct, token_id: field, _nonce: field) */ transfer_public_to_private: ((from: AztecAddressLike, to: AztecAddressLike, token_id: FieldLike, _nonce: FieldLike) => ContractFunctionInteraction) & Pick; /** transfer_public_to_public(from: struct, to: struct, token_id: field, _nonce: field) */ transfer_public_to_public: ((from: AztecAddressLike, to: AztecAddressLike, token_id: FieldLike, _nonce: FieldLike) => ContractFunctionInteraction) & Pick; }; static get events(): { Transfer: { abiType: AbiType; eventSelector: EventSelector; fieldNames: string[]; }; }; }