///
///
import BigNumber from 'bignumber.js';
import { PublicKey } from '@solana/web3.js';
import { SpotBalanceType, SpotMarket, SpotPosition } from './struct';
export declare const ZERO: BigNumber;
export declare const ONE: BigNumber;
export declare const TEN: BigNumber;
export declare const QUOTE_SPOT_MARKET_INDEX = 0;
export declare const SPOT_MARKET_UTILIZATION_PRECISION_EXP: BigNumber;
export declare const SPOT_MARKET_UTILIZATION_PRECISION: BigNumber;
export declare const SPOT_MARKET_RATE_PRECISION_EXP: BigNumber;
export declare const SPOT_MARKET_RATE_PRECISION: BigNumber;
export declare const PERCENTAGE_PRECISION_EXP: BigNumber;
export declare const PERCENTAGE_PRECISION: BigNumber;
export declare const CONCENTRATION_PRECISION: BigNumber;
export declare const divCeil: (a: BigNumber, b: BigNumber) => BigNumber;
export declare function getTokenAmount(scaleBalance: BigNumber, spotMarket: SpotMarket, balanceType: SpotBalanceType): BigNumber;
export declare function getSignedTokenAmount(tokenAmount: BigNumber, balanceType: SpotBalanceType): BigNumber;
export declare function calculateUtilization(bank: SpotMarket, delta?: BigNumber): BigNumber;
export declare function calculateBorrowRate(bank: SpotMarket): BigNumber;
export declare function calculateDepositRate(bank: SpotMarket): BigNumber;
export declare function calculateInterestRate(bank: SpotMarket, delta?: BigNumber): BigNumber;
export declare function isSpotPositionAvailable(position: SpotPosition): boolean;
export declare function getUserAccountPublicKey(programId: PublicKey, owner: PublicKey, subAccountId: number): PublicKey;
export declare function getUserMainAccountPublicKey(programId: PublicKey, owner: PublicKey): PublicKey;
export declare function getUserAccountsPublicKeys(programId: PublicKey, owner: PublicKey, startId: number, endId: number): PublicKey[];
export declare function getUserInsuranceFundStakeAccountPublicKey(programId: PublicKey, owner: PublicKey, marketIndex: number): PublicKey;