import { Address, Codec, Decoder, Encoder, Option, OptionOrNullable } from '@solana/kit';
import { MetaplexCollection, MetaplexCollectionArgs, MetaplexCollectionDetails, MetaplexCollectionDetailsArgs, MetaplexData, MetaplexDataArgs, MetaplexProgrammableConfig, MetaplexProgrammableConfigArgs, MetaplexTokenStandard, MetaplexTokenStandardArgs, MetaplexUses, MetaplexUsesArgs } from '.';
export type MetaplexMetadata = {
    discriminator: number;
    updateAuthority: Address;
    mint: Address;
    data: MetaplexData;
    primarySaleHappened: boolean;
    mutable: boolean;
    editionNonce: Option<number>;
    tokenStandard: Option<MetaplexTokenStandard>;
    collection: Option<MetaplexCollection>;
    uses: Option<MetaplexUses>;
    collectionDetails: Option<MetaplexCollectionDetails>;
    programmableConfig: Option<MetaplexProgrammableConfig>;
};
export type MetaplexMetadataArgs = {
    discriminator: number;
    updateAuthority: Address;
    mint: Address;
    data: MetaplexDataArgs;
    primarySaleHappened: boolean;
    mutable: boolean;
    editionNonce: OptionOrNullable<number>;
    tokenStandard: OptionOrNullable<MetaplexTokenStandardArgs>;
    collection: OptionOrNullable<MetaplexCollectionArgs>;
    uses: OptionOrNullable<MetaplexUsesArgs>;
    collectionDetails: OptionOrNullable<MetaplexCollectionDetailsArgs>;
    programmableConfig: OptionOrNullable<MetaplexProgrammableConfigArgs>;
};
export declare function getMetaplexMetadataEncoder(): Encoder<MetaplexMetadataArgs>;
export declare function getMetaplexMetadataDecoder(): Decoder<MetaplexMetadata>;
export declare function getMetaplexMetadataCodec(): Codec<MetaplexMetadataArgs, MetaplexMetadata>;
