import React from 'react';

interface SparrowIQProps {
    FileType: string[];
    config: {
        API_KEY: string;
        UPLOAD_URL: string;
        GENERATE_URL: string;
    };
}
interface SparrowIQState {
    file: File | null;
    requirement: string;
    entities: SparrowIQEntity[];
}
interface SparrowIQEntity {
    id: number;
    name: string;
    type: string;
}

declare class SparrowIQ extends React.Component<SparrowIQProps, SparrowIQState> {
    constructor(props: SparrowIQProps);
    validateFileType: (file: File) => Readonly<SparrowIQProps> | {
        success: boolean;
        message: string;
    };
    updateFile: (file: File) => void;
    updateRequirement: (requirement: string) => void;
    updateEntities: (entities: SparrowIQEntity[]) => void;
    convertFileToBase64: (file: File) => Promise<string>;
    validateState: () => {
        success: boolean;
        message: string;
    };
    validateFile: (fileBase64: string) => Promise<any>;
    parseValidationResponse: (data: any) => Promise<{
        validity: any;
        reason: any;
        entities: {
            [k: string]: any;
        };
    }>;
    parseFile(file: File): Promise<{
        validity: any;
        reason: any;
        entities: {
            [k: string]: any;
        };
    }>;
}

declare const ValidateDoc: () => boolean;

export { SparrowIQ, ValidateDoc };
