import React from "react";
import { RcsbFvRowExtendedConfigInterface } from "../RcsbFvConfig/RcsbFvConfigInterface";
import { RcsbFvContextManager } from "../RcsbFvContextManager/RcsbFvContextManager";
import { RcsbSelection } from "../../RcsbBoard/RcsbSelection";
import { RcsbScaleInterface } from "../../RcsbBoard/RcsbD3/RcsbD3ScaleFactory";
/**Board track React component interface*/
interface RcsbFvRowInterface {
    readonly id: string;
    readonly boardId: string;
    readonly rowNumber: number;
    readonly rowConfigData: RcsbFvRowExtendedConfigInterface;
    readonly contextManager: RcsbFvContextManager;
    readonly xScale: RcsbScaleInterface;
    readonly selection: RcsbSelection;
    readonly renderSchedule: "async" | "sync" | "fixed";
}
/**Board track React state interface*/
interface RcsbFvRowState {
    readonly rowHeight: number;
    readonly mounted: boolean;
    readonly rowConfigData: RcsbFvRowExtendedConfigInterface;
    readonly display: boolean;
    readonly titleGlow: boolean;
}
/**Board track React Component className*/
export declare class RcsbFvRow extends React.Component<RcsbFvRowInterface, RcsbFvRowState> {
    readonly state: RcsbFvRowState;
    /**Subscription to events*/
    private subscription;
    private rowRef;
    constructor(props: RcsbFvRowInterface);
    render(): import("react/jsx-runtime").JSX.Element;
    componentDidMount(): void;
    componentWillUnmount(): void;
    /**Subscribe className to rxjs events (adding tracks, change scale, update board config)
     * @return rxjs Subscription object
     * */
    private subscribe;
    private hoverRow;
    private checkHoveredRow;
    private changeClass;
    /**This function will be called once the final height of the track is known*/
    private callbackRcsbFvRowTrack;
    /**Returns the full track width (title+annotations) and height
     * @return Board track full width
     * */
    configStyle(): React.CSSProperties;
}
export {};
