import type { SxProps } from '@mui/material';
import { FC } from 'react';
type BaseJsonProperty = {
    name: string;
    required?: boolean;
    nullable?: boolean;
    description?: string;
};
export type SimpleJsonProperty = BaseJsonProperty & {
    type: 'string' | 'number' | 'float' | 'boolean' | 'integer';
    format?: string;
    pattern?: string;
    $enum?: readonly (string | number)[];
};
export type ArrayJsonProperty = BaseJsonProperty & {
    type: 'array';
    $ref?: string;
    jsons: readonly AnyJsonProperty[];
};
export type ObjectJsonProperty = BaseJsonProperty & {
    type: 'object';
    $ref?: string;
    jsons: readonly AnyJsonProperty[];
};
export type AllOfProperty = BaseJsonProperty & {
    type: 'allOf';
    jsons: readonly AnyJsonProperty[];
};
export type OneOfProperty = BaseJsonProperty & {
    type: 'oneOf';
    defaultName?: string;
    jsons: readonly AnyJsonProperty[];
};
export type AnyJsonProperty = SimpleJsonProperty | ArrayJsonProperty | ObjectJsonProperty | AllOfProperty | OneOfProperty;
type JsonPropertyProps = {
    level?: number;
    hasSiblings?: boolean;
    json: AnyJsonProperty;
    sx?: SxProps;
};
export declare const expandAllOf: (property: {
    jsons: readonly AnyJsonProperty[];
}, level: number) => JsonPropertyProps[];
declare const JsonProperty: FC<JsonPropertyProps>;
export default JsonProperty;
