| 1 | import { HLJSApi } from 'highlight.js'; |
| 2 | import { RevealPlugin } from 'reveal.js'; |
| 3 | export interface HighlightLine { |
| 4 | start?: number; |
| 5 | end?: number; |
| 6 | } |
| 7 | export interface HighlightLineNumbersOptions { |
| 8 | singleLine?: boolean; |
| 9 | startFrom?: number; |
| 10 | } |
| 11 | export interface HighlightJsApi extends HLJSApi { |
| 12 | initLineNumbersOnLoad(options?: HighlightLineNumbersOptions): void; |
| 13 | lineNumbersBlock(element: HTMLElement, options?: HighlightLineNumbersOptions): void; |
| 14 | lineNumbersValue(code: string, options?: HighlightLineNumbersOptions): string | undefined; |
| 15 | } |
| 16 | export interface HighlightScrollState { |
| 17 | currentBlock?: HTMLElement; |
| 18 | animationFrameID?: number; |
| 19 | } |
| 20 | export interface HighlightLineBounds { |
| 21 | top: number; |
| 22 | bottom: number; |
| 23 | } |
| 24 | export type HighlightLineStep = HighlightLine[]; |
| 25 | export interface HighlightPlugin extends RevealPlugin { |
| 26 | id: 'highlight'; |
| 27 | HIGHLIGHT_STEP_DELIMITER: '|'; |
| 28 | HIGHLIGHT_LINE_DELIMITER: ','; |
| 29 | HIGHLIGHT_LINE_RANGE_DELIMITER: '-'; |
| 30 | hljs: HighlightJsApi; |
| 31 | highlightBlock(block: HTMLElement): void; |
| 32 | scrollHighlightedLineIntoView(block: HTMLElement, scrollState: HighlightScrollState, skipAnimation?: boolean): void; |
| 33 | easeInOutQuart(t: number): number; |
| 34 | getHighlightedLineBounds(block: HTMLElement): HighlightLineBounds; |
| 35 | highlightLines(block: HTMLElement, linesToHighlight?: string): void; |
| 36 | deserializeHighlightSteps(highlightSteps: string): HighlightLineStep[]; |
| 37 | serializeHighlightSteps(highlightSteps: HighlightLineStep[]): string; |
| 38 | } |
| 39 | declare const Highlight: () => HighlightPlugin; |
| 40 | export default Highlight; |
| 41 |