///
import { FormControl } from './FormControl';
export declare type FormFieldRawValueGet = undefined | {
value: string;
valueAsNumber?: number;
valueAsDate?: Date | null;
files?: FileList | null;
checked?: boolean;
};
export declare type FormFieldRawValueSet = undefined | null | string | boolean | number | Date | {
value: string;
} | {
valueAsNumber: number;
} | {
valueAsDate: Date | null;
} | {
files: FileList | null;
} | {
checked: boolean;
};
export declare type ValueConverter = {
get: (value: FormFieldRawValueGet) => T | undefined;
set: (value: T | undefined | null) => FormFieldRawValueSet;
};
export declare type FormFieldRegisterOptions = {
ref?: React.MutableRefObject;
required?: boolean;
defaultValue?: T;
rules?: ((value: FormFieldRawValueGet, element: FormFieldHTMLElement) => string | undefined)[];
inputFilter?: RegExp;
valueConverter?: ValueConverter;
};
declare type SetValueOptions = {
preventValidate?: boolean;
};
export declare const formFieldInfo: Record;
shouldValidateOnChange?: boolean;
}>;
export declare type FormFieldHTMLElement = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement;
export declare class FormFieldControl {
#private;
constructor(name: string, form: FormControl);
get props(): {
name: string;
form: string;
ref(el: FormFieldHTMLElement | null): void;
};
get type(): string | undefined;
get value(): T | undefined;
get defaultValue(): T | undefined;
get options(): FormFieldRegisterOptions;
set options(value: FormFieldRegisterOptions);
get isDirty(): boolean;
set isDirty(value: boolean);
get isTouched(): boolean;
set isTouched(value: boolean);
get error(): string | null;
set error(value: string | null);
startUpdate(): void;
endUpdate(): void;
setValue(value: T | undefined, options?: SetValueOptions): void;
setDefaultValue(value: T | undefined, options?: SetValueOptions): void;
subscribeToValueChanged(callback: (defer?: boolean) => void): () => void;
subscribeToStateChanged(callback: (defer?: boolean) => void): () => void;
validate(): boolean;
reset(defaultValue?: T): void;
focus(): void;
}
export {};