import React from "react";
import FormContext from "../form-context";
import { IField, IMeta } from "../../constants/model-interfaces";
import { IError, IRenderField } from "../../constants/common-interface";
export default abstract class BaseFormControl extends React.Component {
    props: IRenderField;
    static contextType: React.Context<import("../../constants/MetaForm").default>;
    context: React.ContextType<typeof FormContext>;
    displayType: string | undefined;
    field: IField;
    isFormControl: boolean;
    uuid: string;
    section: string;
    validation: {
        required: boolean | undefined;
        pattern: string | undefined;
    };
    state: IState;
    constructor(props: IRenderField);
    setLoading(loading: boolean): void;
    initConfig(): void;
    componentDidUpdate(props: any): void;
    componentDidCatch(error: any, errorInfo: any): void;
    componentDidMount(): void;
    render(): JSX.Element;
    control(): JSX.Element;
    abstract month(): JSX.Element;
    abstract phone(): JSX.Element;
    abstract date(): JSX.Element;
    abstract search(): JSX.Element;
    abstract text(): JSX.Element;
    abstract label(): JSX.Element;
    abstract password(): JSX.Element;
    abstract email(): JSX.Element;
    abstract number(): JSX.Element;
    abstract radio(): JSX.Element;
    abstract checkbox(): JSX.Element;
    abstract select(): JSX.Element;
    abstract multiselect(): JSX.Element;
    abstract button(): JSX.Element;
    abstract hint(): JSX.Element;
    abstract file(): JSX.Element;
    radioButton(): JSX.Element;
    multitext(): JSX.Element;
    header(): JSX.Element;
    modalsearch(): JSX.Element;
    paragraph(): JSX.Element;
    customControl(): JSX.Element;
    templateControl(): JSX.Element;
    customTextControl(): JSX.Element;
    currency(): JSX.Element;
    handleChange(e: any, val?: any, ref?: any): void;
    handleOpen(e: any): void;
    handleDependencies(value: any): void;
    getWrapperClassName(): string;
    handleValidation(): void;
    validate(value: string | number | boolean | undefined): void;
    setError(hasError: boolean, errorMsg: string): void;
    getDisplayLabel(): string | undefined;
}
interface IState {
    error: IError;
    componentError: IError;
    form: IMeta;
    loading: boolean;
}
export {};
