///
import { AccountInfo, Connection, PublicKey } from '@solana/web3.js';
import SwitchboardProgram from '@switchboard-xyz/sbv2-lite';
import Big from 'big.js';
import BN from 'bn.js';
import { I80F48, I80F48Dto } from '../numbers/I80F48';
export declare enum OracleProvider {
Pyth = 0,
Switchboard = 1,
Stub = 2
}
export declare class StubOracle {
publicKey: PublicKey;
group: PublicKey;
mint: PublicKey;
lastUpdateTs: BN;
lastUpdateSlot: BN;
price: I80F48;
deviation: I80F48;
static from(publicKey: PublicKey, obj: {
group: PublicKey;
mint: PublicKey;
price: I80F48Dto;
lastUpdateTs: BN;
lastUpdateSlot: BN;
deviation: I80F48Dto;
}): StubOracle;
constructor(publicKey: PublicKey, group: PublicKey, mint: PublicKey, price: I80F48Dto, lastUpdateTs: BN, lastUpdateSlot: BN, deviation: I80F48Dto);
}
export declare function parseSwitchboardOracleV1(accountInfo: AccountInfo): {
price: number;
lastUpdatedSlot: number;
uiDeviation: number;
};
export declare function switchboardDecimalToBig(sbDecimal: {
mantissa: BN;
scale: number;
}): Big;
export declare function parseSwitchboardOracleV2(program: SwitchboardProgram, accountInfo: AccountInfo): {
price: number;
lastUpdatedSlot: number;
uiDeviation: number;
};
/**
*
* @param accountInfo
* @returns ui price
*/
export declare function parseSwitchboardOracle(accountInfo: AccountInfo, connection: Connection): Promise<{
price: number;
lastUpdatedSlot: number;
uiDeviation: number;
}>;
export declare function isSwitchboardOracle(accountInfo: AccountInfo): boolean;
export declare function isPythOracle(accountInfo: AccountInfo): boolean;
export declare function isOracleStaleOrUnconfident(nowSlot: number, maxStalenessSlots: number, oracleLastUpdatedSlot: number | undefined, deviation: I80F48 | undefined, confFilter: I80F48, price: I80F48): boolean;
//# sourceMappingURL=oracle.d.ts.map