import { PositionMark, RotationColumns, RotationGroups, TemporalSplitGroups, TimelineSplit } from './model'; /** * Finds the earliest start date in a set of splits. * @param splits * @returns */ export declare const getStartDate: (splits: TimelineSplit[]) => number; /** * Finds the latest end date in a set of splits. * @param splits * @returns */ export declare const getEndDate: (splits: TimelineSplit[]) => number; /** * Creates an estimator which calculates the relative position of a date * in a given date range specified by the start and end date. * @param start * @param end * @returns */ export declare const createPositionEstimator: (start: number, end: number) => (time: number, mark: PositionMark) => number; /** * Divides the set of splits into their respective rotation groups. * Note that non-rotation splits are put in rotation group 1 ('1'). * @param splits * @returns */ export declare const getRotationGroups: (splits: TimelineSplit[]) => RotationGroups; /** * Groups a set of splits according to their start date. Every split that begins * on the same date will be grouped together. Based on the appliesFrom property. * @param splits * @returns */ export declare const splitGroupsByDate: (splits: TimelineSplit[]) => TemporalSplitGroups; /** * Returns the split with the earliest start date. Based on the appliesFrom property. * @param splits * @returns */ export declare const getEarliestFinish: (splits: TimelineSplit[]) => TimelineSplit; /** * Checks whether two splits overlap in time. * @param splitA * @param splitB * @returns */ export declare const doesSplitsOverlap: (splitA: TimelineSplit, splitB: TimelineSplit) => boolean; /** * Returns all the splits in a set which overlaps in time with the main split * @param main * @param splits * @returns */ export declare const getLinkedSplits: (main: TimelineSplit, splits: TimelineSplit[]) => TimelineSplit[]; /** * Groups a set of splits into columns, where each column is represented by a unqiue split start date in the set of splits. * Each column is associated by a main split (the split in the set which has the smallest range compared to other splits with * the same start date), and a set of linked splits, which overlaps with the main split. * @param splits * @returns */ export declare const getRotationColumns: (splits: TimelineSplit[]) => RotationColumns; /** * Finds the splits that are active given the selected date * @param splits * @param selectedDate * @returns */ export declare const getSelectedSplits: (splits: TimelineSplit[], selectedDate: Date) => string[]; /** * Computes the initial selected date for a timeline after a position has been selected. * @param currentDate * @param start * @param end * @returns */ export declare const initialSelectedDate: (currentDate: Date, start: number, end: number) => Date;