import { EventEmitter } from '@stencil/core'; export declare class Form { validators: FormValidator[]; formComponent: any; private _formItems; private _watchers; private _value; private _disabled; private _errors; constructor(formItems: FormItem[], validators?: FormValidator[]); initValue(value?: FormValue): void; getValue(): FormValue; setValue(value: FormValue): void; _setValue(value: FormValue): void; watchValue(cb: FormValueWatcher): void; getFormItems(): FormItem[]; disable(): void; enable(): void; isDisabled(): boolean; _setErrors(errors: FormErrors): void; setTexts(texts: Record): void; } export declare interface FormControl { disabled: boolean; value: any; name: string; valueChange: EventEmitter; focusChange?: EventEmitter; } export declare type FormErrors = Record; export declare class FormItem { name: string; label: string; validators: FormItemValidator[]; size: FormItemSize; disabled: boolean; tag: string; props: any; formItemComponent: any; formControlComponent: any; form: Form; private _value; private _errors; private _isValid; private _valueWatchers; constructor(props: FormItemProps); disable(): void; enable(): void; setValue(value: any): void; _setValue(value: any): void; saveValueAndRunWatchers(value: any): void; getValue(): any; watchValue(cb: FormItemValueWatcher): void; getErrors(): FormItemErrors; _setErrors(errors: FormItemErrors): void; setErrors(errors: FormItemErrors): void; setValidators(validators: FormItemValidator[]): void; isValid(): boolean; setTexts({ label }: FormItemTexts): void; } export declare type FormItemErrors = Record; export declare interface FormItemProps { name: string; label: string; disabled?: boolean; validators?: FormItemValidator[]; size: FormItemSize; } export declare interface FormItemSize { xs: number; sm: number; md: number; lg: number; xl: number; } export declare type FormItemTexts = { label: string; } & Record; export declare interface FormItemValidator { name: string; fn: (value: any) => string; } export declare type FormItemValueWatcher = (value: any) => void; export declare interface FormValidator { name: string; fn: (value: any) => string; } export declare type FormValue = Record; export declare type FormValueWatcher = (value: any) => void; export { }