import React, { FC, ComponentType, ReactElement } from 'react'; export declare type RenderOverride = (props: T, component: React.ComponentType) => ReactElement | null; /** * Реакт-хук для создания компонента с возможностью переопределения. * * @example * const ElementOriginal = ({ children }) =>
{children}
* * const MyComponent = ({ renderElement }) => { * const Element = useRenderOverride(ElementOriginal, renderElement) * return * } */ export declare function useRenderOverride(component: ComponentType, render?: RenderOverride): ComponentType; export declare type RenderOverrideProviderProps = { children: (component: ComponentType) => ReactElement; component: ComponentType; render?: RenderOverride; }; /** * Реакт-провайдер для создания компонента с возможностью переопределения. * * @example * const ElementOriginal = ({ children }) =>
{children}
* * const MyComponent = ({ renderElement }) => { * * {(Element) => } * * } */ export declare const RenderOverrideProvider: FC; export declare type MultiRenderOverrideProviderProps = { components: [ComponentType, RenderOverride | undefined][]; children: (...components: ComponentType[]) => ReactElement; }; /** * Реакт-провайдер для создания нескольких компонентов с возможностью переопределения. * * @example * const ElementOriginal1 = ({ children }) =>
{children}
* const ElementOriginal2 = ({ children }) =>
{children}
* * const MyComponent = ({ renderElement1, renderElement2 }) => { * * {(Element1, Element2) => ( * <> * * * * )} * * } */ export declare const MultiRenderOverrideProvider: FC;