import type { Logger } from '../lib/Sendbird/types'; import type { OpenGlobalModalProps } from '../hooks/useModal'; import type { StringSet } from '../ui/Label/stringSet'; interface CountLimitParams { totalCount: number; uikitMultipleFilesMessageLimit: number; openModal: (props: OpenGlobalModalProps) => void; stringSet: StringSet; logger?: Logger; logTag?: string; } /** * Validates that the resulting file count (existing + incoming) does not * exceed the configured limit. Opens the count-limit modal on failure. * Returns true when within limit. */ export declare const validateFileCount: ({ totalCount, uikitMultipleFilesMessageLimit, openModal, stringSet, logger, logTag, }: CountLimitParams) => boolean; interface TypeFilterParams { files: File[]; acceptableMimeTypes?: string[]; openModal: (props: OpenGlobalModalProps) => void; stringSet: StringSet; logger?: Logger; logTag?: string; } /** * Validates that every file matches the consumer's acceptableMimeTypes (or * the UIKit default supported list when unspecified). Opens the unsupported- * type modal and rejects the whole batch when any file fails. */ export declare const validateFileTypes: ({ files, acceptableMimeTypes, openModal, stringSet, logger, logTag, }: TypeFilterParams) => boolean; interface SizeLimitParams { files: File[]; uikitUploadSizeLimit: number; openModal: (props: OpenGlobalModalProps) => void; stringSet: StringSet; logger?: Logger; logTag?: string; } /** * Validates that no file exceeds the configured size limit. Opens the * size-limit modal on failure. Returns true when all files within limit. */ export declare const validateFileSizes: ({ files, uikitUploadSizeLimit, openModal, stringSet, logger, logTag, }: SizeLimitParams) => boolean; export interface ValidateFilesForUploadParams { files: File[]; uikitUploadSizeLimit: number; uikitMultipleFilesMessageLimit: number; acceptableMimeTypes: string[] | undefined; openModal: (props: OpenGlobalModalProps) => void; stringSet: StringSet; logger?: Logger; /** Logger context tag (e.g. 'GroupChannel|useHandleUploadFiles'). */ logTag?: string; } /** * Validates a File[] before upload. Used by the legacy immediate-send hooks. * Composer staging (usePendingFiles) calls validateFileTypes, validateFileCount, * and validateFileSizes directly so it can check combined-with-staging count. */ export declare const validateFilesForUpload: ({ files, uikitUploadSizeLimit, uikitMultipleFilesMessageLimit, acceptableMimeTypes, openModal, stringSet, logger, logTag, }: ValidateFilesForUploadParams) => boolean; export {};