import type { Region } from '@jbrowse/core/util';
export interface SliceElidedRegion {
    elided: true;
    widthBp: number;
    regions: Region[];
}
export interface SliceNonElidedRegion {
    elided: false;
    widthBp: number;
    start: number;
    end: number;
    refName: string;
    assemblyName: string;
}
export type SliceRegion = SliceNonElidedRegion | SliceElidedRegion;
export declare class Slice {
    region: SliceRegion;
    offsetRadians: number;
    radianWidth: number;
    key: string;
    startRadians: number;
    endRadians: number;
    bpPerRadian: number;
    flipped: boolean;
    constructor(view: {
        bpPerRadian: number;
    }, region: SliceRegion, offsetRadians: number, radianWidth: number);
    bpToXY(bp: number, radiusPx: number): [number, number];
    toJSON(): {
        [k: string]: any;
    };
}
declare function calculateStaticSlices(self: {
    elidedRegions: readonly SliceRegion[];
    bpPerRadian: number;
    spacingPx: number;
    pxPerRadian: number;
}): Slice[];
declare function sliceIsVisible(self: {
    offsetRadians: number;
    visibleSection: {
        theta: [number, number];
    };
}, slice: Slice): boolean;
export { calculateStaticSlices, sliceIsVisible };
