import { AccountUpdate, Bool, DeployArgs, PublicKey, SmartContract, State, VerificationKey, UInt64, Field } from "o1js"; import { FungibleTokenAdminBase } from "@silvana-one/token"; import { TransferExtendedParams } from "../interfaces/index.js"; import { Auction, AuctionFactory } from "./auction.js"; export interface NFTSharesAdminDeployProps extends Exclude { admin: PublicKey; owner: PublicKey; } export interface NFTSharesOwnerDeployProps extends Exclude { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; uri: string; } declare const NFTSharesDataPacked_base: (new (value: { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) & { _isStruct: true; } & Omit, "fromFields"> & { fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; } & { fromValue: (value: { adminX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; toInput: (x: { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { adminX: string; ownerX: string; collectionX: string; nftX: string; auctionX: string; data: string; }; fromJSON: (x: { adminX: string; ownerX: string; collectionX: string; nftX: string; auctionX: string; data: string; }) => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; empty: () => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; }; export declare class NFTSharesDataPacked extends NFTSharesDataPacked_base { } declare const NFTSharesData_base: (new (value: { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }) => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }) & { _isStruct: true; } & Omit, "fromFields"> & { fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }; } & { fromValue: (value: { admin: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; owner: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; collection: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; nft: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; auction: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; maxBuyPrice: number | bigint | UInt64; minSellPrice: number | bigint | UInt64; }) => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }; toInput: (x: { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }) => { admin: string; owner: string; collection: string; nft: string; auction: string; maxBuyPrice: string; minSellPrice: string; }; fromJSON: (x: { admin: string; owner: string; collection: string; nft: string; auction: string; maxBuyPrice: string; minSellPrice: string; }) => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }; empty: () => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }; }; export declare class NFTSharesData extends NFTSharesData_base { pack(): NFTSharesDataPacked; static unpack(packed: NFTSharesDataPacked): NFTSharesData; } export type DefineNFTSharesFactory = (params: { auctionContract: () => ReturnType; }) => ReturnType; export declare function NFTSharesFactory(params: { auctionContract: () => ReturnType; }): { NFTSharesAdmin: { new (address: PublicKey, tokenId?: Field): { admin: State; owner: State; deploy(props: NFTSharesAdminDeployProps): Promise; updateVerificationKey(vk: VerificationKey): Promise; ensureAdminSignature(): AccountUpdate; getOwner(): { /** * The public key of the contract's administrator. * This account has the authority to perform administrative actions such as pausing the contract or upgrading the verification key. */ data: State; subscriptionOpen: State; sharesOutstanding: State; /** * Deploys the contract with initial settings. * @param props - Deployment properties including admin, upgradeAuthority, uri, canPause, and isPaused. */ deploy(props: NFTSharesOwnerDeployProps): Promise; /** * Ensures that the transaction is authorized by the contract owner. * @returns A signed `AccountUpdate` from the admin. */ ensureOwnerSignature(): NFTSharesData; getAuction(auction: PublicKey): { auctionData: State; bidAmount: State; settled: State; deploy(args: import("./auction.js").NonFungibleTokenAuctionContractDeployProps): Promise; events: { bid: typeof import("./auction.js").AuctionBidEvent; settleAuction: typeof import("../interfaces/types.js").TransferByProofParams; canTransfer: typeof import("../interfaces/events.js").TransferEvent; settlePayment: typeof UInt64; settleAuctioneerPayment: typeof UInt64; withdraw: typeof UInt64; }; getCollectionContract(address: PublicKey): import("../interfaces/collection.js").NFTCollectionBase; calculateSaleFee(params: { price: UInt64; saleFee: import("o1js").UInt32; transferFee: UInt64; }): UInt64; bid(price: UInt64, bidder: PublicKey): Promise; getAuctionState(): Promise; settleAuction(): Promise; withdrawNFT(): Promise; canTransfer(params: TransferExtendedParams): Promise; settlePayment(): Promise; settleAuctioneerPayment(amount: UInt64): Promise; withdraw(): Promise; "__#private@#private": any; address: PublicKey; tokenId: Field; init(): void; requireSignature(): void; skipAuthorization(): void; get self(): AccountUpdate; newSelf(methodName?: string): AccountUpdate; sender: { self: SmartContract; getUnconstrained(): PublicKey; getAndRequireSignature(): PublicKey; }; get account(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Account; get network(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Network; get currentSlot(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").CurrentSlot; approve(update: AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void; send(args: { to: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; get balance(): { addInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; emitEventIf(condition: Bool, type: K, event: any): void; emitEvent(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").UInt32; chainStatus: string; }[]>; }; /** * Allows the owner to mint shares. * This method should NOT called directly, but through the FungibleToken.mint() * * @param _accountUpdate - The account update containing the sender's information. * @returns A boolean indicating if the minting is allowed. */ canMint(_accountUpdate: AccountUpdate): Promise; withdraw(shares: UInt64): Promise; closeSubscription(): Promise; bid(price: UInt64): Promise; canTransfer(params: TransferExtendedParams): Promise; canPause(collection: PublicKey, nft: PublicKey): Promise; canResume(collection: PublicKey, nft: PublicKey): Promise; canChangeVerificationKey(collection: PublicKey, nft: PublicKey, vk: VerificationKey): Promise; canApproveAddress(collection: PublicKey, nft: PublicKey, approved: PublicKey): Promise; "__#private@#private": any; address: PublicKey; tokenId: Field; init(): void; requireSignature(): void; skipAuthorization(): void; get self(): AccountUpdate; newSelf(methodName?: string): AccountUpdate; sender: { self: SmartContract; getUnconstrained(): PublicKey; getAndRequireSignature(): PublicKey; }; get account(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Account; get network(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Network; get currentSlot(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").CurrentSlot; approve(update: AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void; send(args: { to: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; get balance(): { addInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; events: { [key: string]: import("o1js").FlexibleProvablePure; }; emitEventIf(condition: Bool, type: K, event: any): void; emitEvent(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").UInt32; chainStatus: string; }[]>; }; canMint(_accountUpdate: AccountUpdate): Promise; canChangeAdmin(_admin: PublicKey): Promise; canPause(): Promise; canResume(): Promise; canChangeVerificationKey(_vk: VerificationKey): Promise; "__#private@#private": any; address: PublicKey; tokenId: Field; init(): void; requireSignature(): void; skipAuthorization(): void; get self(): AccountUpdate; newSelf(methodName?: string): AccountUpdate; sender: { self: SmartContract; getUnconstrained(): PublicKey; getAndRequireSignature(): PublicKey; }; get account(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Account; get network(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Network; get currentSlot(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").CurrentSlot; approve(update: AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void; send(args: { to: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; get balance(): { addInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; events: { [key: string]: import("o1js").FlexibleProvablePure; }; emitEventIf(condition: Bool, type: K, event: any): void; emitEvent(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").UInt32; chainStatus: string; }[]>; }; _methods?: import("node_modules/o1js/dist/node/lib/proof-system/zkprogram.js").MethodInterface[]; _methodMetadata?: Record; _provers?: import("node_modules/o1js/dist/node/bindings.js").Pickles.Prover[]; _verificationKey?: { data: string; hash: Field; }; Proof(): { new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: unknown; publicInput: import("o1js").ZkappPublicInput; publicOutput: undefined; maxProofsVerified: 0 | 2 | 1; }): { verify(): void; verifyIf(condition: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool): void; publicInput: import("o1js").ZkappPublicInput; publicOutput: undefined; proof: unknown; maxProofsVerified: 0 | 2 | 1; shouldVerify: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; declare(): boolean; toJSON(): import("o1js").JsonProof; publicFields(): { input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; }; }; publicInputType: Omit, "fromFields"> & { fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; } & { toInput: (x: { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { fields?: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | undefined; packed?: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, number][] | undefined; }; toJSON: (x: { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { accountUpdate: string; calls: string; }; fromJSON: (x: { accountUpdate: string; calls: string; }) => { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; empty: () => { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; }; publicOutputType: import("o1js").ProvablePureExtended; tag: () => typeof SmartContract; fromJSON>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise, import("o1js").InferProvable>>; dummy(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise>; readonly provable: { toFields: (value: import("o1js").Proof) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; toAuxiliary: (value?: import("o1js").Proof | undefined) => any[]; fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof; sizeInFields(): number; check: (value: import("o1js").Proof) => void; toValue: (x: import("o1js").Proof) => import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue; fromValue: (x: import("o1js").Proof | import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue) => import("o1js").Proof; toCanonical?: ((x: import("o1js").Proof) => import("o1js").Proof) | undefined; }; publicFields(value: import("o1js").ProofBase): { input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; }; _proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown; _proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string; }; compile({ cache, forceRecompile }?: { cache?: import("o1js").Cache | undefined; forceRecompile?: boolean | undefined; }): Promise<{ verificationKey: { data: string; hash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; provers: import("node_modules/o1js/dist/node/bindings.js").Pickles.Prover[]; verify: (statement: import("node_modules/o1js/dist/node/bindings.js").Pickles.Statement, proof: unknown) => Promise; }>; digest(): Promise; getMaxProofsVerified(): Promise<0 | 2 | 1>; setVerificationKeyUnsafe(verificationKey: { data: string; hash: Field | string; }): void; runOutsideCircuit(run: () => void): void; analyzeMethods({ printSummary }?: { printSummary?: boolean | undefined; }): Promise>; }; NFTSharesOwner: { new (address: PublicKey, tokenId?: Field): { /** * The public key of the contract's administrator. * This account has the authority to perform administrative actions such as pausing the contract or upgrading the verification key. */ data: State; subscriptionOpen: State; sharesOutstanding: State; /** * Deploys the contract with initial settings. * @param props - Deployment properties including admin, upgradeAuthority, uri, canPause, and isPaused. */ deploy(props: NFTSharesOwnerDeployProps): Promise; /** * Ensures that the transaction is authorized by the contract owner. * @returns A signed `AccountUpdate` from the admin. */ ensureOwnerSignature(): NFTSharesData; getAuction(auction: PublicKey): { auctionData: State; bidAmount: State; settled: State; deploy(args: import("./auction.js").NonFungibleTokenAuctionContractDeployProps): Promise; events: { bid: typeof import("./auction.js").AuctionBidEvent; settleAuction: typeof import("../interfaces/types.js").TransferByProofParams; canTransfer: typeof import("../interfaces/events.js").TransferEvent; settlePayment: typeof UInt64; settleAuctioneerPayment: typeof UInt64; withdraw: typeof UInt64; }; getCollectionContract(address: PublicKey): import("../interfaces/collection.js").NFTCollectionBase; calculateSaleFee(params: { price: UInt64; saleFee: import("o1js").UInt32; transferFee: UInt64; }): UInt64; bid(price: UInt64, bidder: PublicKey): Promise; getAuctionState(): Promise; settleAuction(): Promise; withdrawNFT(): Promise; canTransfer(params: TransferExtendedParams): Promise; settlePayment(): Promise; settleAuctioneerPayment(amount: UInt64): Promise; withdraw(): Promise; "__#private@#private": any; address: PublicKey; tokenId: Field; init(): void; requireSignature(): void; skipAuthorization(): void; get self(): AccountUpdate; newSelf(methodName?: string): AccountUpdate; sender: { self: SmartContract; getUnconstrained(): PublicKey; getAndRequireSignature(): PublicKey; }; get account(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Account; get network(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Network; get currentSlot(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").CurrentSlot; approve(update: AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void; send(args: { to: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; get balance(): { addInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; emitEventIf(condition: Bool, type: K, event: any): void; emitEvent(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").UInt32; chainStatus: string; }[]>; }; /** * Allows the owner to mint shares. * This method should NOT called directly, but through the FungibleToken.mint() * * @param _accountUpdate - The account update containing the sender's information. * @returns A boolean indicating if the minting is allowed. */ canMint(_accountUpdate: AccountUpdate): Promise; withdraw(shares: UInt64): Promise; closeSubscription(): Promise; bid(price: UInt64): Promise; canTransfer(params: TransferExtendedParams): Promise; canPause(collection: PublicKey, nft: PublicKey): Promise; canResume(collection: PublicKey, nft: PublicKey): Promise; canChangeVerificationKey(collection: PublicKey, nft: PublicKey, vk: VerificationKey): Promise; canApproveAddress(collection: PublicKey, nft: PublicKey, approved: PublicKey): Promise; "__#private@#private": any; address: PublicKey; tokenId: Field; init(): void; requireSignature(): void; skipAuthorization(): void; get self(): AccountUpdate; newSelf(methodName?: string): AccountUpdate; sender: { self: SmartContract; getUnconstrained(): PublicKey; getAndRequireSignature(): PublicKey; }; get account(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Account; get network(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Network; get currentSlot(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").CurrentSlot; approve(update: AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void; send(args: { to: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; get balance(): { addInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; events: { [key: string]: import("o1js").FlexibleProvablePure; }; emitEventIf(condition: Bool, type: K, event: any): void; emitEvent(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").UInt32; chainStatus: string; }[]>; }; _methods?: import("node_modules/o1js/dist/node/lib/proof-system/zkprogram.js").MethodInterface[]; _methodMetadata?: Record; _provers?: import("node_modules/o1js/dist/node/bindings.js").Pickles.Prover[]; _verificationKey?: { data: string; hash: Field; }; Proof(): { new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: unknown; publicInput: import("o1js").ZkappPublicInput; publicOutput: undefined; maxProofsVerified: 0 | 2 | 1; }): { verify(): void; verifyIf(condition: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool): void; publicInput: import("o1js").ZkappPublicInput; publicOutput: undefined; proof: unknown; maxProofsVerified: 0 | 2 | 1; shouldVerify: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; declare(): boolean; toJSON(): import("o1js").JsonProof; publicFields(): { input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; }; }; publicInputType: Omit, "fromFields"> & { fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; } & { toInput: (x: { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { fields?: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | undefined; packed?: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, number][] | undefined; }; toJSON: (x: { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { accountUpdate: string; calls: string; }; fromJSON: (x: { accountUpdate: string; calls: string; }) => { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; empty: () => { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; }; publicOutputType: import("o1js").ProvablePureExtended; tag: () => typeof SmartContract; fromJSON>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise, import("o1js").InferProvable>>; dummy(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise>; readonly provable: { toFields: (value: import("o1js").Proof) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; toAuxiliary: (value?: import("o1js").Proof | undefined) => any[]; fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof; sizeInFields(): number; check: (value: import("o1js").Proof) => void; toValue: (x: import("o1js").Proof) => import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue; fromValue: (x: import("o1js").Proof | import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue) => import("o1js").Proof; toCanonical?: ((x: import("o1js").Proof) => import("o1js").Proof) | undefined; }; publicFields(value: import("o1js").ProofBase): { input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; }; _proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown; _proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string; }; compile({ cache, forceRecompile }?: { cache?: import("o1js").Cache | undefined; forceRecompile?: boolean | undefined; }): Promise<{ verificationKey: { data: string; hash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; provers: import("node_modules/o1js/dist/node/bindings.js").Pickles.Prover[]; verify: (statement: import("node_modules/o1js/dist/node/bindings.js").Pickles.Statement, proof: unknown) => Promise; }>; digest(): Promise; getMaxProofsVerified(): Promise<0 | 2 | 1>; setVerificationKeyUnsafe(verificationKey: { data: string; hash: Field | string; }): void; runOutsideCircuit(run: () => void): void; analyzeMethods({ printSummary }?: { printSummary?: boolean | undefined; }): Promise>; }; FungibleToken: { new (address: PublicKey, tokenId?: Field): { decimals: State; admin: State; paused: State; readonly events: { SetAdmin: typeof import("@silvana-one/token").SetAdminEvent; Pause: typeof import("@silvana-one/token").PauseEvent; Mint: typeof import("@silvana-one/token").MintEvent; Burn: typeof import("@silvana-one/token").BurnEvent; BalanceChange: typeof import("@silvana-one/token").BalanceChangeEvent; }; deploy(props: import("@silvana-one/token").FungibleTokenDeployProps): Promise; updateVerificationKey(vk: VerificationKey): Promise; initialize(admin: PublicKey, decimals: import("o1js").UInt8, startPaused: Bool): Promise; getAdminContract(): Promise; setAdmin(admin: PublicKey): Promise; mint(recipient: PublicKey, amount: UInt64): Promise; burn(from: PublicKey, amount: UInt64): Promise; pause(): Promise; resume(): Promise; transfer(from: PublicKey, to: PublicKey, amount: UInt64): Promise; checkPermissionsUpdate(update: AccountUpdate): void; approveBase(updates: import("o1js").AccountUpdateForest): Promise; getBalanceOf(address: PublicKey): Promise; getCirculating(): Promise; getDecimals(): Promise; deriveTokenId(): import("node_modules/o1js/dist/node/lib/provable/field.js").Field; get internal(): { mint({ address, amount, }: { address: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; burn({ address, amount, }: { address: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; send({ from, to, amount, }: { from: PublicKey | AccountUpdate | SmartContract; to: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; }; forEachUpdate(updates: import("o1js").AccountUpdateForest, callback: (update: AccountUpdate, usesToken: Bool) => void): void; checkZeroBalanceChange(updates: import("o1js").AccountUpdateForest): void; approveAccountUpdate(accountUpdate: AccountUpdate | import("o1js").AccountUpdateTree): Promise; approveAccountUpdates(accountUpdates: (AccountUpdate | import("o1js").AccountUpdateTree)[]): Promise; "__#private@#private": any; address: PublicKey; tokenId: Field; init(): void; requireSignature(): void; skipAuthorization(): void; get self(): AccountUpdate; newSelf(methodName?: string): AccountUpdate; sender: { self: SmartContract; getUnconstrained(): PublicKey; getAndRequireSignature(): PublicKey; }; get account(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Account; get network(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Network; get currentSlot(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").CurrentSlot; approve(update: AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void; send(args: { to: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; get balance(): { addInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; emitEventIf(condition: Bool, type: K, event: any): void; emitEvent(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").UInt32; chainStatus: string; }[]>; }; MAX_ACCOUNT_UPDATES: number; _methods?: import("node_modules/o1js/dist/node/lib/proof-system/zkprogram.js").MethodInterface[]; _methodMetadata?: Record; _provers?: import("node_modules/o1js/dist/node/bindings.js").Pickles.Prover[]; _verificationKey?: { data: string; hash: Field; }; Proof(): { new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: unknown; publicInput: import("o1js").ZkappPublicInput; publicOutput: undefined; maxProofsVerified: 0 | 2 | 1; }): { verify(): void; verifyIf(condition: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool): void; publicInput: import("o1js").ZkappPublicInput; publicOutput: undefined; proof: unknown; maxProofsVerified: 0 | 2 | 1; shouldVerify: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; declare(): boolean; toJSON(): import("o1js").JsonProof; publicFields(): { input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; }; }; publicInputType: Omit, "fromFields"> & { fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; } & { toInput: (x: { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { fields?: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | undefined; packed?: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, number][] | undefined; }; toJSON: (x: { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { accountUpdate: string; calls: string; }; fromJSON: (x: { accountUpdate: string; calls: string; }) => { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; empty: () => { accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; }; publicOutputType: import("o1js").ProvablePureExtended; tag: () => typeof SmartContract; fromJSON>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise, import("o1js").InferProvable>>; dummy(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise>; readonly provable: { toFields: (value: import("o1js").Proof) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; toAuxiliary: (value?: import("o1js").Proof | undefined) => any[]; fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof; sizeInFields(): number; check: (value: import("o1js").Proof) => void; toValue: (x: import("o1js").Proof) => import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue; fromValue: (x: import("o1js").Proof | import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue) => import("o1js").Proof; toCanonical?: ((x: import("o1js").Proof) => import("o1js").Proof) | undefined; }; publicFields(value: import("o1js").ProofBase): { input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]; }; _proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown; _proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string; }; compile({ cache, forceRecompile }?: { cache?: import("o1js").Cache | undefined; forceRecompile?: boolean | undefined; }): Promise<{ verificationKey: { data: string; hash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; provers: import("node_modules/o1js/dist/node/bindings.js").Pickles.Prover[]; verify: (statement: import("node_modules/o1js/dist/node/bindings.js").Pickles.Statement, proof: unknown) => Promise; }>; digest(): Promise; getMaxProofsVerified(): Promise<0 | 2 | 1>; setVerificationKeyUnsafe(verificationKey: { data: string; hash: Field | string; }): void; runOutsideCircuit(run: () => void): void; analyzeMethods({ printSummary }?: { printSummary?: boolean | undefined; }): Promise>; }; }; export {};