/** Sequence Annotation System — Core Types * * Provides structured annotation support for macromolecule columns: * - Column-level annotations (regions, liabilities) stored as column tags * - Row-level annotation hits stored in a hidden companion column */ /** Visual mark type */ export declare enum AnnotationVisualType { Region = "region", Point = "point", Motif = "motif" } /** Grouping category */ export declare enum AnnotationCategory { Structure = "structure", Liability = "liability", PTM = "ptm", Custom = "custom" } /** Severity for liabilities */ export declare enum LiabilitySeverity { High = "high", Medium = "medium", Low = "low", Info = "info" } /** * A single annotation definition attached to a column. * Extends the existing SeqRegion concept with visual/categorical metadata. */ export interface SeqAnnotation { /** Unique within column */ id: string; /** Display name, e.g. "CDR1", "Deamidation (NG)" */ name: string; description?: string; /** Start position name (null for row-level-only) */ start: string | null; /** End position name (null for point/row-level) */ end: string | null; visualType: AnnotationVisualType; category: AnnotationCategory; /** CSS color; defaults derived from category */ color?: string; severity?: LiabilitySeverity; /** Regex pattern for liability scanning */ motifPattern?: string; /** "IMGT", "Kabat", etc. */ sourceScheme?: string; /** True if created by an automated process (numbering, scanning) */ autoGenerated?: boolean; } /** A single hit found in a specific row */ export interface SeqAnnotationHit { /** References SeqAnnotation.id */ annotationId: string; /** 0-based index in the row's sequence */ positionIndex: number; /** End index (inclusive) for range-based hits (e.g. region spans). * When set, the hit covers positionIndex..endPositionIndex. * Unset for point/motif liability hits. */ endPositionIndex?: number; /** Position name from positionNames (for display) */ positionName?: string; /** The actual residues matched */ matchedMonomers: string; score?: number; } /** Stored per-row as JSON array in the companion annotation column */ export type RowAnnotationData = SeqAnnotationHit[]; /** Default colors for annotation categories */ export declare const ANNOTATION_COLORS: { readonly structure: { readonly FR: readonly ["#0095ff", "#289dfd", "#48adff", "#3ba5fc"]; readonly CDR: readonly ["#ffdca3", "#facb83", "#f7a224"]; }; readonly liability: { readonly deamidation: "#E53935"; readonly isomerization: "#FF9800"; readonly oxidation: "#9C27B0"; readonly glycosylation: "#4CAF50"; readonly freeCysteine: "#607D8B"; }; }; /** Background opacity for region overlays in the cell renderer */ export declare const REGION_BG_OPACITY = 0.25; /** Underline height in pixels for liability markers */ export declare const LIABILITY_UNDERLINE_HEIGHT = 3; //# sourceMappingURL=annotations.d.ts.map