import type { Ref, RenderFunction, SetupContext } from 'vue' import type { ChangeEventParams, Row, RowData, ScriptInputMode, ScriptInputProps } from '../base' import type { ComponentBaseOptions, ComponentSlotType, DefineComponentApp, DefineComponentInstance } from '../common' export declare const KScriptInput: DefineComponentApp export type KScriptInputInstance = DefineComponentInstance export interface KScriptInputConstructor extends ComponentBaseOptions, KScriptInputMethods { props: KScriptInputProps context: SetupContext getRefMaps(): KScriptInputPrivateRef getComputeMaps(): KScriptInputPrivateComputed renderVN: RenderFunction } export interface KScriptInputPrivateRef { refElem: Ref } export interface KScriptInputPrivateComputed { } export type KScriptInputProps = ScriptInputProps export type KScriptInputEmits = { updateModelValue: (value: string) => void change: (data: ChangeEventParams) => void input: (value: string) => void focus: (evt: FocusEvent) => void blur: (evt: FocusEvent) => void select: (data: RowData | Row) => void modeChange: (mode: ScriptInputMode) => void } export interface KScriptInputSlots { prepend: () => ComponentSlotType append: () => ComponentSlotType option: () => ComponentSlotType } export type KScriptInputMethods = { clear: () => void showPopper: () => void hidePopper: () => void toggleMode: () => void setStringMode: (isStringMode: boolean) => void getCurrentMode: () => ScriptInputMode setCurrentMode: (mode: ScriptInputMode) => void isStringMode: () => boolean focus: () => void blur: () => void }