/**
 * Official Type definitions for Jspreadsheet React
 * https://jspreadsheet.com/v10/docs/react
 * Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
 */

import jspreadsheet from "jspreadsheet";

interface Spreadsheet {
    ref?: MutableRefObject<undefined>;
    (): any
    [key: string]: any
}

interface Worksheet {
    (): any
    [key: string]: any
}

interface Picker {
    (): any
    [key: string]: any
}

type SpreadsheetProps = IntrinsicAttributes & jspreadsheet.Spreadsheet & Spreadsheet;
type WorksheetsProps = IntrinsicAttributes & jspreadsheet.Worksheet & Worksheet;
type PickerProps = IntrinsicAttributes & jspreadsheet.PickerOptions & Picker;

declare function Spreadsheet<Spreadsheet>(props: SpreadsheetProps): any;
declare function Worksheet<Worksheet>(props: WorksheetsProps): any;
declare function Picker<Picker>(props: PickerProps): any;

export { Spreadsheet, Worksheet, Picker, jspreadsheet };
