///
import { TransactionInstruction } from '@solana/web3.js';
import BN from 'bn.js';
import { StringPublicKey } from '../utils';
import { DataV2 } from '@metaplex-foundation/mpl-token-metadata';
export declare const METADATA_PREFIX = "metadata";
export declare const EDITION = "edition";
export declare const RESERVATION = "reservation";
export declare const MAX_NAME_LENGTH = 32;
export declare const MAX_SYMBOL_LENGTH = 10;
export declare const MAX_URI_LENGTH = 200;
export declare const MAX_CREATOR_LIMIT = 5;
export declare const MAX_CREATOR_LEN: number;
export declare const MAX_METADATA_LEN: number;
export declare const MAX_EDITION_LEN: number;
export declare const EDITION_MARKER_BIT_SIZE = 248;
export declare enum MetadataKey {
Uninitialized = 0,
MetadataV1 = 4,
EditionV1 = 1,
MasterEditionV1 = 2,
MasterEditionV2 = 6,
EditionMarker = 7
}
export declare enum MetadataCategory {
Audio = "audio",
Video = "video",
Image = "image",
VR = "vr",
HTML = "html"
}
export declare type MetadataFile = {
uri: string;
type: string;
};
export declare type FileOrString = MetadataFile | string;
export declare type Attribute = {
trait_type?: string;
display_type?: string;
value: string | number;
};
export declare type Collection = {
key: StringPublicKey;
verified: number;
};
export interface IMetadataExtension {
name: string;
symbol: string;
collection: string;
creators: Creator[] | null;
description: string;
image: string;
animation_url?: string;
attributes?: Attribute[];
external_url: string;
seller_fee_basis_points: number;
properties: {
files?: FileOrString[];
category: MetadataCategory;
maxSupply?: number;
creators?: {
address: string;
shares: number;
}[];
};
}
export declare class MasterEditionV1 {
key: MetadataKey;
supply: BN;
maxSupply?: BN;
printingMint: StringPublicKey;
oneTimePrintingAuthorizationMint: StringPublicKey;
constructor(args: {
key: MetadataKey;
supply: BN;
maxSupply?: BN;
printingMint: StringPublicKey;
oneTimePrintingAuthorizationMint: StringPublicKey;
});
}
export declare class MasterEditionV2 {
key: MetadataKey;
supply: BN;
maxSupply?: BN;
constructor(args: {
key: MetadataKey;
supply: BN;
maxSupply?: BN;
});
}
export declare class EditionMarker {
key: MetadataKey;
ledger: number[];
constructor(args: {
key: MetadataKey;
ledger: number[];
});
editionTaken(edition: number): boolean;
}
export declare class Edition {
key: MetadataKey;
parent: StringPublicKey;
edition: BN;
constructor(args: {
key: MetadataKey;
parent: StringPublicKey;
edition: BN;
});
}
export declare class Creator {
address: StringPublicKey;
verified: boolean;
share: number;
constructor(args: {
address: StringPublicKey;
verified: boolean;
share: number;
});
}
export declare class Data {
name: string;
symbol: string;
uri: string;
sellerFeeBasisPoints: number;
creators: Creator[] | null;
constructor(args: {
name: string;
symbol: string;
uri: string;
sellerFeeBasisPoints: number;
creators: Creator[] | null;
});
}
export declare class Metadata {
key: MetadataKey;
updateAuthority: StringPublicKey;
mint: StringPublicKey;
data: Data;
primarySaleHappened: boolean;
isMutable: boolean;
editionNonce: number | null;
collection: Collection;
uses: number | null;
masterEdition?: StringPublicKey;
edition?: StringPublicKey;
constructor(args: {
updateAuthority: StringPublicKey;
mint: StringPublicKey;
data: Data;
primarySaleHappened: boolean;
isMutable: boolean;
editionNonce: number | null;
collection: Collection;
uses: number | null;
});
init(): Promise;
}
export declare const METADATA_SCHEMA: Map;
export declare const decodeMetadata: (buffer: Buffer) => Metadata;
export declare const decodeEditionMarker: (buffer: Buffer) => EditionMarker;
export declare const decodeEdition: (buffer: Buffer) => Edition;
export declare const decodeMasterEdition: (buffer: Buffer) => MasterEditionV1 | MasterEditionV2;
export declare function deprecatedUpdateMetadata(data: Data | undefined, newUpdateAuthority: string | undefined, primarySaleHappened: boolean | null | undefined, mintKey: StringPublicKey, updateAuthority: StringPublicKey, instructions: TransactionInstruction[], metadataAccount?: StringPublicKey): Promise;
export declare function updateMetadataV2(data: DataV2 | undefined, newUpdateAuthority: string | undefined, primarySaleHappened: boolean | null | undefined, mintKey: StringPublicKey, updateAuthority: StringPublicKey, instructions: TransactionInstruction[], metadataAccount?: StringPublicKey, isMutable?: boolean): Promise;
export declare function deprecatedCreateMetadata(data: Data, updateAuthority: StringPublicKey, mintKey: StringPublicKey, mintAuthorityKey: StringPublicKey, instructions: TransactionInstruction[], payer: StringPublicKey): Promise;
export declare function createMetadataV2(data: DataV2, updateAuthority: StringPublicKey, mintKey: StringPublicKey, mintAuthorityKey: StringPublicKey, instructions: TransactionInstruction[], payer: StringPublicKey): Promise;
export declare function createMasterEditionV3(maxSupply: BN | undefined, mintKey: StringPublicKey, updateAuthorityKey: StringPublicKey, mintAuthorityKey: StringPublicKey, payer: StringPublicKey, instructions: TransactionInstruction[]): Promise;
export declare function deprecatedCreateMasterEdition(maxSupply: BN | undefined, mintKey: StringPublicKey, updateAuthorityKey: StringPublicKey, mintAuthorityKey: StringPublicKey, payer: StringPublicKey, instructions: TransactionInstruction[]): Promise;
export declare function deprecatedMintNewEditionFromMasterEditionViaPrintingToken(newMint: StringPublicKey, tokenMint: StringPublicKey, newMintAuthority: StringPublicKey, printingMint: StringPublicKey, authorizationTokenHoldingAccount: StringPublicKey, burnAuthority: StringPublicKey, updateAuthorityOfMaster: StringPublicKey, reservationList: StringPublicKey | undefined, instructions: TransactionInstruction[], payer: StringPublicKey): Promise;
export declare function mintNewEditionFromMasterEditionViaToken(newMint: StringPublicKey, tokenMint: StringPublicKey, newMintAuthority: StringPublicKey, newUpdateAuthority: StringPublicKey, tokenOwner: StringPublicKey, tokenAccount: StringPublicKey, instructions: TransactionInstruction[], payer: StringPublicKey, edition: BN): Promise;
export declare function updatePrimarySaleHappenedViaToken(metadata: StringPublicKey, owner: StringPublicKey, tokenAccount: StringPublicKey, instructions: TransactionInstruction[]): Promise;
export declare function deprecatedCreateReservationList(metadata: StringPublicKey, masterEdition: StringPublicKey, resource: StringPublicKey, updateAuthority: StringPublicKey, payer: StringPublicKey, instructions: TransactionInstruction[]): Promise;
export declare function signMetadata(metadata: StringPublicKey, creator: StringPublicKey, instructions: TransactionInstruction[]): Promise;
export declare function deprecatedMintPrintingTokens(destination: StringPublicKey, printingMint: StringPublicKey, updateAuthority: StringPublicKey, metadata: StringPublicKey, masterEdition: StringPublicKey, supply: BN, instructions: TransactionInstruction[]): Promise;
export declare function convertMasterEditionV1ToV2(masterEdition: StringPublicKey, oneTimeAuthMint: StringPublicKey, printingMint: StringPublicKey, instructions: TransactionInstruction[]): Promise;
export declare function getEdition(tokenMint: StringPublicKey): Promise;
export declare function getMetadata(tokenMint: StringPublicKey): Promise;
export declare function deprecatedGetReservationList(masterEdition: StringPublicKey, resource: StringPublicKey): Promise;
export declare function getEditionMarkPda(mint: StringPublicKey, edition: BN): Promise;
//# sourceMappingURL=metadata.d.ts.map