From d09852b3b7388ab44a50fbed62952764d801d230 Mon Sep 17 00:00:00 2001 From: eternal-flame-AD Date: Fri, 2 Aug 2024 23:45:29 -0500 Subject: [PATCH] add browser API from igv.org/doc Signed-off-by: eternal-flame-AD --- js/igv.d.ts | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/js/igv.d.ts b/js/igv.d.ts index 389efd98b..205093002 100644 --- a/js/igv.d.ts +++ b/js/igv.d.ts @@ -425,12 +425,50 @@ interface CreateOptExtras { export type CreateOpt = GenomeOpt & CreateOptExtras; +declare class ROISet { + url: string; + name: string; + isUserDefined: boolean; + color: string; + headerColor: string; + isvisible: boolean; +} + +interface DefineROI { + url: string; + name: string; + format: string; + color: string; +} declare class _Browser { - // this forces the user to cast the return value to acknowledge this is not stable + currentLoci(): string[] | string; + loadGenome(genome: string | ReferenceGenome): Promise; + loadSessionObject(session: Opaque<'igv.js session JSON'>): void; + loadSession(session: string): void; + // TODO: check the return type + loadTrack(track: Track): Promise; + loadSampleInfo({ url: string }): void; + findTracks(func: (track: Track) => boolean): Track[]; + findTracks(property: string, value: any): Track[]; + removeTRack(track: Track): void; + removeTrackByName(trackName: string): void; + loadROI(roi: DefineROI | DefineROI[]): void; + clearROIs(): void; + getUserDefinedROIs(): Promise; + search(query: string): void; + zoomIn(): void; + zoomOut(): void; + visibilityChange(): void; toJSON(): Opaque<'igv.js session JSON'>; compressedSession(): string; toSVG(): string; + setCustomCursorGuideMouseHandler(handler: (state: { + bp: number, + start: number, + end: number, + interpolant: number, + }) => void): void; } export type Browser = _Browser;