/**
 * This code was AUTOGENERATED using the kinobi library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun kinobi to update it.
 *
 * @see https://github.com/metaplex-foundation/kinobi
 */
import { Context, Option, OptionOrNullable, Pda, PublicKey, Signer, TransactionBuilder } from '@metaplex-foundation/umi';
import { Serializer } from '@metaplex-foundation/umi/serializers';
import { CollectionDetails, CollectionDetailsArgs, DataV2, DataV2Args } from '../types';
export type CreateMetadataAccountV3InstructionAccounts = {
    /** Metadata key (pda of ['metadata', program id, mint id]) */
    metadata?: PublicKey | Pda;
    /** Mint of token asset */
    mint: PublicKey | Pda;
    /** Mint authority */
    mintAuthority: Signer;
    /** payer */
    payer?: Signer;
    /** update authority info */
    updateAuthority?: PublicKey | Pda | Signer;
    /** System program */
    systemProgram?: PublicKey | Pda;
    /** Rent info */
    rent?: PublicKey | Pda;
};
export type CreateMetadataAccountV3InstructionData = {
    discriminator: number;
    data: DataV2;
    isMutable: boolean;
    collectionDetails: Option<CollectionDetails>;
};
export type CreateMetadataAccountV3InstructionDataArgs = {
    data: DataV2Args;
    isMutable: boolean;
    collectionDetails: OptionOrNullable<CollectionDetailsArgs>;
};
export declare function getCreateMetadataAccountV3InstructionDataSerializer(): Serializer<CreateMetadataAccountV3InstructionDataArgs, CreateMetadataAccountV3InstructionData>;
export type CreateMetadataAccountV3InstructionArgs = CreateMetadataAccountV3InstructionDataArgs;
export declare function createMetadataAccountV3(context: Pick<Context, 'eddsa' | 'identity' | 'payer' | 'programs'>, input: CreateMetadataAccountV3InstructionAccounts & CreateMetadataAccountV3InstructionArgs): TransactionBuilder;
