import type React from 'react';
import type { BpOffset, ExportSvgOptions, HighlightType, InitState, NavLocation } from './types';
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 'mobx-state-tree';
export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
    id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
    minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
    id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    type: import("mobx-state-tree").IType<string | undefined, string, string>;
    offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
    bpPerPx: import("mobx-state-tree").IType<number | undefined, number, number>;
    displayedRegions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
    tracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
    hideHeader: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
    colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    init: import("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;
    volatileError: unknown;
    afterDisplayedRegionsSetCallbacks: (() => void)[];
    scaleFactor: number;
    trackRefs: Record<string, HTMLDivElement>;
    coarseDynamicBlocks: BaseBlock[];
    coarseTotalBp: number;
    leftOffset: undefined | BpOffset;
    rightOffset: undefined | BpOffset;
} & {
    readonly pinnedTracks: any[];
    readonly unpinnedTracks: any[];
    readonly trackLabelsSetting: any;
    readonly width: number;
    readonly interRegionPaddingWidth: number;
    readonly assemblyNames: string[];
    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 scaleBarHeight: number;
    readonly headerHeight: number;
    readonly trackHeights: number;
    readonly trackHeightsWithResizeHandles: number;
    readonly height: number;
    readonly totalBp: 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("mobx-state-tree").IMSTArray<import("mobx-state-tree").IAnyType> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>>;
    };
    getTrack(id: string): any;
    rankSearchResults(results: BaseResult[]): BaseResult[];
    rewriteOnClicks(trackType: string, viewMenuActions: MenuItem[]): void;
    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;
    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;
    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): number;
} & {
    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): boolean;
    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): {
        start: number;
        end: number;
        type: string;
        regionNumber?: number;
        reversed?: boolean;
        refName: string;
        assemblyName: string;
        key: string;
        offsetPx: number;
        widthPx: number;
        variant?: string;
        isLeftEndOfDisplayedRegion?: boolean;
    }[];
    afterDisplayedRegionsSet(cb: () => void): void;
    horizontalScroll(distance: number): number;
    center(): void;
    showAllRegions(): void;
    showAllRegionsInAssembly(assemblyName?: string): void;
    setDraggingTrackId(idx?: string): void;
    setScaleFactor(factor: number): 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;
} & {
    setCoarseDynamicBlocks(blocks: BlockSet): void;
} & {
    moveTo(start?: BpOffset, end?: BpOffset): void;
    navToLocString(input: string, optAssemblyName?: string): Promise<void>;
    navToSearchString({ input, assembly, }: {
        input: string;
        assembly: Assembly;
    }): Promise<void>;
    navToLocations(parsedLocStrings: ParsedLocString[], assemblyName?: string): Promise<void>;
    navTo(query: NavLocation): void;
    navToMultiple(locations: NavLocation[]): void;
} & {
    rubberBandMenuItems(): MenuItem[];
    bpToPx({ refName, coord, regionNumber, }: {
        refName: string;
        coord: number;
        regionNumber?: number;
    }): {
        index: number;
        offsetPx: 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;
} & {
    afterCreate(): void;
    afterAttach(): void;
}, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
    id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
    minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
    id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    type: import("mobx-state-tree").IType<string | undefined, string, string>;
    offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
    bpPerPx: import("mobx-state-tree").IType<number | undefined, number, number>;
    displayedRegions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
    tracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
    hideHeader: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
    colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
    init: import("mobx-state-tree").IType<InitState | undefined, InitState | undefined, InitState | undefined>;
}>>, {
    type: string;
    id: string;
    displayName: string | undefined;
    tracks: any[];
    minimized: boolean;
    displayedRegions: Region[];
    offsetPx: number;
    bpPerPx: number;
    hideHeader: boolean;
    hideHeaderOverview: boolean;
    hideNoTracksActive: boolean;
    trackSelectorType: string;
    showCenterLine: boolean;
    showCytobandsSetting: boolean;
    trackLabels: string;
    showGridlines: boolean;
    highlight: HighlightType[];
    colorByCDS: boolean;
    showTrackOutlines: boolean;
}>;
export type LinearGenomeViewStateModel = ReturnType<typeof stateModelFactory>;
export type LinearGenomeViewModel = Instance<LinearGenomeViewStateModel>;
export { default as LinearGenomeView, default as ReactComponent, } from './components/LinearGenomeView';
export { default as RefNameAutocomplete } from './components/RefNameAutocomplete';
export { default as SearchBox } from './components/SearchBox';
export { renderToSvg } from './svgcomponents/SVGLinearGenomeView';
