import BN from 'bn.js'; import { Fraction } from './fraction'; export declare const MAX_ORACLES_PER_TOKEN = 4; export declare const MAX_ACCOUNTS_PER_ORACLE = 4; export type FormattedOracleType = "pyth" | "raydium_clmm" | "raydium_cpmm" | "switchboard" | "example"; export declare const ORACLE_TYPES_STRINGS: Map; export interface OraclePriceOnChain { price: Fraction; conf: Fraction; updateTime: BN; } export declare const OraclePriceLayout: any; export declare enum OracleType { Pyth = 0, RaydiumClmm = 1, RaydiumCpmm = 2, SwitchBoard = 3, Example = 4 } export declare enum Quote { Usdc = 0, Wsol = 1 } export declare enum Side { Base = 0, Quote = 1 } export interface OracleSettings { oracleType: OracleType; numRequiredAccounts: number; weight: number; isRequired: number; confThreshBps: number; volatilityThreshBps: number; maxSlippageBps: number; minLiquidity: BN; stalenessThresh: BN; stalenessConfRateBps: number; tokenDecimals: number; twapSecondsAgo: BN; twapSecondarySecondsAgo: BN; quote: Quote; side: Side; } export declare const OracleSettingsLayout: any; export interface OracleData { oracleSettings: OracleSettings; accountsToLoadLutIds: number[]; accountsToLoadLutIndices: number[]; } export declare const OracleDataLayout: any; export interface OracleAggregator { numOracles: number; minOraclesThresh: number; oracles: OracleData[]; minConfBps: number; confThreshBps: number; confMultiplier: Fraction; } export declare const OracleAggregatorLayout: any; export declare const DEFAULT_ORACLE_SETTINGS: OracleSettings; export declare const PYTH_WSOL_ORACLE_SETTINGS: OracleSettings; export declare const PYTH_USDC_ORACLE_SETTINGS: OracleSettings;