import React from 'react';
import { TMethod } from '@onesy/models';
import { ILine } from '../Line/Line';
import { IElementReference, IElement, IPropsAny } from '../types';
export declare type TImageEditFilter = {
    label?: string;
    Icon?: IElementReference;
    value?: string;
    method: (value: number, mainCanvas: HTMLCanvasElement, valueCopy: HTMLCanvasElement) => HTMLCanvasElement;
    renderIconButton: (value: string, selected: boolean, onChangeFilter: TMethod) => IElement;
    renderSlider: (value: string, filterValuesCopy: any, onFilterSliderChange: TMethod) => IElement;
};
export declare type IImageEdit = Omit<ILine, 'onChange'> & {
    image?: string | HTMLCanvasElement;
    name?: string;
    type?: string;
    openDefault?: boolean;
    openedOptionDefault?: string;
    valueDefault?: HTMLCanvasElement;
    value?: HTMLCanvasElement;
    valueCopyDefault?: HTMLCanvasElement;
    valueCopy?: HTMLCanvasElement;
    onChange?: (value: HTMLCanvasElement) => any;
    onChangeCopy?: (value: HTMLCanvasElement) => any;
    onlyFilters?: Array<string>;
    filters?: Array<TImageEditFilter>;
    meta?: boolean;
    filtersOption?: boolean;
    cropOption?: boolean;
    resizeOption?: boolean;
    qualityOption?: boolean;
    downloadOption?: boolean;
    resizeAspectRatio?: boolean;
    renderOption?: (item?: {
        label: string;
        value: string;
        Icon: IElementReference;
    }, selected?: boolean, openOption?: (value: any) => any) => IElement;
    renderOptionClear?: (onReset: (imageReset: boolean, valueCopyReset: boolean, resizeReset: boolean) => any) => any;
    renderSave?: (onSave: () => any) => any;
    renderCancel?: (onSave: () => any) => any;
    renderSlider?: (value: string, filterValuesCopy: any, onFilterSliderChange: TMethod) => IElement;
    renderDownload?: (onDownload: () => any) => any;
    renderInput?: (value: HTMLCanvasElement, valueCopy: HTMLCanvasElement, resize: Array<number>, onChange: (value: string, ...args: any[]) => any, property?: string) => IElement;
    IconBrightness?: IElementReference;
    IconContrast?: IElementReference;
    IconSaturation?: IElementReference;
    IconFade?: IElementReference;
    IconInvert?: IElementReference;
    IconOldPhoto?: IElementReference;
    IconSave?: IElementReference;
    IconCancel?: IElementReference;
    IconClear?: IElementReference;
    IconCrop?: IElementReference;
    IconFilters?: IElementReference;
    IconResize?: IElementReference;
    IconQuality?: IElementReference;
    IconDownload?: IElementReference;
    ChipProps?: IPropsAny;
    SliderProps?: IPropsAny;
    TooltipProps?: IPropsAny;
    ImageCropProps?: IPropsAny;
    IconButtonProps?: IPropsAny;
};
declare const ImageEdit: React.FC<IImageEdit>;
export default ImageEdit;
