{"version":3,"file":"types.d.ts","names":["CreatePatchOptionsNonabortable","ElementContent","BundledLanguage","BundledTheme","CodeToHastOptions","DecorationItem","HighlighterGeneric","LanguageRegistration","ShikiTransformer","ThemedToken","ThemeRegistrationResolved","CodeViewScrollBehavior","FileContents","SupportedLanguages","HighlighterTypes","DiffsThemeNames","ThemesType","Record","DiffsHighlighter","ChangeTypes","ParsedPatch","FileDiffMetadata","ContextContent","ChangeContent","Hunk","MergeConflictMarkerRowType","MergeConflictMarkerRow","HunkLineType","ThemeTypes","PostRenderPhase","HunkSeparators","LineDiffTypes","DiffIndicators","BaseCodeOptions","BaseDiffOptions","BaseDiffOptionsWithDefaults","Omit","Required","CustomPreProperties","PrePropertiesConfig","Pick","FileHeaderRenderMode","RenderHeaderMetadataCallback","Element","RenderHeaderPrefixCallback","RenderFileMetadata","ExtensionFormatMap","AnnotationSide","SelectionSide","SelectedLineRange","OptionalMetadata","T","LineAnnotation","DiffLineAnnotation","CodeViewFileItem","CodeViewDiffItem","CodeViewItem","CodeViewPositionScrollTarget","CodeViewLineScrollTarget","CodeViewRangeScrollTarget","NumericScrollLineAnchor","CodeViewItemScrollTarget","CodeViewScrollTarget","MergeConflictResolution","MergeConflictRegion","MergeConflictActionPayload","GapSpan","LineSpans","AnnotationSpan","LineTypes","LineInfo","SharedRenderState","LineEventBaseProps","HTMLElement","DiffLineEventBaseProps","TokenEventBase","DiffTokenEventBaseProps","ObservedAnnotationNodes","ObservedGridNodes","CodeColumnType","HunkData","AnnotationLineMap","LAnnotation","ExpansionDirections","ThemedFileResult","RenderDiffFilesResult","ThemedDiffResult","HunkExpansionRegion","ForceDiffPlainTextOptions","Map","ForceFilePlainTextOptions","RenderFileOptions","RenderDiffOptions","RenderFileResult","RenderDiffResult","RenderedFileASTCache","RenderRange","RenderedDiffASTCache","RenderWindow","VirtualWindowSpecs","VirtualFileMetrics","PendingCodeViewLayoutReset","CodeViewLayout","SmoothScrollSettings","SelectionPoint","DiffAcceptRejectHunkType","ConflictResolverTypes","DiffAcceptRejectHunkConfig","ProcessFileConflictData","AppliedThemeStyleCache","StickySpecs"],"sources":["../src/types.d.ts"],"sourcesContent":["import type { CreatePatchOptionsNonabortable } from 'diff';\nimport type { ElementContent } from 'hast';\nimport type { BundledLanguage, BundledTheme, CodeToHastOptions, DecorationItem, HighlighterGeneric, LanguageRegistration, ShikiTransformer, ThemedToken, ThemeRegistrationResolved } from 'shiki';\nexport type { CreatePatchOptionsNonabortable };\nexport type CodeViewScrollBehavior = 'instant' | 'smooth' | 'smooth-auto';\n/**\n * Represents a file's contents for generating diffs via `parseDiffFromFile` or\n * for when rendering a file directly using the File components\n */\nexport interface FileContents {\n    /** Filename used for display in headers and for inferring the language for\n     * syntax highlighting. */\n    name: string;\n    /** The raw text contents of the file. */\n    contents: string;\n    /** Explicitly set the syntax highlighting language instead of inferring from\n     * filename. Generally you should not be setting this. */\n    lang?: SupportedLanguages;\n    /** Optional header passed to the jsdiff library's `createTwoFilesPatch`. */\n    header?: string;\n    /** This unique key is only used for Worker Pools to avoid subsequent requests\n     * if we've already highlighted the file.  Please note that if you modify the\n     * `contents` or `name`, you must update the `cacheKey`. */\n    cacheKey?: string;\n}\nexport type HighlighterTypes = 'shiki-js' | 'shiki-wasm';\nexport type { BundledLanguage, CodeToHastOptions, DecorationItem, LanguageRegistration, ShikiTransformer, ThemeRegistrationResolved, ThemedToken, };\nexport type DiffsThemeNames = BundledTheme | 'pierre-dark' | 'pierre-dark-soft' | 'pierre-light' | 'pierre-light-soft' | (string & {});\nexport type ThemesType = Record<'dark' | 'light', DiffsThemeNames>;\n/**\n * A Shiki highlighter instance configured with the library's supported\n * languages and themes. Used internally to generate syntax-highlighted AST\n * from file contents. By default diffs will ensure that only 1 highlighter is\n * instantiated per thread and shared for all syntax highlighting.  This\n * applies to the main thread and worker threads.\n */\nexport type DiffsHighlighter = HighlighterGeneric<SupportedLanguages, DiffsThemeNames>;\n/**\n * Describes the type of change for a file in a diff.\n * - `change`: File content was modified, name unchanged.\n * - `rename-pure`: File was renamed/moved without content changes (100% similarity).\n * - `rename-changed`: File was renamed/moved and content was also modified.\n * - `new`: A new file was added.\n * - `deleted`: An existing file was removed.\n */\nexport type ChangeTypes = 'change' | 'rename-pure' | 'rename-changed' | 'new' | 'deleted';\n/**\n * Represents a parsed patch file, typically corresponding to a single commit.\n * Returned by `parsePatchFiles` when parsing raw patch/diff strings.\n */\nexport interface ParsedPatch {\n    /** Optional raw introductory text before the file diffs that may have been\n     * included in the patch (e.g., commit message, author, date). */\n    patchMetadata?: string;\n    /** Array of file changes contained in the patch. */\n    files: FileDiffMetadata[];\n}\n/**\n * Represents a block of unchanged context lines within a hunk.  Basically a\n * batch of lines in a hunk that are prefixed with a space ` `.  Consecutive\n * lines prefixed with a ` ` are grouped together into a single ContextContent.\n */\nexport interface ContextContent {\n    type: 'context';\n    /** Number of unchanged lines in this context block. */\n    lines: number;\n    /**\n     * Zero-based index into `FileDiffMetadata.additionLines` where this context\n     * block starts.\n     */\n    additionLineIndex: number;\n    /**\n     * Zero-based index into `FileDiffMetadata.deletionLines` where this context\n     * block starts.\n     */\n    deletionLineIndex: number;\n}\n/**\n * Represents a block of changes (additions and/or deletions) within a hunk.\n * Consecutive `+` and `-` lines are grouped together into a single\n * ChangeContent.\n */\nexport interface ChangeContent {\n    type: 'change';\n    /** Number of lines prefixed with `-` in this change block. */\n    deletions: number;\n    /**\n     * Zero-based index into `FileDiffMetadata.deletionLines` where the deleted\n     * lines start.\n     */\n    deletionLineIndex: number;\n    /** Number of lines prefixed with `+` in this change block. */\n    additions: number;\n    /**\n     * Zero-based index into `FileDiffMetadata.additionLines` where the added\n     * lines start.\n     */\n    additionLineIndex: number;\n}\n/**\n * Represents a single hunk from a diff, corresponding to\n * one `@@ ... @@` block.\n */\nexport interface Hunk {\n    /**\n     * Number of unchanged lines between the previous hunk (or file start) and\n     * this hunk.\n     */\n    collapsedBefore: number;\n    /**\n     * Starting line number in the new file version, parsed from the `+X`\n     * in the hunk header.\n     */\n    additionStart: number;\n    /**\n     * Total line count in the new file version for this hunk, parsed from\n     * `+X,count` in the hunk header.  If this hunk was viewed in `diffStyle:\n     * split` this would correspond to the number of lines in the right\n     * `additions` column.  It includes both `context` lines and lines\n     * prefixed with `+`.\n     */\n    additionCount: number;\n    /** This corresponds to the number of lines prefixed with `+` in this hunk. */\n    additionLines: number;\n    /**\n     * Zero-based index into `FileDiffMetadata.additionLines` where this hunk's\n     * content starts.\n     */\n    additionLineIndex: number;\n    /**\n     * Starting line number in the old file version, parsed from the `-X`\n     * in the hunk header.\n     */\n    deletionStart: number;\n    /**\n     * Total line count in the old file version for this hunk, parsed from\n     * `-X,count` in the hunk header.  If this hunk was viewed in `diffStyle:\n     * split` this would correspond to the number of lines in the left\n     * `deletions` column.  It includes both `context` lines and lines\n     * prefixed with `-`.\n     */\n    deletionCount: number;\n    /** This corresponds to the number of lines prefixed with `-` in this hunk. */\n    deletionLines: number;\n    /**\n     * Zero-based index into `FileDiffMetadata.deletionLines` where this hunk's\n     * content starts.\n     */\n    deletionLineIndex: number;\n    /**\n     * Array of content segments within this hunk, each representing either\n     * a context line group or a change group.\n     */\n    hunkContent: (ContextContent | ChangeContent)[];\n    /**\n     * Function/method name that appears after the `@@` markers if it existed in\n     * the diff.\n     */\n    hunkContext?: string;\n    /** Raw hunk header string (e.g., `@@ -1,5 +1,7 @@`). */\n    hunkSpecs?: string;\n    /**\n     * Starting line index for this hunk when rendered in split (side-by-side)\n     * view.\n     */\n    splitLineStart: number;\n    /** Total rendered line count for this hunk in split view. */\n    splitLineCount: number;\n    /** Starting line index for this hunk when rendered in unified view. */\n    unifiedLineStart: number;\n    /** Total rendered line count for this hunk in unified view. */\n    unifiedLineCount: number;\n    /**\n     * True if the old file version has no trailing newline at end of file.  This\n     * is parsed from the patch file directly at the end of the hunk.  If the\n     * final hunkContent is a `context` group, then both values will be true or\n     * false together.  If it's from a `change` content group, then it may differ\n     * depending on the patch.\n     */\n    noEOFCRDeletions: boolean;\n    /**\n     * True if the new file version has no trailing newline at end of file.  This\n     * is parsed from the patch file directly at the end of the hunk.  If the\n     * final hunkContent is a `context` group, then both values will be true or\n     * false together.  If it's from a `change` content group, then it may differ\n     * depending on the patch.\n     */\n    noEOFCRAdditions: boolean;\n}\n/**\n * Metadata and content for a single file's diff.  Think of this as a JSON\n * compatible representation of a diff for a single file.\n */\nexport interface FileDiffMetadata {\n    /** The file's name and path. */\n    name: string;\n    /** Previous file path, present only if file was renamed or moved. */\n    prevName?: string;\n    /**\n     * Explicitly override the syntax highlighting language instead of inferring\n     * from filename.  This will never be set by default, since all internal diff\n     * APIs will attempt to detect the language automatically.  If you'd like to\n     * specify a language override, you can do so via the method `setLanguageOverride`\n     */\n    lang?: SupportedLanguages;\n    /**\n     * Object ID for the new file content parsed from the `index` line in a\n     * patch file.\n     */\n    newObjectId?: string;\n    /**\n     * Object ID for the previous file content parsed from the `index` line in a\n     * patch file.\n     */\n    prevObjectId?: string;\n    /**\n     * Git file mode parsed from the diff (e.g., `100644` for regular files) when\n     * present in the patch metadata.\n     */\n    mode?: string;\n    /** Previous git file mode, present if the mode changed. */\n    prevMode?: string;\n    /** The type of change for this file. */\n    type: ChangeTypes;\n    /** Array of diff hunks containing line-level change information.  Each hunk\n     * corresponds to a `@@ -X,X +X,X @@` group in a diff. */\n    hunks: Hunk[];\n    /** Pre-computed line size for this diff if rendered in `split` diffStyle. */\n    splitLineCount: number;\n    /** Pre-computed line size for this diff if rendered in `unified` diffStyle. */\n    unifiedLineCount: number;\n    /**\n     * Whether the diff was parsed from a patch file (true) or generated from\n     * full file contents (false).\n     *\n     * When true, `deletionLines`/`additionLines` contain only the lines present\n     * in the patch and hunk expansion is unavailable.\n     *\n     * When false, they contain the complete file contents.\n     */\n    isPartial: boolean;\n    /**\n     * Array of lines from previous version of the file. If `isPartial` is false,\n     * it means that `deletionLines` can be considered the entire contents of the\n     * old version of the file.  Otherwise `deletionLines` will just be an array\n     * of all the content processed from the `context` and `deletion` lines of\n     * the patch.\n     */\n    deletionLines: string[];\n    /**\n     * Array of lines from new version of the file. If `isPartial` is false, it\n     * means that `additionLines` can be considered the entire contents of the\n     * new version of the file.  Otherwise `additionLines` will just be an array\n     * of all the content processed from the `context` and `addition` lines of\n     * the patch.\n     */\n    additionLines: string[];\n    /**\n     * This unique key is only used for Worker Pools to avoid subsequent requests\n     * to highlight if we've already highlighted the diff.  Please note that if\n     * you modify the contents of the diff in any way, you will need to update\n     * the `cacheKey`.\n     */\n    cacheKey?: string;\n}\nexport type MergeConflictMarkerRowType = 'marker-start' | 'marker-base' | 'marker-separator' | 'marker-end';\nexport interface MergeConflictMarkerRow {\n    type: MergeConflictMarkerRowType;\n    hunkIndex: number;\n    /** Index into `hunk.hunkContent` for the structural block this row belongs to. */\n    contentIndex: number;\n    conflictIndex: number;\n    lineText: string;\n    /** Unified rendered-row index where this virtual row should be injected. */\n    lineIndex: number;\n}\nexport type SupportedLanguages = BundledLanguage | 'text' | 'ansi' | (string & {});\nexport type HunkLineType = 'context' | 'expanded' | 'addition' | 'deletion' | 'metadata';\nexport type ThemeTypes = 'system' | 'light' | 'dark';\nexport type PostRenderPhase = 'mount' | 'update' | 'unmount';\n/**\n * The `'custom'` variant is deprecated and will be removed in a future version.\n */\nexport type HunkSeparators = 'simple' | 'metadata' | 'line-info' | 'line-info-basic' | 'custom';\nexport type LineDiffTypes = 'word-alt' | 'word' | 'char' | 'none';\nexport type DiffIndicators = 'classic' | 'bars' | 'none';\nexport interface BaseCodeOptions {\n    theme?: DiffsThemeNames | ThemesType;\n    disableLineNumbers?: boolean;\n    overflow?: 'scroll' | 'wrap';\n    themeType?: ThemeTypes;\n    collapsed?: boolean;\n    disableFileHeader?: boolean;\n    disableVirtualizationBuffers?: boolean;\n    stickyHeader?: boolean;\n    preferredHighlighter?: HighlighterTypes;\n    useCSSClasses?: boolean;\n    useTokenTransformer?: boolean;\n    tokenizeMaxLineLength?: number;\n    tokenizeMaxLength?: number;\n    unsafeCSS?: string;\n}\nexport interface BaseDiffOptions extends BaseCodeOptions {\n    diffStyle?: 'unified' | 'split';\n    diffIndicators?: DiffIndicators;\n    disableBackground?: boolean;\n    hunkSeparators?: HunkSeparators;\n    expandUnchanged?: boolean;\n    collapsedContextThreshold?: number;\n    lineDiffType?: LineDiffTypes;\n    maxLineDiffLength?: number;\n    expansionLineCount?: number;\n    /**\n     * Options forwarded to the underlying diff algorithm when computing diffs\n     * from file contents (oldFile/newFile). Has no effect on pre-parsed patches.\n     */\n    parseDiffOptions?: CreatePatchOptionsNonabortable;\n}\nexport type BaseDiffOptionsWithDefaults = Required<Omit<BaseDiffOptions, 'unsafeCSS' | 'preferredHighlighter' | 'parseDiffOptions'>>;\nexport type CustomPreProperties = Record<string, string | number | undefined>;\nexport interface PrePropertiesConfig extends Required<Pick<BaseDiffOptions, 'diffIndicators' | 'disableBackground' | 'disableLineNumbers' | 'overflow'>> {\n    type: 'diff' | 'file';\n    split: boolean;\n    totalLines: number;\n    customProperties?: CustomPreProperties;\n}\nexport type FileHeaderRenderMode = 'default' | 'custom';\nexport type RenderHeaderMetadataCallback = (fileDiff: FileDiffMetadata) => Element | string | number | null | undefined;\nexport type RenderHeaderPrefixCallback = (fileDiff: FileDiffMetadata) => Element | string | number | null | undefined;\nexport type RenderFileMetadata = (file: FileContents) => Element | string | number | null | undefined;\nexport type ExtensionFormatMap = Record<string, SupportedLanguages | undefined>;\nexport type AnnotationSide = 'deletions' | 'additions';\nexport type SelectionSide = 'deletions' | 'additions';\nexport interface SelectedLineRange {\n    start: number;\n    side?: SelectionSide;\n    end: number;\n    endSide?: SelectionSide;\n}\ntype OptionalMetadata<T> = T extends undefined ? {\n    metadata?: undefined;\n} : {\n    metadata: T;\n};\nexport type LineAnnotation<T = undefined> = {\n    lineNumber: number;\n} & OptionalMetadata<T>;\nexport type DiffLineAnnotation<T = undefined> = {\n    side: AnnotationSide;\n    lineNumber: number;\n} & OptionalMetadata<T>;\nexport type CodeViewFileItem<T = undefined> = {\n    id: string;\n    type: 'file';\n    file: FileContents;\n    annotations?: LineAnnotation<T>[];\n    version?: number;\n    collapsed?: boolean;\n};\nexport type CodeViewDiffItem<T = undefined> = {\n    id: string;\n    type: 'diff';\n    fileDiff: FileDiffMetadata;\n    annotations?: DiffLineAnnotation<T>[];\n    version?: number;\n    collapsed?: boolean;\n};\nexport type CodeViewItem<T = undefined> = CodeViewFileItem<T> | CodeViewDiffItem<T>;\nexport interface CodeViewPositionScrollTarget {\n    type: 'position';\n    position: number;\n    behavior?: CodeViewScrollBehavior;\n}\nexport interface CodeViewLineScrollTarget {\n    type: 'line';\n    id: string;\n    lineNumber: number;\n    side?: SelectionSide;\n    align?: 'start' | 'center' | 'end' | 'nearest';\n    offset?: number;\n    behavior?: CodeViewScrollBehavior;\n}\nexport interface CodeViewRangeScrollTarget {\n    type: 'range';\n    id: string;\n    range: SelectedLineRange;\n    align?: 'start' | 'center' | 'end' | 'nearest';\n    offset?: number;\n    behavior?: CodeViewScrollBehavior;\n}\nexport interface NumericScrollLineAnchor {\n    lineNumber: number;\n    top: number;\n    side?: SelectionSide;\n}\nexport interface CodeViewItemScrollTarget {\n    type: 'item';\n    id: string;\n    align?: 'start' | 'center' | 'end' | 'nearest';\n    offset?: number;\n    behavior?: CodeViewScrollBehavior;\n}\nexport type CodeViewScrollTarget = CodeViewPositionScrollTarget | CodeViewLineScrollTarget | CodeViewRangeScrollTarget | CodeViewItemScrollTarget;\nexport type MergeConflictResolution = 'current' | 'incoming' | 'both';\nexport interface MergeConflictRegion {\n    conflictIndex: number;\n    startLineIndex: number;\n    startLineNumber: number;\n    separatorLineIndex: number;\n    separatorLineNumber: number;\n    endLineIndex: number;\n    endLineNumber: number;\n    baseMarkerLineIndex?: number;\n    baseMarkerLineNumber?: number;\n}\nexport interface MergeConflictActionPayload {\n    resolution: MergeConflictResolution;\n    conflict: MergeConflictRegion;\n}\nexport interface GapSpan {\n    type: 'gap';\n    rows: number;\n}\nexport type LineSpans = GapSpan | AnnotationSpan;\nexport type LineTypes = 'change-deletion' | 'change-addition' | 'context' | 'context-expanded';\nexport interface LineInfo {\n    type: LineTypes;\n    lineNumber: number;\n    altLineNumber?: number;\n    lineIndex: number | `${number},${number}`;\n}\nexport interface SharedRenderState {\n    lineInfo: (LineInfo | undefined)[] | ((shikiLineNumber: number) => LineInfo);\n}\nexport interface AnnotationSpan {\n    type: 'annotation';\n    hunkIndex: number;\n    lineIndex: number;\n    annotations: string[];\n}\nexport interface LineEventBaseProps {\n    type: 'line';\n    lineNumber: number;\n    lineElement: HTMLElement;\n    numberElement: HTMLElement;\n    numberColumn: boolean;\n}\nexport interface DiffLineEventBaseProps extends Omit<LineEventBaseProps, 'type'> {\n    type: 'diff-line';\n    annotationSide: AnnotationSide;\n    lineType: LineTypes;\n}\nexport interface TokenEventBase {\n    type: 'token';\n    lineNumber: number;\n    lineCharStart: number;\n    lineCharEnd: number;\n    tokenText: string;\n    tokenElement: HTMLElement;\n}\nexport interface DiffTokenEventBaseProps extends TokenEventBase {\n    side: AnnotationSide;\n}\nexport interface ObservedAnnotationNodes {\n    type: 'annotations';\n    column1: {\n        container: HTMLElement;\n        child: HTMLElement;\n        childHeight: number;\n    };\n    column2: {\n        container: HTMLElement;\n        child: HTMLElement;\n        childHeight: number;\n    };\n    currentHeight: number | 'auto';\n}\nexport interface ObservedGridNodes {\n    type: 'code';\n    codeElement: HTMLElement;\n    numberElement: HTMLElement | null;\n    codeWidth: number | 'auto';\n    numberWidth: number;\n}\nexport type CodeColumnType = 'unified' | 'additions' | 'deletions';\nexport interface HunkData {\n    slotName: string;\n    hunkIndex: number;\n    lines: number;\n    type: CodeColumnType;\n    expandable?: {\n        chunked: boolean;\n        up: boolean;\n        down: boolean;\n    };\n}\nexport type AnnotationLineMap<LAnnotation> = Record<number, DiffLineAnnotation<LAnnotation>[] | undefined>;\nexport type ExpansionDirections = 'up' | 'down' | 'both';\nexport interface ThemedFileResult {\n    code: ElementContent[];\n    themeStyles: string;\n    baseThemeType: 'light' | 'dark' | undefined;\n}\nexport interface RenderDiffFilesResult {\n    deletionLines: ElementContent[];\n    additionLines: ElementContent[];\n}\nexport interface ThemedDiffResult {\n    code: RenderDiffFilesResult;\n    themeStyles: string;\n    baseThemeType: 'light' | 'dark' | undefined;\n}\nexport interface HunkExpansionRegion {\n    fromStart: number;\n    fromEnd: number;\n}\nexport interface ForceDiffPlainTextOptions {\n    forcePlainText: boolean;\n    startingLine?: number;\n    totalLines?: number;\n    expandedHunks?: Map<number, HunkExpansionRegion> | true;\n    collapsedContextThreshold?: number;\n}\nexport interface ForceFilePlainTextOptions {\n    forcePlainText: boolean;\n    startingLine?: number;\n    totalLines?: number;\n    lines?: string[];\n}\nexport interface RenderFileOptions {\n    theme: DiffsThemeNames | Record<'dark' | 'light', DiffsThemeNames>;\n    useTokenTransformer: boolean;\n    tokenizeMaxLineLength: number;\n}\nexport interface RenderDiffOptions {\n    theme: DiffsThemeNames | Record<'dark' | 'light', DiffsThemeNames>;\n    useTokenTransformer: boolean;\n    tokenizeMaxLineLength: number;\n    lineDiffType: LineDiffTypes;\n    maxLineDiffLength: number;\n}\nexport interface RenderFileResult {\n    result: ThemedFileResult;\n    options: RenderFileOptions;\n}\nexport interface RenderDiffResult {\n    result: ThemedDiffResult;\n    options: RenderDiffOptions;\n}\nexport interface RenderedFileASTCache {\n    file: FileContents;\n    highlighted: boolean;\n    options: RenderFileOptions;\n    result: ThemedFileResult | undefined;\n    renderRange: RenderRange | undefined;\n}\nexport interface RenderedDiffASTCache {\n    diff: FileDiffMetadata;\n    highlighted: boolean;\n    options: RenderDiffOptions;\n    result: ThemedDiffResult | undefined;\n    renderRange: RenderRange | undefined;\n}\nexport interface RenderRange {\n    startingLine: number;\n    totalLines: number;\n    bufferBefore: number;\n    bufferAfter: number;\n}\nexport interface RenderWindow {\n    top: number;\n    bottom: number;\n}\nexport interface VirtualWindowSpecs {\n    /** Absolute top edge of the active virtual window in scroll-space pixels. */\n    top: number;\n    /** Absolute bottom edge of the active virtual window in scroll-space pixels. */\n    bottom: number;\n}\nexport interface VirtualFileMetrics {\n    /** Number of rendered lines per hunk chunk when virtualization batches line rendering. */\n    hunkLineCount: number;\n    /** Estimated single-line row height used before a line is measured. */\n    lineHeight: number;\n    /** Height reserved for the file or diff header region. */\n    diffHeaderHeight: number;\n    /** Height reserved for each collapsed-context separator row. Only set this\n     * if you customized the size of hunk separators via unsafeCSS */\n    hunkSeparatorHeight?: number;\n    /** Vertical spacing used around hunks and file-level padding. You should not\n     * change this from the default if you aren't applying custom CSS */\n    spacing: number;\n    /** Optional top padding applied after the file header, or before content\n     * when the header is disabled. Defaults to 0 with a header, otherwise\n     * defaults to spacing if header is disabled */\n    paddingTop?: number;\n    /** Optional bottom padding applied after file content, and only if there is\n     * code for the diff. Defaults to spacing if none provided */\n    paddingBottom?: number;\n}\nexport interface PendingCodeViewLayoutReset {\n    metrics?: VirtualFileMetrics;\n    resetFileLayoutCache: boolean;\n    resetDiffLayoutCache: boolean;\n    includeEstimatedDiffHeights: boolean;\n}\nexport interface CodeViewLayout {\n    /** Top padding applied to the CodeView sticky container offset. */\n    paddingTop: number;\n    /** Bottom padding added after the final rendered item in CodeView. */\n    paddingBottom: number;\n    /** Vertical gap between virtualized CodeView items. */\n    gap: number;\n}\nexport interface SmoothScrollSettings {\n    /**\n     * Natural frequency of the critically-damped spring, in rad/ms. 99% settle\n     * takes roughly `6.6 / omega`; 0.015 gives ~440ms. Raise for a snappier\n     * animation; lower for a longer glide.\n     */\n    omega: number;\n    /**\n     * Distance from destination (in CSS pixels) below which the spring is\n     * considered settled. Must also clear `velocityEpsilon` before the\n     * animation actually stops and snaps to destination.\n     */\n    positionEpsilon: number;\n    /**\n     * Velocity magnitude (in CSS pixels per millisecond) below which the\n     * spring is considered effectively stationary. Pairs with\n     * `positionEpsilon` to gate the settle transition.\n     */\n    velocityEpsilon: number;\n}\nexport interface SelectionPoint {\n    lineNumber: number;\n    side: SelectionSide | undefined;\n}\nexport type DiffAcceptRejectHunkType = 'accept' | 'reject' | 'both';\nexport type ConflictResolverTypes = 'current' | 'incoming' | 'both';\nexport interface DiffAcceptRejectHunkConfig {\n    type: DiffAcceptRejectHunkType;\n    changeIndex: number;\n}\n/**\n * Unresolved merge conflict indexes use three different coordinate spaces:\n * - source line indexes live on `conflict.*LineIndex`\n * - hunk-content indexes live on the fields below, with `startContentIndex`\n *   serving as both the conflict-range start and the start-marker anchor\n * - rendered row indexes live on unresolved `markerRows`\n */\nexport interface ProcessFileConflictData {\n    /** Index of the hunk that owns this unresolved conflict. */\n    hunkIndex: number;\n    /** First hunk-content entry that belongs to the conflict region. */\n    startContentIndex: number;\n    /** Last hunk-content entry that belongs to the conflict region. */\n    endContentIndex: number;\n    /** Hunk-content index for the current/ours change block. */\n    currentContentIndex?: number;\n    /** Hunk-content index for the optional base context block. */\n    baseContentIndex?: number;\n    /** Hunk-content index for the incoming/theirs change block. */\n    incomingContentIndex?: number;\n    /** Hunk-content index that anchors the end marker row. */\n    endMarkerContentIndex: number;\n}\nexport interface AppliedThemeStyleCache {\n    theme: DiffsThemeNames | ThemesType;\n    themeStyles: string;\n    themeType: ThemeTypes;\n    baseThemeType: 'light' | 'dark' | undefined;\n    scrollbarGutter: number | undefined;\n}\nexport interface StickySpecs {\n    topOffset: number;\n    height: number;\n}\n//# sourceMappingURL=types.d.ts.map"],"mappings":"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"}