/**
 * 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 { Option, OptionOrNullable, PublicKey } from '@metaplex-foundation/umi';
import { GetDataEnumKind, GetDataEnumKindContent, Serializer } from '@metaplex-foundation/umi/serializers';
import { AuthorizationData, AuthorizationDataArgs, CollectionDetailsToggle, CollectionDetailsToggleArgs, CollectionToggle, CollectionToggleArgs, Data, DataArgs, RuleSetToggle, RuleSetToggleArgs, TokenStandard, TokenStandardArgs, UsesToggle, UsesToggleArgs } from '.';
export type UpdateArgs = {
    __kind: 'V1';
    newUpdateAuthority: Option<PublicKey>;
    data: Option<Data>;
    primarySaleHappened: Option<boolean>;
    isMutable: Option<boolean>;
    collection: CollectionToggle;
    collectionDetails: CollectionDetailsToggle;
    uses: UsesToggle;
    ruleSet: RuleSetToggle;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'AsUpdateAuthorityV2';
    newUpdateAuthority: Option<PublicKey>;
    data: Option<Data>;
    primarySaleHappened: Option<boolean>;
    isMutable: Option<boolean>;
    collection: CollectionToggle;
    collectionDetails: CollectionDetailsToggle;
    uses: UsesToggle;
    ruleSet: RuleSetToggle;
    tokenStandard: Option<TokenStandard>;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'AsAuthorityItemDelegateV2';
    newUpdateAuthority: Option<PublicKey>;
    primarySaleHappened: Option<boolean>;
    isMutable: Option<boolean>;
    tokenStandard: Option<TokenStandard>;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'AsCollectionDelegateV2';
    collection: CollectionToggle;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'AsDataDelegateV2';
    data: Option<Data>;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'AsProgrammableConfigDelegateV2';
    ruleSet: RuleSetToggle;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'AsDataItemDelegateV2';
    data: Option<Data>;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'AsCollectionItemDelegateV2';
    collection: CollectionToggle;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'AsProgrammableConfigItemDelegateV2';
    ruleSet: RuleSetToggle;
    authorizationData: Option<AuthorizationData>;
};
export type UpdateArgsArgs = {
    __kind: 'V1';
    newUpdateAuthority?: OptionOrNullable<PublicKey>;
    data?: OptionOrNullable<DataArgs>;
    primarySaleHappened?: OptionOrNullable<boolean>;
    isMutable?: OptionOrNullable<boolean>;
    collection?: CollectionToggleArgs;
    collectionDetails?: CollectionDetailsToggleArgs;
    uses?: UsesToggleArgs;
    ruleSet?: RuleSetToggleArgs;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'AsUpdateAuthorityV2';
    newUpdateAuthority?: OptionOrNullable<PublicKey>;
    data?: OptionOrNullable<DataArgs>;
    primarySaleHappened?: OptionOrNullable<boolean>;
    isMutable?: OptionOrNullable<boolean>;
    collection?: CollectionToggleArgs;
    collectionDetails?: CollectionDetailsToggleArgs;
    uses?: UsesToggleArgs;
    ruleSet?: RuleSetToggleArgs;
    tokenStandard?: OptionOrNullable<TokenStandardArgs>;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'AsAuthorityItemDelegateV2';
    newUpdateAuthority?: OptionOrNullable<PublicKey>;
    primarySaleHappened?: OptionOrNullable<boolean>;
    isMutable?: OptionOrNullable<boolean>;
    tokenStandard?: OptionOrNullable<TokenStandardArgs>;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'AsCollectionDelegateV2';
    collection?: CollectionToggleArgs;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'AsDataDelegateV2';
    data?: OptionOrNullable<DataArgs>;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'AsProgrammableConfigDelegateV2';
    ruleSet?: RuleSetToggleArgs;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'AsDataItemDelegateV2';
    data?: OptionOrNullable<DataArgs>;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'AsCollectionItemDelegateV2';
    collection?: CollectionToggleArgs;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'AsProgrammableConfigItemDelegateV2';
    ruleSet?: RuleSetToggleArgs;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
};
export declare function getUpdateArgsSerializer(): Serializer<UpdateArgsArgs, UpdateArgs>;
export declare function updateArgs(kind: 'V1', data: GetDataEnumKindContent<UpdateArgsArgs, 'V1'>): GetDataEnumKind<UpdateArgsArgs, 'V1'>;
export declare function updateArgs(kind: 'AsUpdateAuthorityV2', data: GetDataEnumKindContent<UpdateArgsArgs, 'AsUpdateAuthorityV2'>): GetDataEnumKind<UpdateArgsArgs, 'AsUpdateAuthorityV2'>;
export declare function updateArgs(kind: 'AsAuthorityItemDelegateV2', data: GetDataEnumKindContent<UpdateArgsArgs, 'AsAuthorityItemDelegateV2'>): GetDataEnumKind<UpdateArgsArgs, 'AsAuthorityItemDelegateV2'>;
export declare function updateArgs(kind: 'AsCollectionDelegateV2', data: GetDataEnumKindContent<UpdateArgsArgs, 'AsCollectionDelegateV2'>): GetDataEnumKind<UpdateArgsArgs, 'AsCollectionDelegateV2'>;
export declare function updateArgs(kind: 'AsDataDelegateV2', data: GetDataEnumKindContent<UpdateArgsArgs, 'AsDataDelegateV2'>): GetDataEnumKind<UpdateArgsArgs, 'AsDataDelegateV2'>;
export declare function updateArgs(kind: 'AsProgrammableConfigDelegateV2', data: GetDataEnumKindContent<UpdateArgsArgs, 'AsProgrammableConfigDelegateV2'>): GetDataEnumKind<UpdateArgsArgs, 'AsProgrammableConfigDelegateV2'>;
export declare function updateArgs(kind: 'AsDataItemDelegateV2', data: GetDataEnumKindContent<UpdateArgsArgs, 'AsDataItemDelegateV2'>): GetDataEnumKind<UpdateArgsArgs, 'AsDataItemDelegateV2'>;
export declare function updateArgs(kind: 'AsCollectionItemDelegateV2', data: GetDataEnumKindContent<UpdateArgsArgs, 'AsCollectionItemDelegateV2'>): GetDataEnumKind<UpdateArgsArgs, 'AsCollectionItemDelegateV2'>;
export declare function updateArgs(kind: 'AsProgrammableConfigItemDelegateV2', data: GetDataEnumKindContent<UpdateArgsArgs, 'AsProgrammableConfigItemDelegateV2'>): GetDataEnumKind<UpdateArgsArgs, 'AsProgrammableConfigItemDelegateV2'>;
export declare function isUpdateArgs<K extends UpdateArgs['__kind']>(kind: K, value: UpdateArgs): value is UpdateArgs & {
    __kind: K;
};
