import { CellProperties } from '../settings'; import { BaseEditor } from './baseEditor/baseEditor'; import { Context } from '../shortcuts/context'; type Shortcut = Parameters[0]; type ExtendedEditor = BaseEditor & { render: (editor: ExtendedEditor) => void; value?: T extends { value: any; } ? T['value'] : any; config?: T extends { config: any; } ? T['config'] : any; container: HTMLDivElement; } & T; export declare const editorFactory: >({ init, afterOpen, afterInit, afterClose, beforeOpen, getValue, setValue, onFocus, shortcuts, value, render, config, shortcutsGroup, ...args }:{ value?: TProperties extends { value: any; } ? TProperties['value'] : any; config?: TProperties extends { config: any; } ? TProperties['config'] : any; render?: (editor: ExtendedEditor) => void; init: (editor: ExtendedEditor) => void; afterOpen?: (editor: ExtendedEditor, event?: Event) => void; afterClose?: (editor: ExtendedEditor) => void; afterInit?: (editor: ExtendedEditor) => void; beforeOpen?: (editor: ExtendedEditor, { row, col, prop, td, originalValue, cellProperties, }: { row: number; col: number; prop: string | number; td: HTMLTableCellElement; originalValue: any; cellProperties: CellProperties; }) => void; getValue?: (editor: ExtendedEditor) => any; setValue?: (editor: ExtendedEditor, value: any) => void; onFocus?: (editor: ExtendedEditor) => void; shortcutsGroup?: string; shortcuts?: (Omit & { callback: (editor: ExtendedEditor, event: Event) => boolean | void; group?: string; })[]; position?: 'container' | 'portal'; } & TMethods & Record) => ExtendedEditor;