/**
 * Computes coverage for sorted segments
 *
 * TODO: Binned coverage, e.g., don't emit a new segment for every
 * coverage change, but only every n bases or so. The most straightforward
 * way to implement it is a separate transform that bins the coverage
 * segments and calculates weighted averages.
 */
export default class CoverageTransform extends Transform {
    /**
     * @typedef {import("../flowNode.js").Datum} Datum
     */
    /**
     * @param {import("../../spec/transform.js").CoverageParams} params
     */
    constructor(params: import("../../spec/transform.js").CoverageParams);
    params: import("../../spec/transform.js").CoverageParams;
    startAccessor: import("vega-util").AccessorFn<any>;
    endAccessor: import("vega-util").AccessorFn<any>;
    /** @type {function(any):string} */
    chromAccessor: (arg0: any) => string;
    /** @type {function(any):number} */
    weightAccessor: (arg0: any) => number;
    as: {
        coverage: string;
        start: string;
        end: string;
        chrom: string;
    };
    createSegment: (start: number, end: number, coverage: number, chrom?: string) => import("../flowNode.js").Datum;
    /**
     * End pos as priority, weight as value
     *
     * @type {FlatQueue<number>}
     */
    ends: FlatQueue<number>;
}
import Transform from "./transform.js";
import FlatQueue from "flatqueue";
//# sourceMappingURL=coverage.d.ts.map