| /** |
| * @license |
| * Copyright (C) 2020 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| import {CoverageRange, Side} from './diff'; |
| import {ChangeInfo} from './rest-api'; |
| |
| /** |
| * This is the callback object that Gerrit calls once for each diff. Gerrit |
| * is then responsible for styling the diff according the returned array of |
| * CoverageRanges. |
| */ |
| export type CoverageProvider = ( |
| changeNum: number, |
| path: string, |
| basePatchNum?: number, |
| patchNum?: number, |
| change?: ChangeInfo |
| ) => Promise<Array<CoverageRange> | undefined>; |
| |
| export declare interface AnnotationPluginApi { |
| /** |
| * The specified function will be called when a gr-diff component is built, |
| * and feeds the returned coverage data into the diff. Optional. |
| * |
| * Be sure to call this only once and only from one plugin. Multiple coverage |
| * providers are not supported. A second call will just overwrite the |
| * provider of the first call. |
| */ |
| setCoverageProvider(coverageProvider: CoverageProvider): AnnotationPluginApi; |
| |
| /** |
| * For plugins notifying Gerrit about new annotations being ready to be |
| * applied for a certain range. Gerrit will then re-render the relevant lines |
| * of the diff and call back to the layer annotation function that was |
| * registered in addLayer(). |
| * |
| * @param path The file path whose listeners should be notified. |
| * @param start The line where the update starts. |
| * @param end The line where the update ends. |
| * @param side The side of the update ('left' or 'right'). |
| */ |
| notify(path: string, start: number, end: number, side: Side): void; |
| } |