import { type ReactNode } from "react";
import type { StyleProp, ViewStyle } from "react-native";
import { type ChartSelectionClearReason, type ChartSelectionDismissReason, type ChartSelectionScopeState } from "./scope";
export type ChartSelectionProviderProps = {
    children: ReactNode;
    dismissOnPressOutside?: boolean;
    style?: StyleProp<ViewStyle>;
};
export type ChartSelectionContextValue = ChartSelectionScopeState & {
    dismissSelection: (reason?: ChartSelectionDismissReason) => void;
    selectChart: (chartId: string) => void;
};
export type ScopedChartSelectionOptions = {
    chartId: string;
    controlled: boolean;
    hasSelection: boolean;
    onClear: (reason: ChartSelectionClearReason) => void;
};
export declare const ChartSelectionProvider: ({ children, dismissOnPressOutside, style }: ChartSelectionProviderProps) => import("react").JSX.Element;
export declare const useChartSelection: () => ChartSelectionContextValue | undefined;
export declare const useDismissChartSelection: () => (reason?: ChartSelectionDismissReason) => void;
export declare const useScopedChartSelection: ({ chartId, controlled, hasSelection, onClear }: ScopedChartSelectionOptions) => {
    dismissSelection: ((reason?: ChartSelectionDismissReason) => void) | undefined;
    selectChart: () => void;
};
export type { ChartSelectionClearReason, ChartSelectionDismissReason } from "./scope";
//# sourceMappingURL=ChartSelectionProvider.d.ts.map