import type { SerializedFeat } from './types.tsx';
import type { SimpleFeatureSerialized } from '../util/index.ts';
export interface Feat {
    start: number;
    end: number;
    type?: string;
    name?: string;
    id?: string;
    phase?: number;
}
export interface ParentFeat extends Feat {
    uniqueId: string;
    strand?: number;
    refName: string;
    subfeatures?: Feat[];
    parentId?: string;
}
export interface SeqState {
    seq: string;
    upstream?: string;
    downstream?: string;
}
export interface ErrorState {
    error: string;
}
export declare function stitch(subfeats: {
    start: number;
    end: number;
}[], sequence: string): string;
export declare function filterSuccessiveElementsWithSameStartAndEndCoord(list: Feat[]): Feat[];
export declare function revlist(list: Feat[], seqlen: number): {
    start: number;
    end: number;
    type?: string;
    name?: string;
    id?: string;
    phase?: number;
}[];
export declare function calculateUTRs(cds: Feat[], exons: Feat[]): {
    type: string;
    start: number;
    end: number;
    name?: string;
    id?: string;
    phase?: number;
}[];
export declare function calculateUTRs2(cds: Feat[], parentFeat: Feat): {
    type: string;
    start: number;
    end: number;
}[];
export declare function ellipses(slug: string): string;
export declare function replaceUndefinedWithNull(obj: SimpleFeatureSerialized): any;
export declare function formatSubfeatures(obj: SerializedFeat, depth: number, parse: (obj: Record<string, unknown>) => void, currentDepth?: number, returnObj?: Record<string, unknown>): void;
