import React, { PureComponent } from 'react';
import { Dictionary } from '@brandingbrand/fsfoundation';
export declare enum FormLabelPosition {
    Above = 0,
    Floating = 1,
    Hidden = 2,
    Inline = 3
}
export interface FormProps {
    fieldsTypes: any;
    fieldsOptions?: any;
    fieldsStyleConfig?: any;
    labelPosition?: FormLabelPosition;
    style?: any;
    value?: any;
    onChange?: (value: any) => void;
    templates?: FormTemplates;
    activeColor?: string;
    errorColor?: string;
    inactiveColor?: string;
    validateOnBlur?: boolean;
}
export interface FormTemplates {
    checkbox?: (locals: any) => React.ReactNode;
    datepicker?: (locals: any) => React.ReactNode;
    list?: (locals: any) => React.ReactNode;
    select?: (locals: any) => React.ReactNode;
    struct?: (locals: any) => React.ReactNode;
    textbox?: (locals: any) => React.ReactNode;
}
declare type CalculateStylesType = (activeColor: string, errorColor: string, inactiveColor: string) => Dictionary;
declare type CalculateBlursType = (fieldsOptions: Dictionary) => void;
export declare class Form extends PureComponent<FormProps> {
    static defaultProps: Partial<FormProps>;
    calculateStyles: CalculateStylesType;
    calculateBlurs: CalculateBlursType;
    private form;
    constructor(props: FormProps);
    getValue: () => any;
    validate: () => any;
    validateField: (path: any) => any;
    getComponent: (...args: any[]) => any;
    render(): JSX.Element;
}
export {};
