import React from "react";
import { Renderer } from "@foxglove/studio-base/panels/ThreeDeeRender/Renderer";
import { SaveConfig } from "@foxglove/studio-base/types/panels";
type Props = {
    config: Record<string, unknown>;
    saveConfig: SaveConfig<Record<string, unknown>>;
    onDownloadImage?: (blob: Blob, fileName: string) => void;
    debugPicking?: boolean;
    frameRenderedEvent?: (currentTime: number) => void;
    annotationReceivedEventHandler?: () => void;
    handleOnClick?: (event: React.MouseEvent, clickOffsetCoords: {
        offsetX: number;
        offsetY: number;
    } | undefined) => void;
    handleCursorPositionUpdate?: (coordinates: {
        x: number;
        y: number;
    }, offsetCoordinates: {
        offsetX: number;
        offsetY: number;
    } | undefined) => void;
    registerRendered?: (renderer: Renderer) => void;
    unregisterRendered?: () => void;
    customOverlay?: JSX.Element;
};
/**
 * The Image panel is a special case of the 3D panel with `interfaceMode` set to `"image"`.
 */
export declare const ImagePanel: React.ComponentType<{
    childId?: string;
    overrideConfig?: Record<string, unknown> | undefined;
    tabId?: string;
} & Omit<Props, "config" | "saveConfig">> & import("@foxglove/studio-base/components/Panel").PanelStatics<Record<string, unknown>>;
declare const _default: React.ComponentType<{
    childId?: string;
    overrideConfig?: {} | undefined;
    tabId?: string;
} & Omit<Props, "config" | "saveConfig">> & import("@foxglove/studio-base/components/Panel").PanelStatics<{}>;
export default _default;
//# sourceMappingURL=index.d.ts.map