import Handsontable from 'handsontable/base'; import Vue, { VNode } from 'vue'; import { ThisTypedComponentOptionsWithRecordProps } from 'vue/types/options'; export interface HotTableData { __internalEdit: boolean; __hotInstance: Handsontable | null; miscCache?: { currentSourceColumns?: number; }; hotInstance?: Handsontable | null; columnSettings: HotTableProps[]; rendererCache: any; editorCache: Map; } export interface HotTableMethods { hotInit: () => void; getColumnSettings: () => HotTableProps[] | void; getGlobalRendererVNode: () => VNode | void; getGlobalEditorVNode: () => VNode | void; getRendererWrapper: (vNode: VNode, containerComponent: Vue) => (...args: any[]) => HTMLElement; getEditorClass: (vNode: VNode, containerComponent: Vue) => typeof Handsontable.editors.BaseEditor; matchHotMappersSize: () => void; } export interface HotTableProps extends Handsontable.GridSettings { id?: string; settings?: Handsontable.GridSettings; wrapperRendererCacheSize?: number; } export interface HotTableComponent extends ThisTypedComponentOptionsWithRecordProps { version: string; } export interface HotColumnMethods { createColumnSettings: () => void; } export interface EditorComponent extends Vue { focus(): void; open(event?: Event): void; close(): void; getValue(): any; setValue(newValue?: any): void; [additional: string]: any; } export declare type VueProps = { [P in keyof T]: any; }; declare type ClassMethodKey = ({ [P in keyof T]: T[P] extends Function ? P : never; })[keyof T]; declare type NonConstructorClassMethodKey = Exclude, 'constructor'>; declare type NotOriginalValueProp = Exclude, 'originalValue'>; declare type ClassFieldKey = ({ [P in keyof T]: T[P] extends Function ? never : P; })[keyof T]; declare type ClassMethods = Pick>; declare type ClassFields = Pick>; export interface BaseVueEditorMethods extends ClassMethods { } export interface BaseVueEditorFields extends ClassFields { } export {};