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 {};
