import { Event, Emitter } from '@theia/core/lib/common'; import URI from '@theia/core/lib/common/uri'; import { Marker } from '../common/marker'; import { FileService } from '@theia/filesystem/lib/browser/file-service'; import { FileChangesEvent } from '@theia/filesystem/lib/common/files'; export interface SearchFilter { uri?: URI; owner?: string; dataFilter?: (data: D) => boolean; } export declare class MarkerCollection { readonly uri: URI; readonly kind: string; protected readonly owner2Markers: Map>[]>; constructor(uri: URI, kind: string); get empty(): boolean; getOwners(): string[]; getMarkers(owner: string): Readonly>[]; setMarkers(owner: string, markerData: T[]): Marker[]; protected createMarker(owner: string, data: T): Readonly>; findMarkers(filter: SearchFilter): Marker[]; protected filterMarkers(filter: SearchFilter, toFilter?: Marker[]): Marker[]; } export interface Uri2MarkerEntry { uri: string; markers: Owner2MarkerEntry[]; } export interface Owner2MarkerEntry { owner: string; markerData: object[]; } export declare abstract class MarkerManager { abstract getKind(): string; protected readonly uri2MarkerCollection: Map>; protected readonly onDidChangeMarkersEmitter: Emitter; protected readonly fileService: FileService; protected init(): void; protected cleanMarkers(event: FileChangesEvent): void; get onDidChangeMarkers(): Event; protected fireOnDidChangeMarkers(uri: URI): void; setMarkers(uri: URI, owner: string, data: D[]): Marker[]; findMarkers(filter?: SearchFilter): Marker[]; getMarkersByUri(): IterableIterator<[string, MarkerCollection]>; getUris(): IterableIterator; cleanAllMarkers(uri?: URI): void; protected doCleanAllMarkers(uri: URI): void; } //# sourceMappingURL=marker-manager.d.ts.map