import { PublicKey } from "@solana/web3.js";
import { FarmState } from "../rpc_client/accounts";
export declare function downloadAllFarmConfigs(targetPath: string): Promise<void>;
export declare function getMarketsFromApiData(programId: PublicKey): Promise<{
    marketName: string;
    key: PublicKey;
}[]>;
export type FarmConfig = {
    farmMetadata: FarmMetadata;
    farmPubkey: PublicKey;
    stakingTokenMint: PublicKey;
    withdrawAuthority: PublicKey;
    globalConfig: PublicKey;
    strategyId: PublicKey;
    depositCapAmount: number;
    rewards: Array<{
        rewardTokenMint: PublicKey;
        rewardType: string;
        rewardPerSecondDecimals: number;
        minClaimDurationSeconds: number;
        rewardCurve: Array<{
            startTs: number;
            rps: number;
        } | undefined>;
        rewardAvailable: number;
        rewardToTopUp: number;
        rewardToTopUpDurationDays: number;
    } | undefined>;
    pendingFarmAdmin: PublicKey;
    scopePrices: PublicKey;
    scopePriceOracleId: string;
    scopeOracleMaxAge: number;
    lockingMode: number;
    lockingStart: number;
    lockingDuration: number;
    lockingEarlyWithdrawalPenaltyBps: number;
    depositWarmupPeriod: number;
    withdrawCooldownPeriod: number;
    slashedAmountSpillAddress: PublicKey;
    delegatedRpsAdmin: PublicKey;
};
export type FarmMetadata = {
    type: string;
    reserve: PublicKey | undefined;
    market: PublicKey | undefined;
    strategy: PublicKey | undefined;
};
export declare function getFarmConfigType(farmKey: PublicKey, farmState: FarmState, farmMetadata: FarmMetadata): FarmConfig;
//# sourceMappingURL=download_all_farm_configs.d.ts.map