export interface DebugSource { fileName: string; lineNumber: number; columnNumber?: number; } export interface ReactFiber { _debugStack?: unknown; _debugOwner?: ReactFiber | ReactServerOwner; type?: { name?: string; displayName?: string; } | string | ((...args: unknown[]) => unknown) | null; return?: ReactFiber | null; child?: ReactFiber | null; sibling?: ReactFiber | null; alternate?: ReactFiber | null; stateNode?: unknown; memoizedProps?: Record; pendingProps?: Record; } interface ReactServerOwner { name: string; debugStack?: unknown; owner?: ReactFiber | ReactServerOwner; props?: Record; } export declare function getFiberFromElement(element: HTMLElement): ReactFiber | null; export declare function getComponentName(fiber: ReactFiber | null | undefined): string | undefined; export declare function findDebugSource(fiber: ReactFiber): { source: DebugSource; componentName?: string; } | null; export declare function getSourceLocation(element: HTMLElement): { filePath: string; lineNumber: number; columnNumber: number | undefined; componentName: string | undefined; } | undefined; export declare function getRepetitionHostNodes(element: HTMLElement): HTMLElement[]; export declare function getFiberChain(element: HTMLElement): { sourceLocation: { filePath: string; lineNumber: number; columnNumber: number | undefined; componentName: string | undefined; }; tagName: string | undefined; componentName: string | undefined; props: Record | undefined; }[]; /** * JSX call sites from an element outward (its own, then each owner's), still compiled. Skips * `resolveCurrentFiber`'s tree scan: a call site is the same in both fiber generations, and this * runs for every element near the top of the page. */ export declare function getElementSourceChain(element: HTMLElement, maxEntries?: number): DebugSource[]; export {};