/**
 * 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 { Amount, Context, Option, OptionOrNullable, Pda, PublicKey, Signer, TransactionBuilder } from '@metaplex-foundation/umi';
import { Serializer } from '@metaplex-foundation/umi/serializers';
import { PickPartial } from '../shared';
import { Collection, CollectionArgs, CollectionDetails, CollectionDetailsArgs, Creator, CreatorArgs, PrintSupply, PrintSupplyArgs, TokenStandard, TokenStandardArgs, Uses, UsesArgs } from '../types';
export type CreateV1InstructionAccounts = {
    /** Unallocated metadata account with address as pda of ['metadata', program id, mint id] */
    metadata?: PublicKey | Pda;
    /** Unallocated edition account with address as pda of ['metadata', program id, mint, 'edition'] */
    masterEdition?: PublicKey | Pda;
    /** Mint of token asset */
    mint: PublicKey | Pda | Signer;
    /** Mint authority */
    authority?: Signer;
    /** Payer */
    payer?: Signer;
    /** Update authority for the metadata account */
    updateAuthority?: PublicKey | Pda | Signer;
    /** System program */
    systemProgram?: PublicKey | Pda;
    /** Instructions sysvar account */
    sysvarInstructions?: PublicKey | Pda;
    /** SPL Token program */
    splTokenProgram?: PublicKey | Pda;
};
export type CreateV1InstructionData = {
    discriminator: number;
    createV1Discriminator: number;
    name: string;
    symbol: string;
    uri: string;
    sellerFeeBasisPoints: Amount<'%', 2>;
    creators: Option<Array<Creator>>;
    primarySaleHappened: boolean;
    isMutable: boolean;
    tokenStandard: TokenStandard;
    collection: Option<Collection>;
    uses: Option<Uses>;
    collectionDetails: Option<CollectionDetails>;
    ruleSet: Option<PublicKey>;
    decimals: Option<number>;
    printSupply: Option<PrintSupply>;
};
export type CreateV1InstructionDataArgs = {
    name: string;
    symbol?: string;
    uri: string;
    sellerFeeBasisPoints: Amount<'%', 2>;
    creators: OptionOrNullable<Array<CreatorArgs>>;
    primarySaleHappened?: boolean;
    isMutable?: boolean;
    tokenStandard?: TokenStandardArgs;
    collection?: OptionOrNullable<CollectionArgs>;
    uses?: OptionOrNullable<UsesArgs>;
    collectionDetails: OptionOrNullable<CollectionDetailsArgs>;
    ruleSet?: OptionOrNullable<PublicKey>;
    decimals: OptionOrNullable<number>;
    printSupply: OptionOrNullable<PrintSupplyArgs>;
};
export declare function getCreateV1InstructionDataSerializer(): Serializer<CreateV1InstructionDataArgs, CreateV1InstructionData>;
export type CreateV1InstructionExtraArgs = {
    isCollection?: boolean;
};
export type CreateV1InstructionArgs = PickPartial<CreateV1InstructionDataArgs & CreateV1InstructionExtraArgs, 'tokenStandard' | 'creators' | 'isCollection' | 'collectionDetails' | 'decimals' | 'printSupply'>;
export declare function createV1(context: Pick<Context, 'eddsa' | 'identity' | 'payer' | 'programs'>, input: CreateV1InstructionAccounts & CreateV1InstructionArgs): TransactionBuilder;
