import { SendBulkOptions } from "@honeycomb-protocol/hive-control"; import { PublicKey } from "@solana/web3.js"; import { Artist, BrightSwitch } from "."; import { SwitchAccountArgs } from "../generated"; import { EditionInfos, EligibleBurner, NFT } from "../types"; /** * Represents a Switch. */ export declare class Switch { private _brightswitch; private _data; private _artist; private _address; private _metadata; /** * Creates a new instance of the Switch class. * @param _brightswitch - The BrightSwitch instance associated with the Switch. * @param _data - The Switch's account data. * @param _artist - The Artist associated with this Switch. * @param _address - The public key of the Switch's account. * @param _metadata - The metadata of the collection. */ constructor(_brightswitch: BrightSwitch, _data: SwitchAccountArgs, _artist: Artist, _address: PublicKey, _metadata: NFT | null); /** * Get the address of the Switch. * @returns The Switch's public key. */ address(): PublicKey; /** * Get the data associated with the Switch. * @returns The Switch's account data. */ data(): SwitchAccountArgs; /** * Get the BrightSwitch instance associated with this Switch. * @returns The BrightSwitch instance. */ brightswitch(): BrightSwitch; /** * Get the metadata associated with this Switch. * @returns The metadata of the collection. */ metadata(): NFT; /** * Get the Artist instance associated with this Switch. * @returns The Artist instance. */ get artist(): Artist; /** * Create a new Switch instance. * @param _brightswitch - The BrightSwitch instance associated with the Switch. * @param _data - The Switch's account data. * @param _address - The public key of the Switch's account. * @returns A new Switch instance. */ static new(_brightswitch: BrightSwitch, _data: SwitchAccountArgs, _address: PublicKey): Promise; /** * Create a Switch instance from a given address. * @param address - The public key of the Switch's account. * @param brightswitch - The BrightSwitch instance for managing Switches. * @param refetch - Whether to refetch the Switch data if cached. * @returns A Switch instance. */ static fromAddress(address: PublicKey, brightswitch: BrightSwitch, refetch?: boolean, onChain?: boolean): Promise; /** * Retrieve all Switches based on specified filters. * @param brightswitch - The BrightSwitch instance for managing Switches. * @param filters - Optional filters for querying Switches. * @returns An array of Switch instances. */ static allWithFilter(brightswitch: BrightSwitch, filters?: Partial, onChain?: boolean): Promise; /** * Mint NFTs associated with the Switch. The number of NFTs to mint is determined by the 'RepetitivePNFT' art kind. * @returns An array of mint operation promises. */ private mintNFT; /** * Mint CNFTs associated with the Switch. The number of NFTs to mint is determined by the 'RepetitivePNFT' art kind. * @returns An array of mint operation promises. */ private mintCNFT; /** * * @param burners - the array of burners to check for if they can resume the burn * @returns EligibleBurner[] - the array of burners with the actual count to calcated the amount of NFTs to burn by checking the balance of the user */ private checkForResume; /** * Get eligible Burners for performing a switch burn operation. * @param isResume - Indicates whether the burn operation is a resume. * @param fetch - Whether to fetch data if not already fetched. * @returns An array of eligible Burners and their needed count. */ getEligibleBurners(isResume?: boolean, fetch?: boolean): Promise; /** * Perform a switch burn operation for CNFTs. * @param options - Options for the send operation. * @returns A promise representing the completion of the switch burn operation. */ switchBurnNFTs(apiKey: string, options?: SendBulkOptions & { editionInfos?: EditionInfos; }): Promise; } //# sourceMappingURL=switch.d.ts.map