export type DataAssetMediaType = 'DOCUMENT' | 'IMAGE' | 'VIDEO';
type MagicFormat = 'PDF' | 'XLSX' | 'CSV' | 'JPEG' | 'PNG' | 'WEBP' | 'MP4' | 'MOV' | 'WEBM' | 'UNKNOWN';
type MediaFileLike = Blob & {
    name?: string;
    type?: string;
};
export interface ValidateDataAssetMediaFileInput {
    assetType: DataAssetMediaType;
    file: MediaFileLike;
    maxSizeInBytes: number;
}
export interface ValidatedDataAssetMediaFile {
    assetType: DataAssetMediaType;
    extension: string;
    mimeType: string;
    size: number;
    detectedFormat: Exclude<MagicFormat, 'UNKNOWN'>;
}
type ValidationSuccess = {
    success: true;
    data: ValidatedDataAssetMediaFile;
};
type ValidationFailure = {
    success: false;
    errors: string[];
};
export declare class DataAssetMediaFileValidator {
    static safeValidate(input: ValidateDataAssetMediaFileInput): Promise<ValidationSuccess | ValidationFailure>;
    static validate(input: ValidateDataAssetMediaFileInput): Promise<ValidatedDataAssetMediaFile>;
}
export declare function validateDataAssetMediaFile(input: ValidateDataAssetMediaFileInput): Promise<ValidatedDataAssetMediaFile>;
export {};
