/// <reference types="react" />
import { JSONSchema6 } from 'json-schema';
import { IChangeEvent } from 'react-jsonschema-form';
import { ButtonProps } from '../components/Button';
import { BoxProps } from '../components/Grid';
export interface FormButtonProps extends ButtonProps {
    type?: 'submit' | 'reset' | 'button';
}
export declare type AnyObject = {
    [index: string]: any;
};
export interface FormWidgetProps {
    id: string;
    schema: JSONSchema6;
    value: any;
    required: boolean;
    disabled: boolean;
    autofocus: boolean;
    readonly: boolean;
    onChange: (value: any) => void;
    onBlur: (id: string, value: any) => void;
    onFocus: (id: string, value: any) => void;
    options: AnyObject;
    formContext: any;
    type?: string;
}
export interface RenditionUiSchema {
    'ui:warning'?: string;
}
export interface BaseFormProps extends BoxProps {
    submitButtonText?: string | JSX.Element;
    hideSubmitButton?: boolean;
    submitButtonProps?: ButtonProps;
    value?: number | string | boolean | AnyObject | any[] | null;
    onFormChange?: (result: IChangeEvent) => void;
    onFormSubmit?: (result: any) => void;
    uiSchema?: RenditionUiSchema;
}
export interface FormProps extends BaseFormProps {
    schema: JSONSchema6;
}
