import { default as React } from 'react';
/**
* High-performance component wrappers and utilities
*/
export declare const createMemoComponent:
>(Component: React.ComponentType
, areEqual?: (prevProps: P, nextProps: P) => boolean, displayName?: string) => ((props: P) => import("react/jsx-runtime").JSX.Element) | React.MemoExoticComponent>;
export declare const createSelectiveMemoComponent: >(Component: React.ComponentType
, watchedProps: Array) => React.MemoExoticComponent>;
export interface ExpensiveComponentProps {
children: (result: unknown) => React.ReactNode;
compute: () => unknown;
deps: unknown[];
fallback?: React.ReactNode;
}
export declare const ExpensiveComponent: React.FC;
export interface VirtualListItemProps {
item: T;
index: number;
style: React.CSSProperties;
renderItem: (item: T, index: number) => React.ReactNode;
}
export declare const VirtualListItem: (props: VirtualListItemProps) => React.JSX.Element;
export interface ConditionalRenderProps {
condition: boolean;
children: React.ReactNode;
fallback?: React.ReactNode;
}
export declare const ConditionalRender: React.FC;
export interface LazyComponentProps {
children: React.ReactNode;
threshold?: number;
rootMargin?: string;
fallback?: React.ReactNode;
}
export declare const LazyComponent: React.FC;
export interface PerformanceBoundaryProps {
children: React.ReactNode;
maxRenderTime?: number;
onSlowRender?: (renderTime: number) => void;
}
export declare const PerformanceBoundary: React.FC;
export interface BatchRenderProps {
children: React.ReactNode[];
batchSize?: number;
delay?: number;
}
export declare const BatchRender: React.FC;
declare const _default: {
createMemoComponent: >(Component: React.ComponentType
, areEqual?: (prevProps: P, nextProps: P) => boolean, displayName?: string) => ((props: P) => import("react/jsx-runtime").JSX.Element) | React.MemoExoticComponent>;
createSelectiveMemoComponent: >(Component: React.ComponentType
, watchedProps: Array) => React.MemoExoticComponent>;
ExpensiveComponent: React.FC;
VirtualListItem: (props: VirtualListItemProps) => React.JSX.Element;
ConditionalRender: React.FC;
LazyComponent: React.FC;
PerformanceBoundary: React.FC;
BatchRender: React.FC;
};
export default _default;
//# sourceMappingURL=MemoizedComponent.d.ts.map