import { ActionIconVariant, ImageProps } from '@mantine/core';
import { default as React, CSSProperties } from 'react';
import { IArchbaseDataSourceBase } from '@archbase/data';
export interface ArchbaseImageEditProps<T, ID> extends ImageProps {
    /** Fonte de dados onde será atribuido o valor do rich edit (V1 ou V2) */
    dataSource?: IArchbaseDataSourceBase<T>;
    /** Campo onde deverá ser atribuido o valor do rich edit na fonte de dados */
    dataField?: string;
    /** Indicador se o rich edit está desabilitado */
    disabled?: boolean;
    /** Indicador se o rich edit é somente leitura. Obs: usado em conjunto com o status da fonte de dados */
    readOnly?: boolean;
    /** Indicador se o preenchimento do rich edit é obrigatório */
    required?: boolean;
    /** Estilo do checkbox */
    style?: CSSProperties;
    /** Título do rich edit */
    label?: string;
    /** Descrição do rich edit */
    description?: string;
    /** Último erro ocorrido no rich edit */
    error?: string;
    /** Controla a aparência dos botões, sendo padrão "transparent". ("filled" | "light" | "outline" | "transparent" | "white" | "subtle" | "default" | "gradient")*/
    variant?: ActionIconVariant;
    /** Image src */
    src?: string | null;
    /** Texto alternativo da imagem, usado como título para espaço reservado se a imagem não foi carregada */
    alt?: string;
    /** Largura da imagem, padrão de 100%, não pode exceder 100% */
    width?: number | string;
    /** Altura da imagem, o padrão é a altura da imagem original ajustada para determinada largura */
    height?: number | string;
    /** Chave de theme.radius ou qualquer valor CSS válido para definir border-radius, 0 por padrão */
    radius?: string | number | undefined;
    /** Obter ref do elemento de imagem */
    imageRef?: React.ForwardedRef<HTMLImageElement>;
    /** Legenda da imagem, exibida abaixo da imagem */
    caption?: React.ReactNode;
    aspectRatio?: number | null;
    objectFit?: 'cover' | 'contain' | 'fill' | 'revert' | 'scale-down';
    compressInitial?: number | undefined | null;
    onChangeImage?: (image: any) => void;
    /** Desabilita conversão do conteúdo em base64 antes de salvar na fonte de dados */
    disabledBase64Convertion?: boolean;
    /** Referência para o componente interno */
    innerRef?: React.RefObject<HTMLInputElement> | undefined;
    /** Cor de fundo da imagem */
    imageBackgroundColor?: string;
    /** Callback quando o estado de processamento muda (útil para desabilitar botões enquanto processa) */
    onProcessingChange?: (isProcessing: boolean) => void;
    /** Largura máxima da imagem em pixels (redimensiona automaticamente se exceder) */
    maxWidth?: number;
    /** Altura máxima da imagem em pixels (redimensiona automaticamente se exceder) */
    maxHeight?: number;
    /** Tamanho máximo da imagem em KB (recomprime se exceder) */
    maxSizeKb?: number;
    /**
     * Preserva a transparência da imagem (canal alfa).
     *
     * Quando true:
     *  - desabilita a compressão automática (`compressInitial` é forçado para `null`),
     *    impedindo que a biblioteca subjacente reencodifique PNG/WebP como JPEG.
     *  - força a saída em PNG (ou WebP, quando a origem já é WebP) ao redimensionar
     *    via `maxWidth`/`maxHeight`/`maxSizeKb`.
     *
     * Útil quando o usuário precisa enviar logos com fundo transparente.
     * Default: `false`.
     */
    preserveTransparency?: boolean;
    /**
     * Habilita logs detalhados do fluxo de processamento da imagem no console
     * (formato detectado, decisões de compressão, mime de saída, tamanhos, etc).
     * Útil para diagnosticar problemas como perda de transparência.
     * Default: `false`.
     */
    debug?: boolean;
}
export declare function ArchbaseImageEdit<T, ID>({ width, height, dataSource, dataField, disabled, readOnly, required, label, description, error, src, radius, aspectRatio, objectFit, compressInitial, onChangeImage, disabledBase64Convertion, innerRef, variant, imageBackgroundColor, onProcessingChange, maxWidth, maxHeight, maxSizeKb, preserveTransparency, debug, ...otherProps }: ArchbaseImageEditProps<T, ID>): import("react/jsx-runtime").JSX.Element;
