import type { LinearGenomeViewModel } from '../../LinearGenomeView/index.ts';
import type { FloatingLabelData, LayoutRecord } from '../types.ts';
import type { Assembly } from '@jbrowse/core/assemblyManager/assembly';
export interface FeatureLabelData {
    leftPx: number;
    topPx: number;
    totalFeatureHeight: number;
    floatingLabels: FloatingLabelData[];
    featureWidth: number;
}
interface RenderingWithLayout {
    layout?: {
        getRectangles?: () => Map<string, LayoutRecord>;
    };
}
export declare function collectLayoutsFromRenderings(renderings: readonly (readonly [unknown, RenderingWithLayout])[]): Map<string, LayoutRecord>[];
export declare function deduplicateFeatureLabels(layoutFeatures: {
    entries(): IterableIterator<readonly [string, LayoutRecord | undefined]>;
}, view: LinearGenomeViewModel, assembly: Assembly | undefined, bpPerPx: number): Map<string, FeatureLabelData>;
export declare function calculateFloatingLabelPosition(featureLeftPx: number, featureRightPx: number, labelWidth: number, offsetPx: number): number;
export {};
