import { type Interval, type PerseusImageBackground, type PerseusImageLabel, type Size } from "@khanacademy/perseus-core";
import * as React from "react";
import type { APIOptions } from "../../../types";
import type { LinterContextProps } from "@khanacademy/perseus-linter";
export interface ZoomProps {
    /**
     * zoomSize represents the larger of the image’s natural size (calculated on load)
     * and the saved backgroundImage size (specified when the content is written). This
     * ensures that zooming is enabled only if the image is sufficiently large.
     * image (calculated on load) and the saved backgroundImage size (specified
     * when the content is written). This larger image size is used to
     * determine if the image is large enough to allow zooming.
     */
    zoomSize: Size;
}
export interface GifProps {
    isGifPlaying: boolean;
    setIsGifPlaying: (isPaused: boolean) => void;
}
export interface CommonImageProps {
    backgroundImage: PerseusImageBackground;
    scale: number;
    title: string;
    caption: string;
    alt: string;
    longDescription: string;
    box: Size;
    labels: Array<PerseusImageLabel>;
    range: [Interval, Interval];
    linterContext: LinterContextProps;
    apiOptions: APIOptions;
}
type Props = ZoomProps & GifProps & CommonImageProps;
/**
 * The ImageInfoArea component includes the GIF controls, description modal
 * launcher, and caption for the image. This is displayed underneath the image
 * in the Image widget.
 */
export declare const ImageInfoArea: (props: Props) => React.JSX.Element | null;
export {};
