///
import type { ViewProps } from "react-native";
import type { AxisLabelProps } from "./AxisLabel";
import type { ComputePathProps } from "./computations";
import { HoverGestureHandlerOnBeginEventPayload, HoverGestureHandlerOnChangeEventPayload, HoverGestureHandlerOnEndEventPayload, PanGestureHandlerEventPayload, PanGestureHandlerOnBeginEventPayload, PanGestureHandlerOnChangeEventPayload } from "./useGestures";
export interface PathFillProps {
strokeWidth: number;
height: number;
width: number;
}
export interface InteractiveLineChartProps {
/**
* Whether the chart is static or interactive. If true, the chart will not respond to gestures.
* @default false
*/
isStatic?: false;
/**
* The radius of the cursor
* @default 8
*/
cursorRadius?: number;
/**
* The color of the cursor.
* @default "black"
*/
cursorColor?: string;
/**
* Whether to hide the cursor
* @default false
*/
hideCursor?: boolean;
/**
* The color of the cursor line.
* @default "rgba(0, 0, 0, 0.5)"
*/
cursorLineColor?: string;
/**
* The width of the cursor line.
* @default 2
*/
cursorLineWidth?: number;
/**
* Whether to hide the cursor line.
* @default false
*/
hideCursorLine?: boolean;
/**
* A worklet function that is executed when the pan gesture begins.
* @note This must be a [worklet](https://docs.swmansion.com/react-native-reanimated/docs/2.x/fundamentals/worklets/) function.
*/
onPanGestureBegin?: ((payload: PanGestureHandlerOnBeginEventPayload) => void) | null;
/**
* A worklet function that is executed during the pan gesture.
* @note This must be a [worklet](https://docs.swmansion.com/react-native-reanimated/docs/2.x/fundamentals/worklets/) function.
*/
onPanGestureChange?: ((payload: PanGestureHandlerOnChangeEventPayload) => void) | null;
/**
* A worklet function that is executed when the pan gesture ends.
* @note This must be a [worklet](https://docs.swmansion.com/react-native-reanimated/docs/2.x/fundamentals/worklets/) function.
*/
onPanGestureEnd?: ((payload: PanGestureHandlerEventPayload) => void) | null;
/**
* A worklet function that is executed when the hover gesture begins.
* @note This must be a [worklet](https://docs.swmansion.com/react-native-reanimated/docs/2.x/fundamentals/worklets/) function.
*/
onHoverGestureBegin?: ((payload: HoverGestureHandlerOnBeginEventPayload) => void) | null;
/**
* A worklet function that is executed during the hover gesture.
* @note This must be a [worklet](https://docs.swmansion.com/react-native-reanimated/docs/2.x/fundamentals/worklets/) function.
*/
onHoverGestureChange?: ((payload: HoverGestureHandlerOnChangeEventPayload) => void) | null;
/**
* A worklet function that is executed when the hover gesture ends.
* @note This must be a [worklet](https://docs.swmansion.com/react-native-reanimated/docs/2.x/fundamentals/worklets/) function.
*/
onHoverGestureEnd?: ((payload: HoverGestureHandlerOnEndEventPayload) => void) | null;
}
export type LineChartProps = ViewProps & {
/**
* Array of [x, y] points for the chart.
*/
points: [number, number][];
/**
* The precision of the y value's rounding.
* @default 2
*/
precision?: number;
/**
* The stroke width of the line
* @default 2
* */
strokeWidth?: number;
/**
* The component to render as the top axis label.
* @default null
*
* @note This compnent should not be a Skia component since it is not rendered
* in the Canvas.
*/
TopAxisLabel?: React.FC;
/**
* The component to render as the bottom axis label.
* @default null
*
* @note This compnent should not be a Skia component since it is not rendered
* in the Canvas.
*/
BottomAxisLabel?: React.FC;
/**
* The type of curve to use for the line chart. Currently, only "linear" is supported.
*
* @type "linear"
* @default "linear"
*/
curveType?: ComputePathProps["curveType"];
/**
* The component to render as the path fill. This is rendered as the child of
* the Path, enabling you to style the path with Skia components.
*
* @note This component must be a Skia component.
*
* @example A simple example of a path fill using a *Paint* component:
* ```tsx
import { Paint } from "@shopify/react-native-skia";
(
)}
/>
* ```
* @example The example below shows how to use a *LinearGradient* to fill the path.
* ```tsx
import { LinearGradient } from "@shopify/react-native-skia";
(
)}
/>
* ```
*/
PathFill?: React.FC;
} & (Static extends true ? {
/**
* Whether the chart is static or interactive. If true, the chart will not respond to gestures
* @default false
*/
isStatic: true;
} : InteractiveLineChartProps);
export declare const LineChart: {
({ isStatic, ...props }: LineChartProps): JSX.Element;
displayName: string;
};
//# sourceMappingURL=LineChart.d.ts.map