import * as React from 'react';
import { JSONSchema6 } from 'json-schema';
import { FormValidation, IdSchema, UiSchema } from 'react-jsonschema-form';
interface Properties {
    content: React.ReactElement;
    name: string;
    disabled: boolean;
    readonly: boolean;
}
interface ObjectFieldProps {
    schema: JSONSchema6;
    uiSchema: UiSchema;
    formData: any;
    formContext: any;
    errorSchema: FormValidation;
    idSchema: IdSchema;
    title: string;
    description: string;
    properties: Properties[];
    TitleField: React.StatelessComponent<{
        id: string;
        title: string;
        required: boolean;
    }>;
    DescriptionField: React.StatelessComponent<{
        id: string;
        description: string | React.ReactElement;
    }>;
    name: string;
    idPrefix: string;
    registry: any;
    required: boolean;
    disabled: boolean;
    readonly: boolean;
    onAddClick: (schema: JSONSchema6) => void;
    onChange: (data: any, errorSchema?: FormValidation) => void;
    onBlur: () => void;
    onFocus: () => void;
}
declare class ObjectField extends React.Component<ObjectFieldProps> {
    static defaultProps: {
        uiSchema: {};
        formData: {};
        errorSchema: {};
        idSchema: {};
        required: boolean;
        disabled: boolean;
        readonly: boolean;
    };
    isRequired(name: string): boolean;
    onPropertyChange: (name: string, addedByAdditionalProperties?: boolean) => (value: string, errorSchema: FormValidation) => void;
    onDropPropertyClick: (key: string) => (event: React.MouseEvent<Element, MouseEvent>) => void;
    getAvailableKey: (preferredKey: string, formData: any) => string;
    onKeyChange: (oldValue: string) => (value: string, errorSchema: FormValidation) => void;
    getDefaultValue(type: string): {} | null;
    handleAddClick: (schema: JSONSchema6) => () => void;
    render(): JSX.Element;
}
export default ObjectField;
