/**
 * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 * @author David Sehnal <david.sehnal@gmail.com>
 */
import * as React from 'react';
import { PluginUIComponent } from '../base';
import { ButtonsType, ModifiersKeys } from '../../mol-util/input/input-observer';
import { SequenceWrapper } from './wrapper';
import { StructureElement } from '../../mol-model/structure';
declare type SequenceProps = {
    sequenceWrapper: SequenceWrapper.Any;
    sequenceNumberPeriod?: number;
    hideSequenceNumbers?: boolean;
};
export declare class Sequence<P extends SequenceProps> extends PluginUIComponent<P> {
    private parentDiv;
    private lastMouseOverSeqIdx;
    private highlightQueue;
    private lociHighlightProvider;
    private lociSelectionProvider;
    private get sequenceNumberPeriod();
    componentDidMount(): void;
    componentWillUnmount(): void;
    getLoci(seqIdx: number | undefined): StructureElement.Loci | undefined;
    getSeqIdx(e: React.MouseEvent): number | undefined;
    hover(loci: StructureElement.Loci | undefined, buttons: ButtonsType, button: ButtonsType.Flag, modifiers: ModifiersKeys): void;
    click(loci: StructureElement.Loci | undefined, buttons: ButtonsType, button: ButtonsType.Flag, modifiers: ModifiersKeys): void;
    contextMenu: (e: React.MouseEvent) => void;
    private mouseDownLoci;
    mouseDown: (e: React.MouseEvent) => void;
    mouseUp: (e: React.MouseEvent) => void;
    private getBackgroundColor;
    private getResidueClass;
    private residue;
    private getSequenceNumberClass;
    private location;
    private getSequenceNumber;
    private padSeqNum;
    private getSequenceNumberSpan;
    private updateMarker;
    mouseMove: (e: React.MouseEvent) => void;
    mouseLeave: (e: React.MouseEvent) => void;
    render(): JSX.Element;
}
export {};
