/** * @typedef {Partial>} DataReadinessRequest */ /** * @typedef {{isDataReadyForDomain: (request: DataReadinessRequest) => boolean}} DataReadinessCheckable */ /** * Base class for data sources that listen a domain and propagate data lazily. * * @abstract * @implements {DataReadinessCheckable} */ export default class SingleAxisLazySource extends DataSource implements DataReadinessCheckable { /** * @param {import("../../../view/view.js").default} view * @param {import("../../../spec/channel.js").PrimaryPositionalChannel} channel */ constructor(view: import("../../../view/view.js").default, channel: import("../../../spec/channel.js").PrimaryPositionalChannel); /** * Has to be resolved before any data can be requested upon domain changes. * @protected */ protected initializedPromise: Promise; /** * @type {number[] | undefined} * @protected */ protected _lastLoadedDomain: number[] | undefined; /** @type {import("../../../spec/channel.js").PrimaryPositionalChannel} */ channel: import("../../../spec/channel.js").PrimaryPositionalChannel; scaleResolution: import("../../../scales/scaleResolution.js").default; /** * Convenience getter for genome. * * @protected */ protected get genome(): import("../../../genome/genome.js").default; /** * Listen to the domain change event and update data when the covered windows change. * * @param {number[]} domain Linearized domain * @param {import("../../../spec/genome.js").ChromosomalLocus[]} complexDomain Chrom/Pos domain * @abstract */ onDomainChanged(domain: number[], complexDomain: import("../../../spec/genome.js").ChromosomalLocus[]): void; /** * TODO: Get rid of this method. * Rendering should be requested by the collector. * * @protected */ protected requestRender(): void; /** * Resets the data flow and propagates the data, which should be an array of data chunks. * A chunk is an ordinary array of data objects. Typically all data objects are stored * in a single chunk, but sometimes they may be split into multiple chunks, e.g., one per * chromosome. * * @param {import("../../flowNode.js").Datum[][]} chunks An array of data chunks. * @protected */ protected publishData(chunks: import("../../flowNode.js").Datum[][]): void; /** * @param {DataReadinessRequest} request * @returns {boolean} */ isDataReadyForDomain(request: DataReadinessRequest): boolean; } export type DataReadinessRequest = Partial>; export type DataReadinessCheckable = { isDataReadyForDomain: (request: DataReadinessRequest) => boolean; }; import DataSource from "../dataSource.js"; //# sourceMappingURL=singleAxisLazySource.d.ts.map