/**
 * 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 { DataV2, DataV2Args } from '../types';
export type UpdateMetadataAccountV2InstructionAccounts = {
    /** Metadata account */
    metadata: PublicKey | Pda;
    /** Update authority key */
    updateAuthority?: Signer;
};
export type UpdateMetadataAccountV2InstructionData = {
    discriminator: number;
    data: Option<DataV2>;
    newUpdateAuthority: Option<PublicKey>;
    primarySaleHappened: Option<boolean>;
    isMutable: Option<boolean>;
};
export type UpdateMetadataAccountV2InstructionDataArgs = {
    data?: OptionOrNullable<DataV2Args>;
    newUpdateAuthority?: OptionOrNullable<PublicKey>;
    primarySaleHappened?: OptionOrNullable<boolean>;
    isMutable?: OptionOrNullable<boolean>;
};
export declare function getUpdateMetadataAccountV2InstructionDataSerializer(): Serializer<UpdateMetadataAccountV2InstructionDataArgs, UpdateMetadataAccountV2InstructionData>;
export type UpdateMetadataAccountV2InstructionArgs = UpdateMetadataAccountV2InstructionDataArgs;
export declare function updateMetadataAccountV2(context: Pick<Context, 'identity' | 'programs'>, input: UpdateMetadataAccountV2InstructionAccounts & UpdateMetadataAccountV2InstructionArgs): TransactionBuilder;
