import { BaseDiffOptions, DiffLineAnnotation, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, RenderHeaderMetadataCallback, ThemeTypes } from "../types.js"; import { LineSelectionOptions, SelectedLineRange } from "../managers/LineSelectionManager.js"; import { GetHoveredLineResult, MouseEventManagerBaseOptions } from "../managers/MouseEventManager.js"; import { WorkerPoolManager } from "../worker/WorkerPoolManager.js"; import "../worker/index.js"; //#region src/components/FileDiff.d.ts interface FileDiffRenderProps { fileDiff?: FileDiffMetadata; oldFile?: FileContents; newFile?: FileContents; forceRender?: boolean; fileContainer?: HTMLElement; containerWrapper?: HTMLElement; lineAnnotations?: DiffLineAnnotation[]; } interface FileDiffHydrationProps extends Omit, "fileContainer"> { fileContainer: HTMLElement; prerenderedHTML?: string; } interface FileDiffOptions extends Omit, MouseEventManagerBaseOptions<"diff">, LineSelectionOptions { hunkSeparators?: Exclude | ((hunk: HunkData, instance: FileDiff) => HTMLElement | DocumentFragment); disableFileHeader?: boolean; renderHeaderMetadata?: RenderHeaderMetadataCallback; renderAnnotation?(annotation: DiffLineAnnotation): HTMLElement | undefined; renderHoverUtility?(getHoveredRow: () => GetHoveredLineResult<"diff"> | undefined): HTMLElement | null; } declare class FileDiff { options: FileDiffOptions; private workerManager?; private isContainerManaged; static LoadedCustomComponent: boolean; readonly __id: number; private fileContainer; private spriteSVG; private pre; private unsafeCSSStyle; private hoverContent; private headerElement; private headerMetadata; private customHunkElements; private errorWrapper; private hunksRenderer; private resizeManager; private scrollSyncManager; private mouseEventManager; private lineSelectionManager; private virtualizationManagerDeletions; private virtualizationManagerAdditions; private annotationElements; private lineAnnotations; private oldFile; private newFile; private fileDiff; constructor(options?: FileDiffOptions, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean); private handleHighlightRender; setOptions(options: FileDiffOptions | undefined): void; private mergeOptions; setThemeType(themeType: ThemeTypes): void; getHoveredLine: () => GetHoveredLineResult<"diff"> | undefined; setLineAnnotations(lineAnnotations: DiffLineAnnotation[]): void; setSelectedLines(range: SelectedLineRange | null): void; cleanUp(): void; hydrate(props: FileDiffHydrationProps): void; rerender(): void; handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections) => void; expandHunk(hunkIndex: number, direction: ExpansionDirections): void; render({ oldFile, newFile, fileDiff, forceRender, lineAnnotations, fileContainer, containerWrapper }: FileDiffRenderProps): void; private renderSeparators; private renderAnnotations; private renderHoverUtility; private getOrCreateFileContainer; getFileContainer(): HTMLElement | undefined; private getOrCreatePreNode; private applyHeaderToDOM; private injectUnsafeCSS; private applyHunksToDOM; private applyPreNodeAttributes; private applyErrorToDOM; private cleanupErrorWrapper; } //#endregion export { FileDiff, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderProps }; //# sourceMappingURL=FileDiff.d.ts.map