/**
 * 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 } from '.';
export type DelegateArgs = {
    __kind: 'CollectionV1';
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'SaleV1';
    amount: bigint;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'TransferV1';
    amount: bigint;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'DataV1';
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'UtilityV1';
    amount: bigint;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'StakingV1';
    amount: bigint;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'StandardV1';
    amount: bigint;
} | {
    __kind: 'LockedTransferV1';
    amount: bigint;
    lockedAddress: PublicKey;
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'ProgrammableConfigV1';
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'AuthorityItemV1';
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'DataItemV1';
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'CollectionItemV1';
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'ProgrammableConfigItemV1';
    authorizationData: Option<AuthorizationData>;
} | {
    __kind: 'PrintDelegateV1';
    authorizationData: Option<AuthorizationData>;
};
export type DelegateArgsArgs = {
    __kind: 'CollectionV1';
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'SaleV1';
    amount?: number | bigint;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'TransferV1';
    amount?: number | bigint;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'DataV1';
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'UtilityV1';
    amount?: number | bigint;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'StakingV1';
    amount?: number | bigint;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'StandardV1';
    amount?: number | bigint;
} | {
    __kind: 'LockedTransferV1';
    amount?: number | bigint;
    lockedAddress: PublicKey;
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'ProgrammableConfigV1';
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'AuthorityItemV1';
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'DataItemV1';
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'CollectionItemV1';
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'ProgrammableConfigItemV1';
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
} | {
    __kind: 'PrintDelegateV1';
    authorizationData?: OptionOrNullable<AuthorizationDataArgs>;
};
export declare function getDelegateArgsSerializer(): Serializer<DelegateArgsArgs, DelegateArgs>;
export declare function delegateArgs(kind: 'CollectionV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'CollectionV1'>): GetDataEnumKind<DelegateArgsArgs, 'CollectionV1'>;
export declare function delegateArgs(kind: 'SaleV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'SaleV1'>): GetDataEnumKind<DelegateArgsArgs, 'SaleV1'>;
export declare function delegateArgs(kind: 'TransferV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'TransferV1'>): GetDataEnumKind<DelegateArgsArgs, 'TransferV1'>;
export declare function delegateArgs(kind: 'DataV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'DataV1'>): GetDataEnumKind<DelegateArgsArgs, 'DataV1'>;
export declare function delegateArgs(kind: 'UtilityV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'UtilityV1'>): GetDataEnumKind<DelegateArgsArgs, 'UtilityV1'>;
export declare function delegateArgs(kind: 'StakingV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'StakingV1'>): GetDataEnumKind<DelegateArgsArgs, 'StakingV1'>;
export declare function delegateArgs(kind: 'StandardV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'StandardV1'>): GetDataEnumKind<DelegateArgsArgs, 'StandardV1'>;
export declare function delegateArgs(kind: 'LockedTransferV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'LockedTransferV1'>): GetDataEnumKind<DelegateArgsArgs, 'LockedTransferV1'>;
export declare function delegateArgs(kind: 'ProgrammableConfigV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'ProgrammableConfigV1'>): GetDataEnumKind<DelegateArgsArgs, 'ProgrammableConfigV1'>;
export declare function delegateArgs(kind: 'AuthorityItemV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'AuthorityItemV1'>): GetDataEnumKind<DelegateArgsArgs, 'AuthorityItemV1'>;
export declare function delegateArgs(kind: 'DataItemV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'DataItemV1'>): GetDataEnumKind<DelegateArgsArgs, 'DataItemV1'>;
export declare function delegateArgs(kind: 'CollectionItemV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'CollectionItemV1'>): GetDataEnumKind<DelegateArgsArgs, 'CollectionItemV1'>;
export declare function delegateArgs(kind: 'ProgrammableConfigItemV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'ProgrammableConfigItemV1'>): GetDataEnumKind<DelegateArgsArgs, 'ProgrammableConfigItemV1'>;
export declare function delegateArgs(kind: 'PrintDelegateV1', data: GetDataEnumKindContent<DelegateArgsArgs, 'PrintDelegateV1'>): GetDataEnumKind<DelegateArgsArgs, 'PrintDelegateV1'>;
export declare function isDelegateArgs<K extends DelegateArgs['__kind']>(kind: K, value: DelegateArgs): value is DelegateArgs & {
    __kind: K;
};
