import { ItemValue, Question } from "survey-core"; import { SelectBase } from "./selectBase"; import { IAnswersData, ICalculationResult } from "./visualizerBase"; export declare type HistogramIntervalMode = "auto" | "custom" | "decades" | "years" | "quarters" | "months" | "days"; export interface IHistogramInterval { start: number; end: number; label: string; } export declare function getBestIntervalMode(min: number, max: number): HistogramIntervalMode; export declare const intervalCalculators: { decades: (min: number, max: number) => any[]; years: (min: number, max: number) => any[]; months: (min: number, max: number) => any[]; quarters: (min: number, max: number) => any[]; days: (min: number, max: number) => any[]; }; export declare class HistogramModel extends SelectBase { protected valueType: "date" | "number" | "enum"; protected _cachedValues: Array<{ original: any; continuous: number; row: any; }>; private _continuousData; protected _cachedIntervals: Array<{ start: number; end: number; label: string; }>; protected _intervalPrecision: number; private showRunningTotalsBtn; private showGroupedBtn; private changeIntervalsModeSelector; private aggregateDataNameSelector; static IntervalsCount: number; static UseIntervalsFrom: number; constructor(question: Question, data: Array<{ [index: string]: any; }>, options?: Object, type?: string); private updateIntervalsModeSelector; private updateAggregateDataNameSelector; getQuestionValueType(question: Question, defaultValue?: string): "enum" | "date" | "number"; protected reset(): void; getContinuousValue(value: any): number; getString(value: number): string; protected toPrecision(value: number): number; getSelectedItemByText(itemText: string): ItemValue; /** * Updates visualizer data. */ updateData(data: Array<{ [index: string]: any; }>): void; protected onDataChanged(): void; protected onSelectionChanged(item: ItemValue): void; protected getContinuousValues(): { original: any; continuous: number; row: any; }[]; protected isSupportSoftUpdateContent(): boolean; protected isSupportMissingAnswers(): boolean; protected get needUseRateValues(): boolean; getValues(): Array; getLabels(): Array; get hasCustomIntervals(): boolean; get intervals(): Array<{ start: number; end: number; label: string; }>; intervalModes: HistogramIntervalMode[]; private _intervalsMode; get intervalsMode(): HistogramIntervalMode; set intervalsMode(val: HistogramIntervalMode); get allowChangeIntervals(): boolean; private _showRunningTotals; get showRunningTotals(): boolean; set showRunningTotals(val: boolean); private updateShowRunningTotalsBtn; private _showGrouped; get showGrouped(): boolean; set showGrouped(val: boolean); private updateShowGroupedBtn; get canShowGroupedDateSeries(): boolean; private _aggregateDataName; get aggregateDataName(): string; set aggregateDataName(val: string); get possibleAggregateDataNames(): Array; protected getCalculatedValuesCore(): ICalculationResult; getCalculatedValues(): Promise; private getGroupedDateAnswersData; /** * Returns object with all infotmation for data visualization: datasets, labels, colors, additional texts (percentage). */ getAnswersData(): Promise; private static _histogramDefaultState; getDefaultState(): any; getValueType(): "date" | "number" | "enum"; }