import { ChartData, DataFormat } from "./types.js";
import { ReactNode } from "react";
import * as react_jsx_runtime285 from "react/jsx-runtime";

//#region src/react/charts/wrapper.d.ts
interface ChartWrapperQueryProps {
  /** Analytics query key */
  queryKey: string;
  /** Query parameters */
  parameters?: Record<string, unknown>;
  /** Data format preference */
  format?: DataFormat;
  /** Transform data after fetching */
  transformer?: <T>(data: T) => T;
  /** Direct data - not used in query mode */
  data?: never;
}
interface ChartWrapperDataProps {
  /** Direct data (Arrow Table or JSON array) */
  data: ChartData;
  /** Not used in data mode */
  queryKey?: never;
  parameters?: never;
  format?: never;
  transformer?: never;
}
interface CommonProps {
  /** Chart height in pixels */
  height?: number;
  /** Additional CSS classes */
  className?: string;
  /** Accessibility label */
  ariaLabel?: string;
  /** Test ID for automated testing */
  testId?: string;
  /** Render function receiving the chart data */
  children: (data: ChartData) => ReactNode;
}
type ChartWrapperProps = CommonProps & (ChartWrapperQueryProps | ChartWrapperDataProps);
/**
 * Wrapper component for charts.
 * Handles data fetching (query mode) or direct data injection (data mode).
 *
 * @example Query mode - fetches data from analytics endpoint
 * ```tsx
 * <ChartWrapper
 *   queryKey="spend_data"
 *   parameters={{ limit: 100 }}
 *   format="auto"
 * >
 *   {(data) => <MyChart data={data} />}
 * </ChartWrapper>
 * ```
 *
 * @example Data mode - uses provided data directly
 * ```tsx
 * <ChartWrapper data={myArrowTable}>
 *   {(data) => <MyChart data={data} />}
 * </ChartWrapper>
 * ```
 */
declare function ChartWrapper(props: ChartWrapperProps): react_jsx_runtime285.JSX.Element;
//#endregion
export { ChartWrapper, ChartWrapperProps };
//# sourceMappingURL=wrapper.d.ts.map