/** * @dev Converters for cumulative volume price impact data between contract and SDK formats * @dev All BigNumber values are normalized to floats with appropriate precision */ import { IPriceImpact } from "../../../contracts/types/generated/GNSMultiCollatDiamond"; import { OiWindowsSettings, OiWindow, OiWindows } from "../../types"; import { DepthBands, PairDepthBands, DepthBandsMapping } from "./types"; /** * @dev Converts contract OI windows settings to SDK format * @param contractData Contract OiWindowsSettings struct * @returns Normalized OI windows settings */ export declare const convertOiWindowsSettings: (contractData: IPriceImpact.OiWindowsSettingsStructOutput) => OiWindowsSettings; /** * @dev Converts contract PairOi data to SDK OiWindow format * @param contractData Contract PairOi struct with USD values * @returns Normalized OI window data */ export declare const convertOiWindow: (contractData: IPriceImpact.PairOiStructOutput) => OiWindow; /** * @dev Converts array of OI windows from contract format * @param windowIds Array of window IDs (as strings for mapping) * @param contractWindows Array of PairOi data from contract * @returns Normalized OI windows mapping */ export declare const convertOiWindows: (windowIds: string[], contractWindows: IPriceImpact.PairOiStructOutput[]) => OiWindows; /** * @dev Batch converter for multiple OI windows settings * @param contractDataArray Array of contract OiWindowsSettings * @returns Array of normalized OI windows settings */ export declare const convertOiWindowsSettingsArray: (contractDataArray: IPriceImpact.OiWindowsSettingsStructOutput[]) => OiWindowsSettings[]; /** * @dev Converts decoded depth bands from contract to SDK format * @param totalDepthUsd Total depth in USD (already decoded from contract) * @param bandsBps Array of 30 band percentages in basis points from contract * @returns Normalized depth bands with bands in 0-1 range */ export declare const convertDepthBands: (totalDepthUsd: number, bandsBps: number[]) => DepthBands; /** * @dev Converts decoded pair depth bands from contract to SDK format * @param aboveDepth Decoded above depth bands from getPairDepthBandsDecoded * @param belowDepth Decoded below depth bands from getPairDepthBandsDecoded * @returns Normalized pair depth bands with above/below */ export declare const convertPairDepthBands: (aboveDepth: { totalDepthUsd: number; bands: number[]; } | undefined, belowDepth: { totalDepthUsd: number; bands: number[]; } | undefined) => PairDepthBands; /** * @dev Converts decoded depth bands mapping from contract to SDK format * @param bandsBps Array of 30 band offset values in basis points from getDepthBandsMappingDecoded * @returns Normalized depth bands mapping with offset values in 0-1 range */ export declare const convertDepthBandsMapping: (bandsBps: number[]) => DepthBandsMapping; /** * @dev Validates depth bands have correct number of bands * @param depthBands Depth bands to validate * @returns True if valid (30 bands) */ export declare const validateDepthBands: (depthBands: DepthBands) => boolean; /** * @dev Validates depth bands mapping has correct number of bands * @param mapping Depth bands mapping to validate * @returns True if valid (30 bands) */ export declare const validateDepthBandsMapping: (mapping: DepthBandsMapping) => boolean; /** * @dev Alternative converter for decoded pair depth bands from contract * @param contractData Decoded pair depth bands from getPairDepthBandsDecoded * @returns Normalized pair depth bands */ export declare const convertPairDepthBandsDecoded: (contractData: { above: { totalDepthUsd: number; bands: number[]; }; below: { totalDepthUsd: number; bands: number[]; }; }) => PairDepthBands; /** * @dev Alternative converter for raw slot-based pair depth bands (if needed for legacy) * @param aboveSlot1 First slot for above bands * @param aboveSlot2 Second slot for above bands * @param belowSlot1 First slot for below bands * @param belowSlot2 Second slot for below bands * @returns Normalized pair depth bands */ export declare const convertPairDepthBandsFromSlots: (aboveSlot1: bigint, aboveSlot2: bigint, belowSlot1: bigint, belowSlot2: bigint) => PairDepthBands;