import * as React from "react";
import { FieldProps } from "../types";
export declare function getPropsWithInnerUiSchema(props: FieldProps): FieldProps;
type Constructor<LFC> = new (...args: any[]) => LFC;
interface LajiFormComponentForVirtualSchemaField extends Omit<React.Component<FieldProps>, "render"> {
    getStateFromProps?(propsWithInnerUiSchema: FieldProps, origProps: FieldProps): any;
    render?(): React.ReactNode;
}
/**
 * Virtual SchemaFields are components which are just state transforming machines.
 */
export default function VirtualSchemaField<LFC extends Constructor<LajiFormComponentForVirtualSchemaField>>(ComposedComponent: LFC): {
    new (...args: any[]): {
        UNSAFE_componentWillReceiveProps: (props: any, nextContext: any) => void;
        getUiOptions(): any;
        getStateFromProps: (props: FieldProps) => any;
        render: () => React.ReactNode;
        state: Readonly<{}>;
        context: any;
        setState: <K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<FieldProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined) => void;
        forceUpdate: (callback?: (() => void) | undefined) => void;
        readonly props: Readonly<FieldProps> & Readonly<{
            children?: React.ReactNode;
        }>;
        refs: {
            [key: string]: React.ReactInstance;
        };
        componentDidMount?: (() => void) | undefined;
        shouldComponentUpdate?: ((nextProps: Readonly<FieldProps>, nextState: Readonly<{}>, nextContext: any) => boolean) | undefined;
        componentWillUnmount?: (() => void) | undefined;
        componentDidCatch?: ((error: Error, errorInfo: React.ErrorInfo) => void) | undefined;
        getSnapshotBeforeUpdate?: ((prevProps: Readonly<FieldProps>, prevState: Readonly<{}>) => any) | undefined;
        componentDidUpdate?: ((prevProps: Readonly<FieldProps>, prevState: Readonly<{}>, snapshot?: any) => void) | undefined;
        componentWillMount?: (() => void) | undefined;
        UNSAFE_componentWillMount?: (() => void) | undefined;
        componentWillReceiveProps?: ((nextProps: Readonly<FieldProps>, nextContext: any) => void) | undefined;
        componentWillUpdate?: ((nextProps: Readonly<FieldProps>, nextState: Readonly<{}>, nextContext: any) => void) | undefined;
        UNSAFE_componentWillUpdate?: ((nextProps: Readonly<FieldProps>, nextState: Readonly<{}>, nextContext: any) => void) | undefined;
    };
    displayName: string;
} & LFC;
export {};
