import { Style } from '../system/platform/Style';
import { Dict } from '../types/Dict';
import { Element } from './element';
import HTMLElement_ from './html';
export type InputElement = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLFieldSetElement | HTMLDivElement;
export declare function makeFieldInputEventHandler<E extends InputElement>(component: Element, keyName?: string, processValue?: (element: E, value: string) => any): (event: InputEvent) => void;
export declare class Field<E extends InputElement = any, P extends Dict<any> = Dict<any>> extends HTMLElement_<E, P> {
    constructor($props: any, $system: any, $element: E, opt: {
        valueKey: string;
        defaultStyle?: Style;
        defaultValue?: any;
        processValue?: ($element: E, value: string) => any;
        parseValue?: (value: string) => any;
        propHandlers?: Dict<(value: any) => void>;
    });
}
