import React from 'react';
import { RendererProps } from '../factory';
import { ClassNamesFn } from '../theme';
export interface ImageThumbProps {
    src: string;
    originalSrc?: string;
    enlargeAble?: boolean;
    onEnlarge?: (info: ImageThumbProps) => void;
    showDimensions?: boolean;
    title?: string;
    alt?: string;
    index?: number;
    className?: string;
    imageClassName?: string;
    caption?: string;
    thumbMode?: 'w-full' | 'h-full' | 'contain' | 'cover';
    thumbRatio?: '1:1' | '4:3' | '16:9';
    classnames: ClassNamesFn;
    classPrefix: string;
    onLoad?: React.EventHandler<any>;
}
export declare class ImageThumb extends React.Component<ImageThumbProps> {
    handleEnlarge(): void;
    render(): JSX.Element;
}
declare const ThemedImageThumb: React.ComponentClass<Pick<ImageThumbProps, "caption" | "title" | "index" | "className" | "alt" | "src" | "onLoad" | "imageClassName" | "onEnlarge" | "originalSrc" | "enlargeAble" | "showDimensions" | "thumbMode" | "thumbRatio"> & {
    theme?: string | undefined;
    classPrefix?: string | undefined;
    classnames?: ClassNamesFn | undefined;
}, any> & {
    ComposedComponent: typeof ImageThumb;
};
export default ThemedImageThumb;
export interface ImageFieldProps extends RendererProps {
    className?: string;
    imageClassName?: string;
    placeholder: string;
    description?: string;
    enlargeTitle?: string;
    enlargeCaption?: string;
    thumbMode: 'w-full' | 'h-full' | 'contain' | 'cover';
    thumbRatio: '1:1' | '4:3' | '16:9';
    originalSrc?: string;
    enlargeAble?: boolean;
    onImageEnlarge?: (info: {
        src: string;
        originalSrc: string;
        title?: string;
        caption?: string;
        thumbMode?: 'w-full' | 'h-full' | 'contain' | 'cover';
        thumbRatio?: '1:1' | '4:3' | '16:9';
    }, target: any) => void;
    showDimensions?: boolean;
}
export declare class ImageField extends React.Component<ImageFieldProps, object> {
    static defaultProps: Pick<ImageFieldProps, 'defaultImage' | 'thumbMode' | 'thumbRatio' | 'placeholder'>;
    handleEnlarge({ src, originalSrc, title, caption, thumbMode, thumbRatio }: ImageThumbProps): void;
    render(): JSX.Element;
}
export declare class ImageFieldRenderer extends ImageField {
}
