export default GBKDataFetcher;
export type FillerSegment = {
    start: number;
    end: number;
    type: "filler";
    strand: "+" | "-";
};
export type GenbankFeature = import("genbank-parser").ParsedGenbank["features"][number];
export type FillerGeneAnnotation = {
    xStart: number;
    xEnd: number;
    strand: "+" | "-";
    uid: string;
    type: "filler";
    fields: [];
};
export type CompleteGeneAnnotation = {
    xStart: number;
    xEnd: number;
    strand: "+" | "-";
    chrOffset: number;
    importance: number;
    uid: string;
    type?: string | undefined;
    fields: [chr: "chrom", start: number, end: number, name: string, importance: number, strand: "+" | "-", _unknown0: string, _unknown1: string, type: string, name: string, start: string, end: string, start: string, end: string];
};
export type GeneAnnotation = CompleteGeneAnnotation | FillerGeneAnnotation;
export type GenbankDataConfig = {
    url?: string | undefined;
    text?: string | undefined;
};
export type GenbankTile = Array<GeneAnnotation> & {
    tilePositionId?: string;
};
/**
 * @typedef GenbankDataConfig
 * @prop {string=} url
 * @prop {string=} text
 */
/**
 * @typedef {Array<GeneAnnotation> & { tilePositionId?: string }} GenbankTile
 */
/** @implements {AbstractDataFetcher<GenbankTile, GenbankDataConfig>} */
declare class GBKDataFetcher implements AbstractDataFetcher {
    /** @param {GenbankDataConfig} dataConfig */
    constructor(dataConfig: GenbankDataConfig);
    /** @type {GenbankDataConfig} */
    dataConfig: GenbankDataConfig;
    /** @type {string} */
    trackUid: string;
    /** @type {string} */
    errorTxt: string;
    /** @type {Promise<ReturnType<typeof gbToJsonAndFeatures>>} */
    gbDataPromise: Promise<ReturnType<typeof gbToJsonAndFeatures>>;
    /**
     * @param {import('../types').HandleTilesetInfoFinished} [callback]
     * @returns {Promise<import('../types').LegacyTilesetInfo | undefined>}
     */
    tilesetInfo(callback?: import("../types").HandleTilesetInfoFinished): Promise<import("../types").LegacyTilesetInfo | undefined>;
    tilesetInfoLoading: boolean | undefined;
    /**
     * @param {(tiles: Record<string, GenbankTile>) => void} receivedTiles
     * @param {string[]} tileIds
     * @returns {Promise<Record<string, GenbankTile>>}
     */
    fetchTilesDebounced(receivedTiles: (tiles: Record<string, GenbankTile>) => void, tileIds: string[]): Promise<Record<string, GenbankTile>>;
    /**
     * @param {number} z
     * @param {number} x
     * @returns {Promise<GeneAnnotation[]>}
     */
    tile(z: number, x: number): Promise<GeneAnnotation[]>;
}
import type { AbstractDataFetcher } from '../types';
/**
 * Convert genbank text to a JSON representation and extract features
 * @param {string} gbText
 * @returns {{
 *  json: import('genbank-parser').ParsedGenbank[],
 *  features: GenbankFeature[],
 * }}
 */
declare function gbToJsonAndFeatures(gbText: string): {
    json: import("genbank-parser").ParsedGenbank[];
    features: GenbankFeature[];
};
