import { Bucket, World } from "miniplex";
import React, { ForwardedRef, PropsWithRef, ReactElement, ReactNode } from "react";
export type EntityChildren<E> = ReactNode | ((entity: E) => ReactNode);
type CommonProps<E> = {
    children?: EntityChildren<E>;
};
export declare const createReactAPI: <E extends {}>(world: World<E>) => {
    world: World<E>;
    Component: <P extends keyof E>(props: {
        name: P;
        data?: E[P] | undefined;
        children?: ReactNode;
    }) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
    Entity: <D extends E>(props: CommonProps<D> & {
        entity?: D | undefined;
    } & {
        ref?: React.ForwardedRef<D> | undefined;
    }) => ReactElement;
    Entities: <D_1 extends E>({ in: source, ...props }: CommonProps<D_1> & {
        in: Bucket<D_1> | D_1[];
    }) => JSX.Element;
    useCurrentEntity: () => E;
};
export {};
