import { Observable } from 'rxjs'; import { ViewBounds } from '@bespunky/angular-cdk/navigables/camera'; import { TimelineTick, DatesBetweenGenerator, TickData, TickLabeler, WidthCalculator } from '@bespunky/angular-cdk/timeline/abstraction/ticks'; import * as i0 from "@angular/core"; /** * Provides methods for virtualizing tick rendering. This service is designed to determine what ticks should * be displayed on the screen according to screen size, zoom, view center and other factors. * * @export * @class TimelineTickVirtualizationService */ export declare class TimelineTickVirtualizationService { /** * Creates a stream that notifies subscribers when the specified tick scale should render or unrender. * Render state is determined by the current zoom level and the min/max zoom defined for the tick scale. * * @param {TimelineTick} tick The tick scale for which to create the stream. * @returns {Observable} An observable that notifies subscribers when to render and unrender the tick. */ shouldRenderFeed(tick: TimelineTick): Observable; widthFeed(tick: TimelineTick): Observable; /** * Creates a stream that notifies subscribers when the ticks that should be displayed on the screen have changed. * A new item array will be generated any time one of the following occurs: * - The tick label function has been replaced * - The tick dateBetween function has been replaced * - The tick dayFactor has been updated * - The timeline zoom level has changed * - The timeline view center has changed * - The timeline virtualization buffer size has changed * * @param {TimelineTick} tick The tick scale for which to create the stream. * @returns {Observable} A stream that notifies subscribers when the ticks that should * be displayed on the screen have changed. */ itemsToRenderFeed(tick: TimelineTick): Observable; /** * Generates an array of tick items representing the ticks that should be displayed on the screen given * the specified state. * * @param {ViewBounds} viewBounds The current bounds of the view on the timeline's camera. * @param {number} dayWidth The width (in pixels) representing one single day on the timeline. * @param {WidthCalculator} width A function that calculates the width of a single tick. * @param {number} startPosition The start position (in pixels) from which ticks should start. This should include any buffer width. * @param {number} endPosition The end position (in pixels) from which ticks should end. This should include any buffer width. * @param {DatesBetweenGenerator} datesBetween The function that generates all tick scale-level dates between two given dates. * @param {TickLabeler} label The function to use for labeling the items. * @returns {TickData[]} An array of tick items representing the ticks that should be displayed on the screen. */ ticksOnScreen(viewBounds: ViewBounds, sizeUnit: number, dayWidth: number, width: WidthCalculator, startPosition: number, endPosition: number, datesBetween: DatesBetweenGenerator, label: TickLabeler): TickData[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }