import type { MarkerSlice } from '../slice/MarkerSlice';
import type { Slice } from '../slice/types';
/**
 * On overlay "ref" is a reference from the {@link Overlay} to a {@link Slice}.
 * In case of a *marker* slice, the reference is to the slice itself. In case of
 * a regular annotation slice, two references are needed: one to the start slice
 * and one to the end slice.
 */
export type OverlayRef<T = string> = MarkerSlice<T> | OverlayRefSliceStart<T> | OverlayRefSliceEnd<T>;
export declare class OverlayRefSliceStart<T = string> {
    readonly slice: Slice<T>;
    constructor(slice: Slice<T>);
}
export declare class OverlayRefSliceEnd<T = string> {
    readonly slice: Slice<T>;
    constructor(slice: Slice<T>);
}
