/**
 * This code was AUTOGENERATED using the Codama library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun Codama to update it.
 *
 * @see https://github.com/codama-idl/codama
 */

import { combineCodec, getEnumDecoder, getEnumEncoder, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder } from '@solana/kit';

export enum UpdateCollateralInfoMode { CollateralId, LowerHeuristic, UpperHeuristic, ExpHeuristic, TwapDivergence, UpdateScopeTwap, UpdateScopeChain, UpdateName, UpdatePriceMaxAge, UpdateTwapMaxAge, UpdateDisabled, UpdateStakingRateChain, UpdateMaxIgnorableAmountAsReward, UpdateScopeFeed };

export type UpdateCollateralInfoModeArgs = UpdateCollateralInfoMode;

export function getUpdateCollateralInfoModeEncoder(): FixedSizeEncoder<UpdateCollateralInfoModeArgs> {
    return getEnumEncoder(UpdateCollateralInfoMode);
}

export function getUpdateCollateralInfoModeDecoder(): FixedSizeDecoder<UpdateCollateralInfoMode> {
    return getEnumDecoder(UpdateCollateralInfoMode);
}

export function getUpdateCollateralInfoModeCodec(): FixedSizeCodec<UpdateCollateralInfoModeArgs, UpdateCollateralInfoMode> {
    return combineCodec(getUpdateCollateralInfoModeEncoder(), getUpdateCollateralInfoModeDecoder());
}