/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponentDelegate, IBaseComponentDelegate, IBaseComponentDelegateOptions, IBaseComponentDelegateConfig } from './base-component-delegate';
export declare type FormFieldComponentDelegateProps<T> = Partial<T>;
export interface IFormFieldComponentDelegateOptions extends IBaseComponentDelegateOptions {
}
export interface IFormFieldComponentDelegate<T extends HTMLElement> extends IBaseComponentDelegate<T> {
    value: unknown;
    disabled: boolean;
    onChange(cb: (value: unknown) => void): void;
    onFocus(cb: (evt: Event) => void): void;
    onBlur(cb: (evt: Event) => void): void;
}
export declare abstract class FormFieldComponentDelegate<T extends HTMLElement, K extends IFormFieldComponentDelegateOptions> extends BaseComponentDelegate<T, K> implements IFormFieldComponentDelegate<T> {
    abstract value: unknown;
    abstract disabled: boolean;
    constructor(config?: IBaseComponentDelegateConfig<T, K>);
    abstract onChange(listener: (value: unknown) => void): void;
    abstract onFocus(cb: (evt: Event) => void): void;
    abstract onBlur(cb: (evt: Event) => void): void;
}
