import { PREFIX_CLASS, Prefix } from './constants'; declare const PATTERNS: { readonly y: RegExp; readonly p: RegExp; readonly c: RegExp; readonly n: RegExp; readonly r: RegExp; }; interface Position { '@class': string; prefix: Prefix; } interface BasicPosition extends Position { pos: number | null; } interface CdsLikePosition extends BasicPosition { prefix: 'c' | 'n' | 'r'; offset?: number | null; } interface CytobandPosition extends Position { prefix: 'y'; arm: 'p' | 'q'; majorBand?: number | null; minorBand?: number | null; } interface ProteinPosition extends BasicPosition { prefix: 'p'; refAA: string | null; longRefAA?: string | null; } declare type AnyPosition = BasicPosition | CytobandPosition | ProteinPosition; declare type PrefixMap

= (P extends 'y' ? CytobandPosition : P extends 'p' ? ProteinPosition : P extends 'c' | 'r' | 'n' ? CdsLikePosition : P extends 'g' | 'i' | 'e' ? BasicPosition : AnyPosition); declare const convertPositionToJson: (position: AnyPosition, exclude?: string[]) => {}; declare function createPosition

(prefix: P, position: any): PrefixMap

; declare const convertPositionToString: (position: any) => string; /** * Convert parsed breakpoints into a string representing the breakpoint range * * @param prefix the prefix denoting the coordinate system being used * @param start the start of the breakpoint range * @param end the end of the breakpoint range (if the breakpoint is a range) * @param multiFeature flag to indicate this is for multi-feature notation and should not contain brackets * * @example * > break1Repr('g', {pos: 1}, {pos: 10}); * 'g.(1_10)' * * @example * > break1Repr('g', {pos: 1}) * 'g.1' * * @returns the string representation of a breakpoint or breakpoint range including the prefix */ declare const createBreakRepr: (start: AnyPosition, end?: AnyPosition | null, multiFeature?: boolean) => string; /** * Given a prefix and string, parse a position * * @param prefix the prefix type which defines the type of position to be parsed * @param string the string the position information is being parsed from * * @example * > parsePosition('c', '100+2'); * {'@class': 'CdsPosition', pos: 100, offset: 2} * * @returns the parsed position */ declare function parsePosition

(prefix: P, string: string): PrefixMap

; export { convertPositionToJson, convertPositionToString, createBreakRepr, createPosition, parsePosition, AnyPosition, PATTERNS, PREFIX_CLASS, };