import React from "react"; import { Domain } from "../../../utils/types"; export interface GenomicElement { coordinates: Domain }; export interface Exon { coordinates: Domain; UTRs?: GenomicElement[]; }; export interface Transcript { id: string; name: string; coordinates: Domain; strand: string; exons?: Exon[]; color?: string; }; export interface TranscriptList { transcripts: Transcript[]; strand: string; name?: string; id?: string; }; export type RenderedTranscript = { transcript: Transcript; paths: ExonPaths; }; export type TranscriptRow = { y: number; transcripts: RenderedTranscript[]; }; export type PackTranscriptTrackProps = { data?: TranscriptList[]; rowHeight: number; width: number; domain: Domain; id: string; transform?: string; color?: string; onHeightChanged?: (height: number) => void; onTranscriptClick?: (transcript: Transcript) => void; svgRef?: React.RefObject; }; export type SquishTranscriptTrackProps = { data?: TranscriptList[]; rowHeight: number; width: number; domain: Domain; id: string; transform?: string; color?: string; onHeightChanged?: (height: number) => void; onTranscriptClick?: (transcript: Transcript) => void; svgRef?: React.RefObject; }; export type ExonPaths = { introns: string; exons: string; }; export type GraphQLTranscriptTrackProps = { assembly: string; domain: Domain; queryType?: 'genes' | 'refseqgenes' | 'refseqxenogenes' ; endpoint: string; transform: string; id: string; onHeightChanged?: (height: number) => void; svgRef?: React.RefObject; children?: React.ReactNode; };