/**
 * Copyright 2023 Kapeta Inc.
 * SPDX-License-Identifier: MIT
 */
import React from 'react';
import { FormFieldControllerProps } from '../form/formFieldController';
import { IconValue } from '@kapeta/schemas';
import { ValidatorListUnresolved } from '../validation/Validators';
export declare enum AvatarResultType {
    RAW = 0,
    DATA_URL = 1
}
interface Props {
    url: string;
    onSave: (file: AvatarFileInfo) => Promise<void> | void;
    fallbackIcon?: string;
    size?: number;
    resultType?: AvatarResultType;
    sync?: boolean;
    maxFileSize?: number;
    readOnly?: boolean;
    disabled?: boolean;
}
export interface AvatarFileInfo {
    name: string;
    url: string;
    size: number;
    mimeType: string;
    data: string | ArrayBuffer;
}
export declare const AvatarEditor: (props: Props) => React.JSX.Element;
interface FormProps extends FormFieldControllerProps<IconValue> {
    fallbackIcon?: string;
    onChange?: (inputName: string, userInput: IconValue) => void | Promise<void>;
    maxFileSize?: number;
}
export declare const FormAvatarEditor: (props: FormProps) => React.JSX.Element;
interface FieldProps {
    name: string;
    label: string;
    help?: string;
    fallbackIcon?: string;
    validation?: ValidatorListUnresolved;
    disabled?: boolean;
    maxFileSize?: number;
}
export declare const FormAvatarEditorField: (props: FieldProps) => React.JSX.Element;
export {};
