import * as React from "react";
import type { ChartConfig, CopyFormat } from "./export/chartConfig";
export interface ChartContainerProps {
    /** Chart title */
    title?: string;
    /** Subtitle / description */
    subtitle?: string;
    /** Chart children (any Semiotic chart component) */
    children: React.ReactNode;
    /** Width — passed to child chart if not set on child. Default: "100%" */
    width?: number | string;
    /** Height of the chart area (excluding header). Default: 400 */
    height?: number;
    /** Built-in actions. Each can be true (default config), false (hidden), or config object */
    actions?: {
        export?: boolean | {
            format?: "svg" | "png";
            scale?: number;
            filename?: string;
        };
        fullscreen?: boolean;
        /** Enable "Copy Config" action button. Requires chartConfig prop. */
        copyConfig?: boolean | {
            format?: CopyFormat;
        };
        /** Enable "Data Summary" action button — shows statistical summary + sample rows */
        dataSummary?: boolean;
    };
    /** Chart configuration for serialization. Enables the "Copy Config" toolbar action. */
    chartConfig?: ChartConfig;
    /** Additional controls rendered in the toolbar after built-in actions */
    controls?: React.ReactNode;
    /** Loading state — shows skeleton placeholder */
    loading?: boolean;
    /** Error state — shows error message (overrides children) */
    error?: string | React.ReactNode;
    /** Wrap children in ChartErrorBoundary */
    errorBoundary?: boolean;
    /** Status indicator (wired to streaming staleness) */
    status?: "live" | "stale" | "paused" | "error" | "static";
    /** Details panel rendered alongside the chart (e.g. DetailsPanel component) */
    detailsPanel?: React.ReactNode;
    /** CSS class for the outer container */
    className?: string;
    /** Inline style overrides */
    style?: React.CSSProperties;
}
export interface ChartContainerHandle {
    /** Export chart to SVG or PNG */
    export: (options?: {
        format?: "svg" | "png";
        scale?: number;
        filename?: string;
    }) => Promise<void>;
    /** Toggle fullscreen */
    toggleFullscreen: () => void;
    /** Copy chart config to clipboard */
    copyConfig: (format?: CopyFormat) => Promise<void>;
    /** The chart container DOM element */
    element: HTMLDivElement | null;
}
export declare const ChartContainer: React.ForwardRefExoticComponent<ChartContainerProps & React.RefAttributes<ChartContainerHandle>>;
