/// import { UseStateWithGetterResult } from "use-common-hook"; import { Options, UploaderFunction } from "./types"; export declare type BaseItemData = Record<"id" | "name", string> & Record<"size", number>; export declare type HasBaseData = T & BaseItemData; export declare type HasGuid = T & { guid: string; }; export declare type OptionsProp = Partial>>; declare type HookSimilarProps = { initialData?: HasBaseData[]; enabled?: boolean; }; export declare type UploaderProps = { uploader: UploaderFunction; } & OptionsProp & HookSimilarProps; export declare type ConnectToUploaderProps = { initialData?: HasBaseData[]; storeId: symbol; } & HookSimilarProps; export declare type InternalDataItem = BaseItemData & ({ status: "loading"; discard: () => void; } | { status: "error"; } | { status: "loaded"; data: HasBaseData; }); export declare type UseUploaderData = { data: UseStateWithGetterResult[]>["state"]; setData: UseStateWithGetterResult[]>["setter"]; getData: UseStateWithGetterResult[]>["getter"]; }; export declare type GetData = InternalDataItem[]; export declare type DataForSync = Extract, { status: "loaded"; }>["data"]; export declare type HookResult = { readonly dragRef: React.RefCallback; readonly files: { id: string; status: "loading" | "error" | "loaded"; name: string; size: number; remove: null | (() => void); data: HasBaseData | null; }[]; readonly inputProps: Pick, "accept" | "onChange" | "multiple" | "disabled">; readonly enrich: (filesForEnrich: DataForSync[]) => void; } & Readonly>; export declare type LoadFiles = (files: File[]) => void; export declare type FilesChecker = (files: FileList) => boolean; export declare type UseProvideUploaderStore = Omit, "initialData">; export declare type UseCreateStoreEnabledProps = { id: symbol; options?: Partial; uploader: UploaderFunction; }; export {};