import React, { ReactNode } from 'react'; type Listener = (value: T) => void; type Init = { /** * `true` to allows calling propagate callback function during render-time, otherwise, `false` (default). * * Propagation during render-time is normally discouraged. If listeners save the value into a state, multiple re-render could occur. * This option prevents render deadlock by disallowing propagation during render-time. */ allowPropagateDuringRender?: boolean | undefined; }; declare function createPropagation(init?: Init): { PropagationScope: React.MemoExoticComponent<({ children }: Readonly<{ children?: ReactNode | undefined; }>) => React.JSX.Element>; useListen: (listener: Listener) => void; usePropagate: () => (value: T) => void; }; export { createPropagation };