import { Note } from "../models/note"; import { File } from "../utils/file"; import { IHasher } from "../utils/hasher"; export declare type ProviderType = "network" | "file"; interface IBaseProvider { type: T; version: string; name: string; } export interface IFileProvider extends IBaseProvider<"file"> { supportedExtensions: string[]; validExtensions: string[]; process(files: File[], settings: ProviderSettings): Promise; } export interface INetworkProvider extends IBaseProvider<"network"> { process(settings: TSettings): Promise; } export declare type IProvider = IFileProvider | INetworkProvider; export interface ProviderSettings { clientType: "browser" | "node"; hasher: IHasher; } export declare type ProviderResult = { errors: Error[]; notes: Note[]; }; declare type ProcessAction = (file: File, notes: Note[], errors: Error[]) => Promise; /** * Iterate over files & perform transformation in an error resistant * manner. All errors are collected for later processing. */ export declare function iterate(provider: IFileProvider, files: File[], process: ProcessAction): Promise; export {};