/**
 * 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 { PublicKey } from '@metaplex-foundation/umi';
import { GetDataEnumKind, GetDataEnumKindContent, Serializer } from '@metaplex-foundation/umi/serializers';
import { ProofInfo, ProofInfoArgs, SeedsVec, SeedsVecArgs } from '.';
export type PayloadType = {
    __kind: 'Pubkey';
    fields: [PublicKey];
} | {
    __kind: 'Seeds';
    fields: [SeedsVec];
} | {
    __kind: 'MerkleProof';
    fields: [ProofInfo];
} | {
    __kind: 'Number';
    fields: [bigint];
};
export type PayloadTypeArgs = {
    __kind: 'Pubkey';
    fields: [PublicKey];
} | {
    __kind: 'Seeds';
    fields: [SeedsVecArgs];
} | {
    __kind: 'MerkleProof';
    fields: [ProofInfoArgs];
} | {
    __kind: 'Number';
    fields: [number | bigint];
};
export declare function getPayloadTypeSerializer(): Serializer<PayloadTypeArgs, PayloadType>;
export declare function payloadType(kind: 'Pubkey', data: GetDataEnumKindContent<PayloadTypeArgs, 'Pubkey'>['fields']): GetDataEnumKind<PayloadTypeArgs, 'Pubkey'>;
export declare function payloadType(kind: 'Seeds', data: GetDataEnumKindContent<PayloadTypeArgs, 'Seeds'>['fields']): GetDataEnumKind<PayloadTypeArgs, 'Seeds'>;
export declare function payloadType(kind: 'MerkleProof', data: GetDataEnumKindContent<PayloadTypeArgs, 'MerkleProof'>['fields']): GetDataEnumKind<PayloadTypeArgs, 'MerkleProof'>;
export declare function payloadType(kind: 'Number', data: GetDataEnumKindContent<PayloadTypeArgs, 'Number'>['fields']): GetDataEnumKind<PayloadTypeArgs, 'Number'>;
export declare function isPayloadType<K extends PayloadType['__kind']>(kind: K, value: PayloadType): value is PayloadType & {
    __kind: K;
};
