"use strict";
/**
 * 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
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.isPayloadType = exports.payloadType = exports.getPayloadTypeSerializer = void 0;
const serializers_1 = require("@metaplex-foundation/umi/serializers");
const _1 = require(".");
function getPayloadTypeSerializer() {
    return (0, serializers_1.dataEnum)([
        [
            'Pubkey',
            (0, serializers_1.struct)([
                ['fields', (0, serializers_1.tuple)([(0, serializers_1.publicKey)()])],
            ]),
        ],
        [
            'Seeds',
            (0, serializers_1.struct)([
                ['fields', (0, serializers_1.tuple)([(0, _1.getSeedsVecSerializer)()])],
            ]),
        ],
        [
            'MerkleProof',
            (0, serializers_1.struct)([
                ['fields', (0, serializers_1.tuple)([(0, _1.getProofInfoSerializer)()])],
            ]),
        ],
        [
            'Number',
            (0, serializers_1.struct)([
                ['fields', (0, serializers_1.tuple)([(0, serializers_1.u64)()])],
            ]),
        ],
    ], { description: 'PayloadType' });
}
exports.getPayloadTypeSerializer = getPayloadTypeSerializer;
function payloadType(kind, data) {
    return Array.isArray(data)
        ? { __kind: kind, fields: data }
        : { __kind: kind, ...(data ?? {}) };
}
exports.payloadType = payloadType;
function isPayloadType(kind, value) {
    return value.__kind === kind;
}
exports.isPayloadType = isPayloadType;
//# sourceMappingURL=payloadType.js.map