import type { Body, I18n, Meta, UppyFile } from '@uppy/utils'; import type { NonNullableUppyOptions, State } from './Uppy.js'; export type Restrictions = { maxFileSize: number | null; minFileSize: number | null; maxTotalFileSize: number | null; maxNumberOfFiles: number | null; minNumberOfFiles: number | null; allowedFileTypes: string[] | null; requiredMetaFields: string[]; }; /** * The minimal required properties to be present from UppyFile in order to validate it. */ export type ValidateableFile = Pick, 'type' | 'extension' | 'size'> & Partial, 'name' | 'isGhost'>>; declare const defaultOptions: { maxFileSize: null; minFileSize: null; maxTotalFileSize: null; maxNumberOfFiles: null; minNumberOfFiles: null; allowedFileTypes: null; requiredMetaFields: never[]; }; declare class RestrictionError extends Error { isUserFacing: boolean; file: UppyFile; constructor(message: string, opts?: { isUserFacing?: boolean; file?: UppyFile; }); isRestriction: boolean; } declare class Restricter { getI18n: () => I18n; getOpts: () => NonNullableUppyOptions; constructor(getOpts: () => NonNullableUppyOptions, getI18n: () => I18n); validateAggregateRestrictions(existingFiles: ValidateableFile[], addingFiles: ValidateableFile[]): void; validateSingleFile(file: ValidateableFile): void; validate(existingFiles: ValidateableFile[], addingFiles: ValidateableFile[]): void; validateMinNumberOfFiles(files: State['files']): void; getMissingRequiredMetaFields(file: ValidateableFile & { meta: M; }): { missingFields: string[]; error: RestrictionError; }; } export { Restricter, defaultOptions, RestrictionError }; //# sourceMappingURL=Restricter.d.ts.map