import { Element } from "../types"; export interface GetElementInputValueParams { element: Element; } export interface GetElementInputValue { (element: GetElementInputValueParams): TValue | undefined; } export type ElementInputs = Record; export type ElementInputType = "text" | "number" | "boolean" | "date" | "lexical" | "link" | "svgIcon" | "color" | (string & {}); export interface ElementInputParams { name: string; type: ElementInputType; getDefaultValue: GetElementInputValue; translatable?: boolean; } export declare class ElementInput { private params; private constructor(); static create(params: ElementInputParams): ElementInput; getName(): string; getType(): ElementInputType; isTranslatable(): boolean; getDefaultValue(element: Element): TValue | undefined; } export type ElementInputValues = { [K in keyof T]: T[K] extends ElementInput ? P | undefined : never; };