import * as React from "react";
interface SafeRenderProps {
    componentName: string;
    width: number;
    height: number;
    /** @deprecated Retained for back-compat; no longer threaded into the
     *  error boundary. Use `npx semiotic-ai --doctor` or import
     *  `diagnoseConfig` from `semiotic/utils` for validation diagnostics. */
    chartProps?: Record<string, unknown>;
    children: React.ReactNode;
}
/**
 * Wraps a chart's rendered output with an error boundary. If the chart
 * throws during render, displays the error message with the component
 * name.
 *
 * For richer prop diagnostics ("missing accessor", "wrong data shape",
 * etc.), use `npx semiotic-ai --doctor` (CLI) or import `diagnoseConfig`
 * from `semiotic/utils`. We intentionally don't bundle the validation
 * map into every subpath import — it would add ~7KB gz to xy/ordinal/
 * network just to power a fallback that only fires when render throws.
 */
export declare function SafeRender({ componentName, width, height, children }: SafeRenderProps): React.JSX.Element;
/**
 * Renders a "No data available" placeholder when data is empty.
 * Returns null when data is present or emptyContent is `false`.
 */
export declare function renderEmptyState(data: any[] | undefined | null, width: number, height: number, emptyContent?: React.ReactNode | false): React.ReactElement | null;
/**
 * Renders a loading placeholder while `loading` is true.
 *
 * When `loadingContent` is provided, it replaces the default shimmer
 * skeleton — wrapped in the same sized container so the chart still
 * occupies the slot it would when rendered. Pass `false` to suppress
 * the skeleton entirely (the early-return becomes null and the chart's
 * own loading UI takes over).
 *
 * Returns null when `loading` is falsy.
 */
export declare function renderLoadingState(loading: boolean | undefined, width: number, height: number, loadingContent?: React.ReactNode | false): React.ReactElement | null;
/** Warn if a string accessor isn't found in the first data element */
export declare function warnMissingField(componentName: string, data: any[] | undefined, accessorName: string, accessorValue: any): void;
/** Warn if data looks like the wrong shape for this chart type */
export declare function warnDataShape(componentName: string, data: any[] | undefined, expectedKeys: string[], hint: string): void;
export {};
