import { ReactNode } from 'react';
import type { ChartDataPoint, ChartConfig } from '../../types/chart.types';
import type { ChartScales } from '../../hooks/useChartScales';
export interface ChartDimensions {
    width: number;
    height: number;
}
export interface ChartMargins {
    top: number;
    right: number;
    bottom: number;
    left: number;
}
export interface ChartContainerProps {
    /**
     * Child components to render within the chart (BarRenderer, LineRenderer, etc.)
     */
    children: ReactNode;
    /**
     * Chart data
     */
    data: ChartDataPoint[];
    /**
     * Chart configuration
     */
    config: ChartConfig;
    /**
     * Calculated scales for X and Y axes
     */
    scales: ChartScales;
    /**
     * Chart dimensions
     */
    dimensions?: ChartDimensions;
    /**
     * Chart margins
     */
    margins?: ChartMargins;
    /**
     * Whether to show grid lines
     */
    showGrid?: boolean;
    /**
     * Whether to show X axis
     */
    showXAxis?: boolean;
    /**
     * Whether to show Y axis
     */
    showYAxis?: boolean;
    /**
     * Number of grid lines
     */
    gridLineCount?: number;
    /**
     * Custom tick formatter for Y axis
     */
    yAxisTickFormatter?: (value: number) => string;
    /**
     * Category width for X axis (bar charts)
     */
    categoryWidth?: number;
    /**
     * Category gap for X axis (bar charts)
     */
    categoryGap?: number;
    /**
     * Additional CSS class name
     */
    className?: string;
    /**
     * Chart title for accessibility
     */
    title?: string;
    /**
     * Chart description for accessibility
     */
    description?: string;
    /**
     * Whether to enable keyboard navigation
     */
    enableKeyboardNavigation?: boolean;
    /**
     * Chart type (affects margin calculations and axis rendering)
     */
    chartType?: 'bar' | 'line' | 'combo';
    /**
     * Additional props to pass to container div
     */
    [key: string]: unknown;
}
