import * as types from "../types";
import * as borsh from "@coral-xyz/borsh";
export interface UpdateRewardRpsJSON {
    kind: "UpdateRewardRps";
}
export declare class UpdateRewardRps {
    static readonly discriminator = 0;
    static readonly kind = "UpdateRewardRps";
    readonly discriminator = 0;
    readonly kind = "UpdateRewardRps";
    toJSON(): UpdateRewardRpsJSON;
    toEncodable(): {
        UpdateRewardRps: {};
    };
}
export interface UpdateRewardMinClaimDurationJSON {
    kind: "UpdateRewardMinClaimDuration";
}
export declare class UpdateRewardMinClaimDuration {
    static readonly discriminator = 1;
    static readonly kind = "UpdateRewardMinClaimDuration";
    readonly discriminator = 1;
    readonly kind = "UpdateRewardMinClaimDuration";
    toJSON(): UpdateRewardMinClaimDurationJSON;
    toEncodable(): {
        UpdateRewardMinClaimDuration: {};
    };
}
export interface WithdrawAuthorityJSON {
    kind: "WithdrawAuthority";
}
export declare class WithdrawAuthority {
    static readonly discriminator = 2;
    static readonly kind = "WithdrawAuthority";
    readonly discriminator = 2;
    readonly kind = "WithdrawAuthority";
    toJSON(): WithdrawAuthorityJSON;
    toEncodable(): {
        WithdrawAuthority: {};
    };
}
export interface DepositWarmupPeriodJSON {
    kind: "DepositWarmupPeriod";
}
export declare class DepositWarmupPeriod {
    static readonly discriminator = 3;
    static readonly kind = "DepositWarmupPeriod";
    readonly discriminator = 3;
    readonly kind = "DepositWarmupPeriod";
    toJSON(): DepositWarmupPeriodJSON;
    toEncodable(): {
        DepositWarmupPeriod: {};
    };
}
export interface WithdrawCooldownPeriodJSON {
    kind: "WithdrawCooldownPeriod";
}
export declare class WithdrawCooldownPeriod {
    static readonly discriminator = 4;
    static readonly kind = "WithdrawCooldownPeriod";
    readonly discriminator = 4;
    readonly kind = "WithdrawCooldownPeriod";
    toJSON(): WithdrawCooldownPeriodJSON;
    toEncodable(): {
        WithdrawCooldownPeriod: {};
    };
}
export interface RewardTypeJSON {
    kind: "RewardType";
}
export declare class RewardType {
    static readonly discriminator = 5;
    static readonly kind = "RewardType";
    readonly discriminator = 5;
    readonly kind = "RewardType";
    toJSON(): RewardTypeJSON;
    toEncodable(): {
        RewardType: {};
    };
}
export interface RpsDecimalsJSON {
    kind: "RpsDecimals";
}
export declare class RpsDecimals {
    static readonly discriminator = 6;
    static readonly kind = "RpsDecimals";
    readonly discriminator = 6;
    readonly kind = "RpsDecimals";
    toJSON(): RpsDecimalsJSON;
    toEncodable(): {
        RpsDecimals: {};
    };
}
export interface LockingModeJSON {
    kind: "LockingMode";
}
export declare class LockingMode {
    static readonly discriminator = 7;
    static readonly kind = "LockingMode";
    readonly discriminator = 7;
    readonly kind = "LockingMode";
    toJSON(): LockingModeJSON;
    toEncodable(): {
        LockingMode: {};
    };
}
export interface LockingStartTimestampJSON {
    kind: "LockingStartTimestamp";
}
export declare class LockingStartTimestamp {
    static readonly discriminator = 8;
    static readonly kind = "LockingStartTimestamp";
    readonly discriminator = 8;
    readonly kind = "LockingStartTimestamp";
    toJSON(): LockingStartTimestampJSON;
    toEncodable(): {
        LockingStartTimestamp: {};
    };
}
export interface LockingDurationJSON {
    kind: "LockingDuration";
}
export declare class LockingDuration {
    static readonly discriminator = 9;
    static readonly kind = "LockingDuration";
    readonly discriminator = 9;
    readonly kind = "LockingDuration";
    toJSON(): LockingDurationJSON;
    toEncodable(): {
        LockingDuration: {};
    };
}
export interface LockingEarlyWithdrawalPenaltyBpsJSON {
    kind: "LockingEarlyWithdrawalPenaltyBps";
}
export declare class LockingEarlyWithdrawalPenaltyBps {
    static readonly discriminator = 10;
    static readonly kind = "LockingEarlyWithdrawalPenaltyBps";
    readonly discriminator = 10;
    readonly kind = "LockingEarlyWithdrawalPenaltyBps";
    toJSON(): LockingEarlyWithdrawalPenaltyBpsJSON;
    toEncodable(): {
        LockingEarlyWithdrawalPenaltyBps: {};
    };
}
export interface DepositCapAmountJSON {
    kind: "DepositCapAmount";
}
export declare class DepositCapAmount {
    static readonly discriminator = 11;
    static readonly kind = "DepositCapAmount";
    readonly discriminator = 11;
    readonly kind = "DepositCapAmount";
    toJSON(): DepositCapAmountJSON;
    toEncodable(): {
        DepositCapAmount: {};
    };
}
export interface SlashedAmountSpillAddressJSON {
    kind: "SlashedAmountSpillAddress";
}
export declare class SlashedAmountSpillAddress {
    static readonly discriminator = 12;
    static readonly kind = "SlashedAmountSpillAddress";
    readonly discriminator = 12;
    readonly kind = "SlashedAmountSpillAddress";
    toJSON(): SlashedAmountSpillAddressJSON;
    toEncodable(): {
        SlashedAmountSpillAddress: {};
    };
}
export interface ScopePricesAccountJSON {
    kind: "ScopePricesAccount";
}
export declare class ScopePricesAccount {
    static readonly discriminator = 13;
    static readonly kind = "ScopePricesAccount";
    readonly discriminator = 13;
    readonly kind = "ScopePricesAccount";
    toJSON(): ScopePricesAccountJSON;
    toEncodable(): {
        ScopePricesAccount: {};
    };
}
export interface ScopeOraclePriceIdJSON {
    kind: "ScopeOraclePriceId";
}
export declare class ScopeOraclePriceId {
    static readonly discriminator = 14;
    static readonly kind = "ScopeOraclePriceId";
    readonly discriminator = 14;
    readonly kind = "ScopeOraclePriceId";
    toJSON(): ScopeOraclePriceIdJSON;
    toEncodable(): {
        ScopeOraclePriceId: {};
    };
}
export interface ScopeOracleMaxAgeJSON {
    kind: "ScopeOracleMaxAge";
}
export declare class ScopeOracleMaxAge {
    static readonly discriminator = 15;
    static readonly kind = "ScopeOracleMaxAge";
    readonly discriminator = 15;
    readonly kind = "ScopeOracleMaxAge";
    toJSON(): ScopeOracleMaxAgeJSON;
    toEncodable(): {
        ScopeOracleMaxAge: {};
    };
}
export interface UpdateRewardScheduleCurvePointJSON {
    kind: "UpdateRewardScheduleCurvePoint";
}
export declare class UpdateRewardScheduleCurvePoint {
    static readonly discriminator = 16;
    static readonly kind = "UpdateRewardScheduleCurvePoint";
    readonly discriminator = 16;
    readonly kind = "UpdateRewardScheduleCurvePoint";
    toJSON(): UpdateRewardScheduleCurvePointJSON;
    toEncodable(): {
        UpdateRewardScheduleCurvePoint: {};
    };
}
export interface UpdatePendingFarmAdminJSON {
    kind: "UpdatePendingFarmAdmin";
}
export declare class UpdatePendingFarmAdmin {
    static readonly discriminator = 17;
    static readonly kind = "UpdatePendingFarmAdmin";
    readonly discriminator = 17;
    readonly kind = "UpdatePendingFarmAdmin";
    toJSON(): UpdatePendingFarmAdminJSON;
    toEncodable(): {
        UpdatePendingFarmAdmin: {};
    };
}
export declare function fromDecoded(obj: any): types.FarmConfigOptionKind;
export declare function fromJSON(obj: types.FarmConfigOptionJSON): types.FarmConfigOptionKind;
export declare function layout(property?: string): borsh.EnumLayout<unknown>;
