import { PublicKey } from '@solana/web3.js';
export declare class Creator {
    address: PublicKey;
    verified: boolean;
    share: number;
    constructor(args: {
        address: PublicKey;
        verified: boolean;
        share: number;
    });
}
export declare enum MetadataKey {
    Uninitialized = 0,
    MetadataV1 = 4,
    EditionV1 = 1,
    MasterEditionV1 = 2,
    MasterEditionV2 = 6,
    EditionMarker = 7
}
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: PublicKey;
    mint: PublicKey;
    data: Data;
    primarySaleHappened: boolean;
    isMutable: boolean;
    masterEdition?: PublicKey;
    edition?: PublicKey;
    constructor(args: {
        updateAuthority: PublicKey;
        mint: PublicKey;
        data: Data;
        primarySaleHappened: boolean;
        isMutable: boolean;
        masterEdition?: PublicKey;
    });
}
export declare type StringPublicKey = string;
export interface ArweaveAttribute {
    trait_type: string;
    value: number | string;
}
export interface ArweaveMetadata {
    name: string;
    symbol: string;
    description: string;
    seller_fee_basis_points?: number;
    image: string;
    animation_url: string;
    external_url: string;
    attributes: ArweaveAttribute[];
    properties: any;
}
export interface MetadataByMint {
    [mint: string]: ArweaveMetadata;
}
