import { type Address, type Cell, type ContractProvider, type Transaction, type Sender, type ExternalAddress } from 'ton-core'; import { StandardNftCollectionRoyalty } from '../../standard/StandardNftCollectionRoyalty'; import { type Maybe } from 'ton-core/dist/utils/maybe'; import { type Send } from '../../utils/send'; import { type FullContentConfig } from '../../content/config'; export type NftCollectionData = { ownerAddress: Address; nextItemIndex: number | bigint; collectionContent: FullContentConfig; commonContent: FullContentConfig; nftItemCode: Cell; royaltyParams: RoyaltyParams; }; export type RoyaltyParams = { royaltyFactor: number; royaltyBase: number; royaltyAddress: Address; }; export type NftMintFromTransaction = { queryId: number; from?: Address | Maybe; to?: Address | Maybe; itemIndex: number; passAmount: bigint; nftItemMessage: Cell; }; export type OwnershipTransferFromTransaction = { queryId: number; oldOwner?: Address | Maybe; newOwner: Address; }; /** * Class representing a Non-Fungible Token (NFT) collection contract */ export declare class NftCollection extends StandardNftCollectionRoyalty { static code: Cell; /** * Builds the data cell for an NFT collection * @param data - The data for the NFT collection * @returns A cell containing the data for the NFT collection */ static buildDataCell(data: NftCollectionData): Cell; /** * Creates an `NftCollection` instance from an address * @param address - The address to create from * @returns A new `NftCollection` instance */ static createFromAddress(address: Address): NftCollection; /** * Creates an `NftCollection` instance from a configuration object * @param config - The configuration data for the NFT collection * @param workchain - The workchain ID (default is 0) * @returns A new `NftCollection` instance */ static createFromConfig(config: NftCollectionData, workchain?: number): Promise; /** * Sends a deploy command to the contract * @param provider - The contract provider * @param via - The sender of the deploy command * @param value - The value to send with the command */ sendDeploy(provider: ContractProvider, via: Sender, value: bigint): Promise; /** * Sends a mint command to the contract * @param provider - The contract provider * @param via - The sender of the mint command * @param params - The parameters for the mint command */ sendMint(provider: ContractProvider, via: Sender, params: Send & { passAmount: bigint; itemIndex: number; itemOwnerAddress: Address; itemContent: string; }): Promise; /** * Sends a change owner command to the contract * @param provider - The contract provider * @param via - The sender of the change owner command * @param params - The parameters for the change owner command */ sendChangeOwner(provider: ContractProvider, via: Sender, params: Send & { newOwner: Address; }): Promise; /** * Parses a mint transaction * @param tx - The transaction to parse * @returns The parsed mint transaction, or undefined if parsing failed */ static parseMint(tx: Transaction): NftMintFromTransaction | undefined; /** * Parses an ownership transfer transaction * @param tx - The transaction to parse * @returns The parsed ownership transfer transaction, or undefined if parsing failed */ static parseOwnershipTransfer(tx: Transaction): OwnershipTransferFromTransaction | undefined; } //# sourceMappingURL=NftCollection.d.ts.map