/// <reference types="react" />
import { ControlProps, ControlState, JsonSchema7, UISchemaElement } from '@jsonforms/core';
import { Control } from '@jsonforms/react';
import { WithStyles } from '@material-ui/core/styles';
export interface MasterProps {
    schema: JsonSchema7;
    path: string;
    rootData: any;
    selection: any;
    handlers: {
        onAdd: any;
        onRemove?: any;
        onSelect: any;
        resetSelection: any;
    };
    uischema: UISchemaElement;
    filterPredicate: any;
    labelProvider: any;
    imageProvider: any;
}
export interface TreeMasterDetailState extends ControlState {
    selected: {
        schema: JsonSchema7;
        data: any;
        path: string;
    };
    dialog: {
        open: boolean;
        schema: JsonSchema7;
        path: string;
    };
}
export interface TreeProps extends ControlProps {
    resolvedSchema: any;
    rootData: any;
    resolvedRootData: any;
    addToRoot: any;
    uiSchemata?: any;
    filterPredicate: any;
    labelProvider: any;
    imageProvider: any;
}
export declare class TreeMasterDetail extends Control<TreeProps & WithStyles<'treeMasterDetailContent' | 'treeMasterDetail' | 'treeMasterDetailMaster' | 'treeMasterDetailDetail'>, TreeMasterDetailState> {
    componentWillMount(): void;
    setSelection: (schema: any, data: any, path: any) => () => void;
    openDialog: (schema: any, path: any) => () => void;
    closeDialog: () => void;
    render(): JSX.Element;
}
export declare const TreeWithDetailRenderer: any;
export default TreeWithDetailRenderer;
