import { ReactNode } from 'react';

type BagFunction<T> = (bag: T) => ReactNode;
type BagFunctionOrNode<T> = BagFunction<T> | ReactNode;
type PropsWithBagFunction<T, P = unknown> = P & {
    children?: BagFunction<T>;
};
type PropsWithBagFunctionOrChildren<T, P = unknown> = P & {
    children?: BagFunctionOrNode<T>;
};
declare const BagFunctionUtil: {
    resolve: <T>(children: BagFunctionOrNode<T>, bag: T) => ReactNode;
};

export { type BagFunction, type BagFunctionOrNode, BagFunctionUtil, type PropsWithBagFunction, type PropsWithBagFunctionOrChildren };
