import { Address, GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from "@solana/kit";
import BN from "bn.js";
export interface GlobalConfigFields {
    emergencyMode: BN;
    blockDeposit: BN;
    blockInvest: BN;
    blockWithdraw: BN;
    blockCollectFees: BN;
    blockCollectRewards: BN;
    blockSwapRewards: BN;
    blockSwapUnevenVaults: number;
    blockEmergencySwap: number;
    minWithdrawalFeeBps: BN;
    scopeProgramId: Address;
    scopePriceId: Address;
    swapRewardsDiscountBps: Array<BN>;
    actionsAuthority: Address;
    adminAuthority: Address;
    treasuryFeeVaults: Array<Address>;
    tokenInfos: Address;
    blockLocalAdmin: BN;
    minPerformanceFeeBps: BN;
    minSwapUnevenSlippageToleranceBps: BN;
    minReferencePriceSlippageToleranceBps: BN;
    actionsAfterRebalanceDelaySeconds: BN;
    treasuryFeeVaultReceiver: Address;
    padding: Array<BN>;
}
export interface GlobalConfigJSON {
    emergencyMode: string;
    blockDeposit: string;
    blockInvest: string;
    blockWithdraw: string;
    blockCollectFees: string;
    blockCollectRewards: string;
    blockSwapRewards: string;
    blockSwapUnevenVaults: number;
    blockEmergencySwap: number;
    minWithdrawalFeeBps: string;
    scopeProgramId: string;
    scopePriceId: string;
    swapRewardsDiscountBps: Array<string>;
    actionsAuthority: string;
    adminAuthority: string;
    treasuryFeeVaults: Array<string>;
    tokenInfos: string;
    blockLocalAdmin: string;
    minPerformanceFeeBps: string;
    minSwapUnevenSlippageToleranceBps: string;
    minReferencePriceSlippageToleranceBps: string;
    actionsAfterRebalanceDelaySeconds: string;
    treasuryFeeVaultReceiver: string;
    padding: Array<string>;
}
export declare class GlobalConfig {
    readonly emergencyMode: BN;
    readonly blockDeposit: BN;
    readonly blockInvest: BN;
    readonly blockWithdraw: BN;
    readonly blockCollectFees: BN;
    readonly blockCollectRewards: BN;
    readonly blockSwapRewards: BN;
    readonly blockSwapUnevenVaults: number;
    readonly blockEmergencySwap: number;
    readonly minWithdrawalFeeBps: BN;
    readonly scopeProgramId: Address;
    readonly scopePriceId: Address;
    readonly swapRewardsDiscountBps: Array<BN>;
    readonly actionsAuthority: Address;
    readonly adminAuthority: Address;
    readonly treasuryFeeVaults: Array<Address>;
    readonly tokenInfos: Address;
    readonly blockLocalAdmin: BN;
    readonly minPerformanceFeeBps: BN;
    readonly minSwapUnevenSlippageToleranceBps: BN;
    readonly minReferencePriceSlippageToleranceBps: BN;
    readonly actionsAfterRebalanceDelaySeconds: BN;
    readonly treasuryFeeVaultReceiver: Address;
    readonly padding: Array<BN>;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: import("buffer-layout").Layout<GlobalConfig>;
    constructor(fields: GlobalConfigFields);
    static fetch(rpc: Rpc<GetAccountInfoApi>, address: Address, programId?: Address): Promise<GlobalConfig | null>;
    static fetchMultiple(rpc: Rpc<GetMultipleAccountsApi>, addresses: Address[], programId?: Address): Promise<Array<GlobalConfig | null>>;
    static decode(data: Buffer): GlobalConfig;
    toJSON(): GlobalConfigJSON;
    static fromJSON(obj: GlobalConfigJSON): GlobalConfig;
}
//# sourceMappingURL=GlobalConfig.d.ts.map