/// <reference types="react" />
import { StyleProps } from '../../@declares';
import { InputTypes } from '.';
declare namespace Filer {
    type CustomFile = File & {
        id: string;
    };
    type Accept = 'image' | string;
    type Input = InputTypes.CoreInput<CustomFile[]> & React.DOMAttributes<HTMLInputElement> & {
        tone?: InputTypes.BoxTone;
        tabIndex?: number;
        id?: string;
        disabled?: boolean;
        value?: CustomFile[];
        limit?: number;
        isNameEditable?: boolean;
        useSystemOnly?: boolean;
        accept?: Accept;
        cellStyles?: StyleProps.States;
        cellClassName?: string;
    };
    type WrapperStates = {
        rootStates: Input & {
            limit: number;
        };
        val_status: InputTypes.Status<CustomFile[]>;
        set_status: React.Dispatch<React.SetStateAction<InputTypes.Status<CustomFile[]>>>;
    };
    type ListCellInput = WrapperStates & {
        index: number;
        val_file: File;
        val_status: InputTypes.Status<CustomFile[]>;
        set_status: React.Dispatch<React.SetStateAction<InputTypes.Status<CustomFile[]>>>;
    };
    namespace Methods {
        type Component = React.FC<Input>;
        type FNs = {
            fn: {
                openDialog(p: {
                    accept?: Accept;
                    multiple?: boolean;
                    onChange(files: File[]): void;
                }): void;
            };
        };
    }
    type Methods = Methods.Component & Methods.FNs;
}
declare const Filer: Filer.Methods;
export { Filer, Filer as default };
