import { TimeKeysResult } from "../Time"; import { Index } from "../Types"; import { Database } from "../process/Types"; /** This is data used by multiple blocks and can be computed only once */ export interface CommonBlockData { timeKeys: TimeKeysResult; /** Maps time keys to their corresponding timestamp */ keyToTimestamp: { date: number[]; week: number[]; month: number[]; }; /** Day of the week for each dayIndex */ dayOfWeek: number[]; } export declare const computeCommonBlockData: (database: Database) => CommonBlockData; export interface VariableDistribution { total: number; sum: number; average: number; /** Aggregation in `count.length` buckets of `(whiskerMax-whiskerMin)/count.length` */ count: number[]; boxplot: { min: number; whiskerMin: number; q1: number; median: number; q3: number; whiskerMax: number; max: number; outliers: number; }; } export declare const computeVariableDistribution: (values: Uint32Array, count: number) => VariableDistribution; /** This is a common entry for multiple blocks. It associates an index with a value */ export interface IndexEntry { index: Index; value: number; } /** Entry for date based graph */ export interface DateItem { ts: number; v: number; } /** Activity entry for one hour of a weekday */ export interface WeekdayHourEntry { value: number; hour: `${number}hs`; weekday: "Sun" | "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat"; }