react-native-stock-graphs
Version:
High-performance, interactive stock charts for React Native with TypeScript support
159 lines • 4.38 kB
TypeScript
import { CandleData, LineData, DateRange, ChartDimensions } from '../types';
/**
* Convert timestamp to x-coordinate
*/
export declare function timeToX(timestamp: number, timeRange: {
min: number;
max: number;
}, dimensions: ChartDimensions): number;
export declare function timeToX(timestamp: number, timeRange: {
min: number;
max: number;
}, chartWidth: number, padding?: {
left: number;
right: number;
}): number;
/**
* Convert price to y-coordinate
*/
export declare function priceToY(price: number, priceRange: {
min: number;
max: number;
}, dimensions: ChartDimensions): number;
export declare function priceToY(price: number, priceRange: {
min: number;
max: number;
}, chartHeight: number, padding?: {
top: number;
bottom: number;
}): number;
/**
* Convert x-coordinate to timestamp
*/
export declare function xToTime(x: number, timeRange: {
min: number;
max: number;
}, dimensions: ChartDimensions): number;
export declare function xToTime(x: number, timeRange: {
min: number;
max: number;
}, chartWidth: number, padding?: {
left: number;
right: number;
}): number;
/**
* Convert y-coordinate to price
*/
export declare function yToPrice(y: number, priceRange: {
min: number;
max: number;
}, dimensions: ChartDimensions): number;
export declare function yToPrice(y: number, priceRange: {
min: number;
max: number;
}, chartHeight: number, padding?: {
top: number;
bottom: number;
}): number;
/**
* Get time range from data
*/
export declare const getTimeRange: (data: CandleData[] | LineData[]) => {
min: number;
max: number;
};
/**
* Get price range from candle data or line data
*/
export declare function getPriceRange(data: CandleData[]): {
min: number;
max: number;
};
export declare function getPriceRange(data: LineData[]): {
min: number;
max: number;
};
/**
* Get value range from line data
*/
export declare const getValueRange: (data: LineData[]) => {
min: number;
max: number;
};
/**
* Filter data by date range
*/
export declare const filterDataByRange: <T extends CandleData | LineData>(data: T[], range: DateRange | {
min: number;
max: number;
}) => T[];
/**
* Decimate data for performance (keep every nth point)
*/
export declare const decimateData: <T extends CandleData | LineData>(data: T[], maxPoints: number) => T[];
/**
* Find nearest data point to coordinates
*/
export declare function findNearestDataPoint<T extends CandleData | LineData>(data: T[], targetTime: number): {
point: T;
index: number;
time: number;
} | null;
export declare function findNearestDataPoint<T extends CandleData | LineData>(data: T[], x: number, timeRange: {
min: number;
max: number;
}, chartWidth: number, padding?: {
left: number;
right: number;
}): {
point: T;
index: number;
} | null;
/**
* Generate nice tick values for axis
*/
export declare const generateTicks: (min: number, max: number, maxTicks?: number) => number[];
/**
* Format price for display
*/
export declare const formatPrice: (price: number, decimals?: number) => string;
/**
* Format timestamp for display
*/
export declare const formatTime: (timestamp: number, format?: "time" | "date" | "datetime") => string;
/**
* Calculate visible data range based on zoom and pan
*/
export declare const calculateVisibleRange: (data: CandleData[] | LineData[], zoom: number, panX: number, chartWidth: number) => {
startIndex: number;
endIndex: number;
visibleData: (CandleData | LineData)[];
};
/**
* Clamp value between min and max
*/
export declare const clamp: (value: number, min: number, max: number) => number;
/**
* Linear interpolation
*/
export declare const lerp: (start: number, end: number, factor: number) => number;
/**
* Calculate distance between two points
*/
export declare function distance(point1: {
x: number;
y: number;
}, point2: {
x: number;
y: number;
}): number;
export declare function distance(x1: number, y1: number, x2: number, y2: number): number;
/**
* Throttle function calls
*/
export declare const throttle: <T extends (...args: any[]) => any>(func: T, delay: number) => T;
/**
* Debounce function calls
*/
export declare const debounce: <T extends (...args: any[]) => any>(func: T, delay: number) => T;
//# sourceMappingURL=chart.d.ts.map