import type React from 'react';
import type { BpOffset, ExportSvgOptions, HighlightType, InitState, NavLocation, VolatileGuide } from './types.ts';
import type PluginManager from '@jbrowse/core/PluginManager';
import type BaseResult from '@jbrowse/core/TextSearch/BaseResults';
import type { Assembly } from '@jbrowse/core/assemblyManager/assembly';
import type { MenuItem } from '@jbrowse/core/ui';
import type { ParsedLocString } from '@jbrowse/core/util';
import type { BaseBlock, BlockSet } from '@jbrowse/core/util/blockTypes';
import type { Region } from '@jbrowse/core/util/types';
import type { Instance } from '@jbrowse/mobx-state-tree';
export declare function stateModelFactory(pluginManager: PluginManager): import("@jbrowse/mobx-state-tree").IModelType<{
    id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    displayName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
    minimized: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
    id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    type: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
    offsetPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
    bpPerPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
    displayedRegions: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
    tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
    hideHeader: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideHeaderOverview: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideNoTracksActive: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    trackSelectorType: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    showCenterLine: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showCytobandsSetting: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    trackLabels: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    showGridlines: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    highlight: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
    highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    labelsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    colorByCDS: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showTrackOutlines: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    init: import("@jbrowse/mobx-state-tree").IType<InitState | undefined, InitState | undefined, InitState | undefined>;
}, {
    width: number;
} & {
    menuItems(): MenuItem[];
} & {
    setDisplayName(name: string): void;
    setWidth(newWidth: number): void;
    setMinimized(flag: boolean): void;
} & {
    volatileWidth: number | undefined;
    minimumBlockWidth: number;
    draggingTrackId: undefined | string;
    lastTrackDragY: undefined | number;
    volatileError: unknown;
    scaleFactor: number;
    targetBpPerPx: number | undefined;
    trackRefs: Record<string, HTMLDivElement>;
    coarseDynamicBlocks: BaseBlock[];
    coarseTotalBp: number;
    leftOffset: undefined | BpOffset;
    rightOffset: undefined | BpOffset;
    isScalebarRefNameMenuOpen: boolean;
    scalebarRefNameClickPending: boolean;
    volatileGuides: VolatileGuide[];
} & {
    readonly pinnedTracks: any[];
    readonly unpinnedTracks: any[];
    readonly trackLabelsSetting: any;
    readonly width: number;
    readonly interRegionPaddingWidth: number;
    readonly assemblyNames: string[];
    readonly assemblyDisplayNames: string[];
    readonly isTopLevelView: boolean;
    readonly stickyViewHeaders: boolean;
    readonly rubberbandTop: number;
    readonly pinnedTracksTop: number;
} & {
    scalebarDisplayPrefix(): string | undefined;
    MiniControlsComponent(): React.FC<any>;
    HeaderComponent(): React.FC<any>;
    readonly assembliesNotFound: string | undefined;
    readonly assemblyErrors: string;
    readonly assembliesInitialized: boolean;
    readonly initialized: boolean;
    readonly hasDisplayedRegions: boolean;
    readonly loadingMessage: "Loading" | undefined;
    readonly hasSomethingToShow: boolean;
    readonly showLoading: boolean;
    readonly showImportForm: boolean;
    readonly scalebarHeight: number;
    readonly headerHeight: number;
    readonly trackHeights: number;
    readonly trackHeightsWithResizeHandles: number;
    readonly height: number;
    readonly totalBp: number;
    getNonElidedRegionCount(bpPerPx: number): number;
    getInterRegionPaddingPx(bpPerPx: number): number;
    readonly maxBpPerPx: number;
    readonly minBpPerPx: number;
    readonly error: unknown;
    readonly maxOffset: number;
    readonly minOffset: number;
    readonly displayedRegionsTotalPx: number;
    renderProps(): any;
    searchScope(assemblyName: string): {
        assemblyName: string;
        includeAggregateIndexes: boolean;
        tracks: import("@jbrowse/mobx-state-tree").IMSTArray<import("@jbrowse/mobx-state-tree").IAnyType> & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>>;
    };
    readonly trackMap: Map<any, any>;
    getTrack(id: string): any;
    rankSearchResults(results: BaseResult[]): BaseResult[];
    readonly trackTypeActions: Map<string, MenuItem[]>;
} & {
    setShowTrackOutlines(arg: boolean): void;
    setColorByCDS(flag: boolean): void;
    setShowCytobands(flag: boolean): void;
    setWidth(newWidth: number): void;
    setError(error: unknown): void;
    setIsScalebarRefNameMenuOpen(isOpen: boolean): void;
    setScalebarRefNameClickPending(pending: boolean): void;
    setHideHeader(b: boolean): void;
    setHideHeaderOverview(b: boolean): void;
    setHideNoTracksActive(b: boolean): void;
    setShowGridlines(b: boolean): void;
    addToHighlights(highlight: HighlightType): void;
    setHighlight(highlight?: HighlightType[]): void;
    removeHighlight(highlight: HighlightType): void;
    updateHighlight(old: HighlightType, updates: Partial<HighlightType>): void;
    setHighlightsVisible(arg: boolean): void;
    setLabelsVisible(arg: boolean): void;
    setVolatileGuides(guides: VolatileGuide[]): void;
    scrollTo(offsetPx: number): number;
    zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
    setOffsets(left?: BpOffset, right?: BpOffset): void;
    setSearchResults(searchResults: BaseResult[], searchQuery: string, assemblyName?: string): void;
    setNewView(bpPerPx: number, offsetPx: number): void;
    horizontallyFlip(): void;
    showTrack(trackId: string, initialSnapshot?: {}, displayInitialSnapshot?: {}): any;
    hideTrack(trackId: string): 0 | 1;
} & {
    moveTrackDown(id: string): void;
    moveTrackUp(id: string): void;
    moveTrackToTop(id: string): void;
    moveTrackToBottom(id: string): void;
    moveTrack(movingId: string, targetId: string): void;
    toggleTrack(trackId: string): void;
    setTrackLabels(setting: "overlapping" | "offset" | "hidden"): void;
    setShowCenterLine(b: boolean): void;
    setDisplayedRegions(regions: Region[]): void;
    activateTrackSelector(): import("@jbrowse/core/util").Widget;
    getSelectedRegions(leftOffset?: BpOffset, rightOffset?: BpOffset): {
        assemblyName: string;
        refName: string;
        start: number;
        end: number;
    }[];
    horizontalScroll(distance: number): number;
    showAllRegions(): void;
    showAllRegionsInAssembly(assemblyName?: string): void;
    setDraggingTrackId(idx?: string): void;
    setLastTrackDragY(y: number): void;
    setScaleFactor(factor: number): void;
    setTargetBpPerPx(target: number | undefined): void;
    clearView(): void;
    setInit(arg?: InitState): void;
    exportSvg(opts?: ExportSvgOptions): Promise<void>;
} & {
    slide: (viewWidths: number) => void;
} & {
    zoom: (targetBpPerPx: number) => void;
} & {
    readonly canShowCytobands: boolean;
    readonly showCytobands: boolean;
    readonly anyCytobandsExist: boolean;
    readonly cytobandOffset: number;
} & {
    menuItems(): MenuItem[];
} & {
    readonly staticBlocks: BlockSet;
    readonly dynamicBlocks: BlockSet;
    readonly roundedDynamicBlocks: BaseBlock[];
    readonly visibleLocStrings: string;
    readonly coarseVisibleLocStrings: string;
    readonly coarseTotalBpDisplayStr: string;
    readonly effectiveBpPerPx: number;
    readonly effectiveTotalBp: number;
    readonly effectiveTotalBpDisplayStr: string;
} & {
    setCoarseDynamicBlocks(blocks: BlockSet): void;
} & {
    moveTo(start?: BpOffset, end?: BpOffset): void;
    navToLocString(input: string, optAssemblyName?: string, grow?: number): Promise<void>;
    navToSearchString({ input, assembly, }: {
        input: string;
        assembly: Assembly;
    }): Promise<void>;
    navToLocation(parsedLocString: ParsedLocString, assemblyName?: string, grow?: number): Promise<void>;
    navToLocations(regions: ParsedLocString[], assemblyName?: string, grow?: number): Promise<void>;
    navTo(query: NavLocation, grow?: number): void;
    navToMultiple(locations: NavLocation[], grow?: number): void;
} & {
    rubberBandMenuItems(): MenuItem[];
    bpToPx({ refName, coord, regionNumber, }: {
        refName: string;
        coord: number;
        regionNumber?: number;
    }): {
        index: number;
        offsetPx: number;
    } | undefined;
    getHighlightCoords(region: {
        assemblyName?: string;
        refName: string;
        start: number;
        end: number;
    }): {
        width: number;
        left: number;
    } | undefined;
    centerAt(coord: number, refName: string, regionNumber?: number): void;
    pxToBp(px: number): {
        coord: number;
        index: number;
        refName: string;
        oob: boolean;
        assemblyName: string;
        offset: number;
        start: number;
        end: number;
        reversed?: boolean;
    };
    readonly centerLineInfo: {
        coord: number;
        index: number;
        refName: string;
        oob: boolean;
        assemblyName: string;
        offset: number;
        start: number;
        end: number;
        reversed?: boolean;
    } | undefined;
    readonly visibleRegions: BaseBlock[];
} & {
    rubberbandClickMenuItems(clickOffset: BpOffset): MenuItem[];
} & {
    afterCreate(): void;
    afterAttach(): void;
}, import("@jbrowse/mobx-state-tree").ModelCreationType<import("@jbrowse/mobx-state-tree/dist/internal").ExtractCFromProps<{
    id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    displayName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
    minimized: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
    id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    type: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
    offsetPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
    bpPerPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
    displayedRegions: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
    tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
    hideHeader: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideHeaderOverview: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideNoTracksActive: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    trackSelectorType: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    showCenterLine: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showCytobandsSetting: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    trackLabels: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    showGridlines: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    highlight: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
    highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    labelsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    colorByCDS: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showTrackOutlines: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    init: import("@jbrowse/mobx-state-tree").IType<InitState | undefined, InitState | undefined, InitState | undefined>;
}>>, import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
    id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    displayName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
    minimized: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
    id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    type: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
    offsetPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
    bpPerPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
    displayedRegions: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
    tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
    hideHeader: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideHeaderOverview: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideNoTracksActive: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    trackSelectorType: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    showCenterLine: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showCytobandsSetting: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    trackLabels: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
    showGridlines: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    highlight: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
    highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    labelsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    colorByCDS: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showTrackOutlines: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    init: import("@jbrowse/mobx-state-tree").IType<InitState | undefined, InitState | undefined, InitState | undefined>;
}>>;
export type LinearGenomeViewStateModel = ReturnType<typeof stateModelFactory>;
export type LinearGenomeViewModel = Instance<LinearGenomeViewStateModel>;
export { default as LinearGenomeView, default as ReactComponent, } from './components/LinearGenomeView.tsx';
export { default as RefNameAutocomplete } from './components/RefNameAutocomplete/index.tsx';
export { default as SearchBox } from './components/SearchBox.tsx';
export { renderToSvg } from './svgcomponents/SVGLinearGenomeView.tsx';
