import { ReactNode } from "react";
import { ReadFileResult } from "@ryuzaki13/react-foundation-lib/file";
import { CroppedAreaPixels } from "./ImageCropper";
type SelectedImageFile = Extract<ReadFileResult, {
    mode: "data-url";
}>;
/**
 * Данные одного выбранного изображения, которые нужны вызывающему коду:
 * исходный файл, пользовательское описание и выбранная область обрезки.
 */
export type SelectedImageData = {
    file: SelectedImageFile;
    alt: string;
    crop?: CroppedAreaPixels;
};
interface ImageSelectionPanelProps {
    aspect?: number;
    disabled?: boolean;
    value?: SelectedImageData[];
    defaultValue?: SelectedImageData[];
    onChange?: (data: SelectedImageData[]) => void;
    onApply?: (data: SelectedImageData[]) => void;
    renderActions?: (data: ImageSelectionActionsData) => ReactNode;
}
interface ImageSelectionModalProps extends ImageSelectionPanelProps {
    isOpen?: boolean;
    onClose?: () => void;
    title?: string;
}
interface ImageSelectionActionsData {
    value: SelectedImageData[];
    activeIndex: number;
    hasSelected: boolean;
    canApply: boolean;
    apply: () => void;
}
export declare function ImageSelectionPanel({ aspect, disabled, renderActions, ...props }: ImageSelectionPanelProps): import("react").JSX.Element;
export declare function ImageSelectionModal({ aspect, disabled, isOpen, onClose, title, ...props }: ImageSelectionModalProps): import("react").JSX.Element;
export {};
//# sourceMappingURL=ImageSelection.d.ts.map