<commit_before>declare module 'react-s3-uploader' {
  import { Component } from 'react';

  export interface ReactS3UploaderProps {
    signingUrl?: string;
    signingUrlMethod?: 'GET' | 'POST';
    getSignedUrl?: (file: File, callback: (params: { signedUrl: string; }) => any) => any;
    accept?: string;
    s3path?: string;
    preprocess?: (file: File, next: (file: File) => any) => any;
    onSignedUrl?: (response: object) => any;
    onProgress?: (percent: number, status: string, file: File) => any;
    onError?: (message: string) => any;
    onFinish?: (result: object) => any;
    signingUrlHeaders?: {
      additional: object;
    };
    signingUrlQueryParams?: {
      additional: object;
    };
    signingUrlWithCredentials?: boolean;
    uploadRequestHeaders?: object;
    contentDisposition?: string;
    server?: string;
    inputRef?: (ref: HTMLInputElement) => any;
    autoUpload?: boolean;
    [key: string]: any;
  }

  class ReactS3Uploader extends React.Component<ReactS3UploaderProps, any> { }

  export default ReactS3Uploader;
}<commit_msg>chore: update onFinish with better types<commit_after>declare module 'react-s3-uploader' {
  import { Component } from 'react';

  export interface S3Response {
    signedUrl: string;
    publicUrl: string;
    filename: string;
    fileKey: string;
  }

  export interface ReactS3UploaderProps {
    signingUrl?: string;
    signingUrlMethod?: 'GET' | 'POST';
    getSignedUrl?: (file: File, callback: (params: { signedUrl: string; }) => any) => any;
    accept?: string;
    s3path?: string;
    preprocess?: (file: File, next: (file: File) => any) => any;
    onSignedUrl?: (response: S3Response) => any;
    onProgress?: (percent: number, status: string, file: File) => any;
    onError?: (message: string) => any;
    onFinish?: (result: S3Response, file: File) => any;
    signingUrlHeaders?: {
      additional: object;
    };
    signingUrlQueryParams?: {
      additional: object;
    };
    signingUrlWithCredentials?: boolean;
    uploadRequestHeaders?: object;
    contentDisposition?: string;
    server?: string;
    inputRef?: (ref: HTMLInputElement) => any;
    autoUpload?: boolean;
    [key: string]: any;
  }

  class ReactS3Uploader extends React.Component<ReactS3UploaderProps, any> { }

  export default ReactS3Uploader;
}
{'fraction_non_alphanumeric': 0.1369330453563715, 'fraction_numerical': 0.0064794816414686825, 'mean_word_length': 3.765432098765432, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '41122', 'n_tokens_mistral': 715, 'n_tokens_neox': 715, 'n_words': 192}