///
import { PublicKey } from '@solana/web3.js';
import BN from 'bn.js';
import { GetStructureFromLayoutSchema, GetStructureSchema } from '../marshmallow';
import { poolTypeV6 } from './farm';
import { FarmVersion } from './type';
export declare const REAL_FARM_STATE_LAYOUT_V3: import("../marshmallow").Structure;
export declare const REAL_FARM_STATE_LAYOUT_V5: import("../marshmallow").Structure;
export declare const REAL_FARM_STATE_LAYOUT_V6: import("../marshmallow").Structure;
export declare const FARM_STATE_LAYOUT_V3: GetStructureFromLayoutSchema<{
version: 3;
rewardInfos: {
rewardVault: PublicKey;
totalReward: BN;
perSlotReward: BN;
perShareReward: BN;
}[];
} & {
state: BN;
nonce: BN;
lpVault: PublicKey;
rewardVault: PublicKey;
totalReward: BN;
perShareReward: BN;
lastSlot: BN;
perSlotReward: BN;
}>;
export declare const FARM_STATE_LAYOUT_V5: GetStructureFromLayoutSchema<{
version: 5;
rewardInfos: {
rewardVault: PublicKey;
totalReward: BN;
perSlotReward: BN;
perShareReward: BN;
}[];
} & {
state: BN;
nonce: BN;
lpVault: PublicKey;
lastSlot: BN;
rewardVaultA: PublicKey;
totalRewardA: BN;
perShareRewardA: BN;
perSlotRewardA: BN;
option: number;
rewardVaultB: PublicKey;
totalRewardB: BN;
perShareRewardB: BN;
perSlotRewardB: BN;
}>;
export declare const FARM_STATE_LAYOUT_V6: GetStructureFromLayoutSchema<{
version: 6;
rewardInfos: {
rewardState: BN;
rewardOpenTime: BN;
rewardEndTime: BN;
rewardLastUpdateTime: BN;
totalReward: BN;
totalRewardEmissioned: BN;
rewardClaimed: BN;
rewardPerSecond: BN;
accRewardPerShare: BN;
rewardVault: PublicKey;
rewardMint: PublicKey;
rewardSender: PublicKey;
rewardType: keyof typeof poolTypeV6;
}[];
} & {
state: BN;
nonce: BN;
lpVault: PublicKey;
validRewardTokenNum: BN;
rewardMultiplier: BN;
rewardPeriodMax: BN;
rewardPeriodMin: BN;
rewardPeriodExtend: BN;
lpMint: PublicKey;
padding: BN[];
rewardInfos: {
rewardVault: PublicKey;
totalReward: BN;
rewardState: BN;
rewardOpenTime: BN;
rewardEndTime: BN;
rewardLastUpdateTime: BN;
totalRewardEmissioned: BN;
rewardClaimed: BN;
rewardPerSecond: BN;
accRewardPerShare: BN;
rewardMint: PublicKey;
rewardSender: PublicKey;
rewardType: BN;
padding: BN[];
}[];
creator: PublicKey;
}>;
export type FarmStateLayoutV3 = typeof FARM_STATE_LAYOUT_V3;
export type FarmStateLayoutV5 = typeof FARM_STATE_LAYOUT_V5;
export type FarmStateLayoutV6 = typeof FARM_STATE_LAYOUT_V6;
export type FarmStateLayout = FarmStateLayoutV3 | FarmStateLayoutV5 | FarmStateLayoutV6;
export type FarmStateV3 = GetStructureSchema;
export type FarmStateV5 = GetStructureSchema;
export type FarmStateV6 = GetStructureSchema;
export type FarmState = FarmStateV3 | FarmStateV5 | FarmStateV6;
export declare const FARM_LEDGER_LAYOUT_V3_1: import("../marshmallow").Structure;
export declare const FARM_LEDGER_LAYOUT_V3_2: import("../marshmallow").Structure;
export declare const FARM_LEDGER_LAYOUT_V5_1: import("../marshmallow").Structure;
export declare const FARM_LEDGER_LAYOUT_V5_2: import("../marshmallow").Structure;
export declare const FARM_LEDGER_LAYOUT_V6_1: import("../marshmallow").Structure;
export type FarmLedgerLayoutV3_1 = typeof FARM_LEDGER_LAYOUT_V3_1;
export type FarmLedgerLayoutV3_2 = typeof FARM_LEDGER_LAYOUT_V3_2;
export type FarmLedgerLayoutV5_1 = typeof FARM_LEDGER_LAYOUT_V5_1;
export type FarmLedgerLayoutV5_2 = typeof FARM_LEDGER_LAYOUT_V5_2;
export type FarmLedgerLayoutV6_1 = typeof FARM_LEDGER_LAYOUT_V6_1;
export type FarmLedgerLayout = FarmLedgerLayoutV3_1 | FarmLedgerLayoutV3_2 | FarmLedgerLayoutV5_1 | FarmLedgerLayoutV5_2 | FarmLedgerLayoutV6_1;
export type FarmLedgerV3_1 = GetStructureSchema;
export type FarmLedgerV3_2 = GetStructureSchema;
export type FarmLedgerV5_1 = GetStructureSchema;
export type FarmLedgerV5_2 = GetStructureSchema;
export type FarmLedgerV6_1 = GetStructureSchema;
export type FarmLedger = FarmLedgerV3_1 | FarmLedgerV3_2 | FarmLedgerV5_1 | FarmLedgerV5_2 | FarmLedgerV6_1;
export declare const FARM_VERSION_TO_STATE_LAYOUT: {
[version in FarmVersion]?: FarmStateLayout;
} & {
[version: number]: FarmStateLayout;
};
export declare const FARM_VERSION_TO_LEDGER_LAYOUT: {
[version in FarmVersion]?: FarmLedgerLayout;
} & {
[version: number]: FarmLedgerLayout;
};
export declare const VoterVotingMintConfig: import("../marshmallow").Structure;
export declare const VoterRegistrar: import("../marshmallow").Structure;
export declare const VoterLockup: import("../marshmallow").Structure;
export declare const VoterDepositEntry: import("../marshmallow").Structure;
export declare const Voter: import("../marshmallow").Structure;