import { DateKey } from "../Time"; import { Index } from "../Types"; import { Database } from "../process/Types"; /** * Keeps the state of the currently applied filters in the UI. * Stores the selected time range and the index of the selected channels & authors. * * Can be updated and queried. */ export declare class Filters { private channels; private authors; private startDayIndex; private endDayIndex; private dateKeys; constructor(database: Database); /** Updates the indexes of the selected channels */ updateChannels(channels: Index[]): void; /** Updates the indexes of the selected authors */ updateAuthors(authors: Index[]): void; /** Updates the start date of the selected time range */ updateStartDate(startDate: DateKey): void; /** Updates the end date of the selected time range */ updateEndDate(endDate: DateKey): void; /** @returns true if the channel is currently selected */ hasChannel(channelIndex: number): boolean; /** @returns true if the author is currently selected */ hasAuthor(authorIndex: number): boolean; /** @returns true if the day is inside the selected time range */ inTime(dayIndex: number): boolean; /** @returns the number of days that are currently selected */ get numActiveDays(): number; }