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(component: Element, keyName?: string, processValue?: (value: string) => any): (event: InputEvent, emit: boolean) => 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;
        eventKey?: string;
        emit?: boolean;
        defaultStyle?: Style;
        defaultValue?: any;
        defaultAttr?: Dict<any>;
        processValue?: (value: any) => any;
        parseValue?: (value: string) => any;
        propHandlers?: Dict<(value: any) => void>;
        emitOnChange?: boolean;
    });
}
