/***
 *    d8888b. d88888b d88888b d888888b d8b   db d88888b d8888b. .d8888.
 *    88  `8D 88'     88'       `88'   888o  88 88'     88  `8D 88'  YP
 *    88oobY' 88ooooo 88ooo      88    88V8o 88 88ooooo 88oobY' `8bo.
 *    88`8b   88~~~~~ 88~~~      88    88 V8o88 88~~~~~ 88`8b     `Y8b.
 *    88 `88. 88.     88        .88.   88  V888 88.     88 `88. db   8D
 *    88   YD Y88888P YP      Y888888P VP   V8P Y88888P 88   YD `8888Y'
 *
 *


import { IRefinerLayer, IRefiners, IItemRefiners, IRefinerStats, RefineRuleValues,
  IRefinerRules, IRefinerStatType, RefinerStatTypes, IRefinerStat } from '@mikezimm/npmfunctions/dist/Refiners/IRefiners';

import { buildKeyText, refinerRuleItems } from '@mikezimm/npmfunctions/dist/Refiners/IRefiners';

import { IRefinerRulesStrs, IRefinerRulesStrs, IRefinerRulesStrs, IRefinerRulesStrs, IRefinerRulesStrs } from '@mikezimm/npmfunctions/dist/Refiners/IRefiners';
import { RefinerRulesStrs, RefinerRulesStrs, RefinerRulesStrs, RefinerRulesStrs, RefinerRulesStrs } from '@mikezimm/npmfunctions/dist/Refiners/IRefiners';

import { IRefinerRulesStrs, IRefinerRulesInts, IRefinerRulesNums, IRefinerRulesTime, IRefinerRulesUser, IRefinerRulesEXPE, IRefinerRulesNone } from '@mikezimm/npmfunctions/dist/Refiners/IRefiners';
import { RefinerRulesStrs, RefinerRulesInts, RefinerRulesNums, RefinerRulesTime, RefinerRulesUser, RefinerRulesEXPE, RefinerRulesNone } from '@mikezimm/npmfunctions/dist/Refiners/IRefiners';

*/
import { ICSSChartTypes } from '../../CSSCharts/ICSSCharts';
export type IRefinerRules = RefineRuleValues[];
/**
 * 20252-01-29:  added avgDaysAgo and avgMonthsAgo for drilldown charts
 *  https://github.com/mikezimm/drilldown7/issues/241
 */
export type IRefinerStatType = 'sum' | 'avg' | 'max' | 'min' | 'count' | 'avgDaysAgo' | 'avgMonthsAgo' | 'timelineDays' | 'timelineMonths' | 'daysAgo' | 'monthsAgo' | 'demo' | 'eval';
export declare const RefinerStatTypes: IRefinerStatType[];
export interface IRefinerStat {
    primaryField: string;
    secondField?: string;
    title: string;
    stat: IRefinerStatType;
    chartTypes: ICSSChartTypes[];
    isCollapsed: number;
    consumer: 1 | 2 | 3;
    eval?: string;
    stylesChart?: any;
    stylesTitle?: any;
    stylesRow?: any;
    stylesBlock?: any;
    stylesLabel?: any;
    stylesValue?: any;
    stylesFigure?: any;
    stylesGraphic?: any;
}
export interface IRefinerStats {
    stats: IRefinerStat[];
}
export type IRefinerRulesStrs = 'parseBySemiColons' | 'parseByCommas' | 'reverseOrderStr' | 'reverseOrderNum';
export type IRefinerRulesFiles = 'folderStructure';
export type IRefinerRulesInts = 'mathCeiling' | 'mathFloor' | 'mathRound' | 'groupBy10s' | 'groupBy100s' | 'groupBy1000s' | 'groupByMillions';
export type IRefinerRulesNums = 'textAsNumber' | 'numberAsText' | '<log10Group' | '>log10Group' | 'log10e3';
export type IRefinerRulesTime = 'isDate' | 'groupByString' | 'groupByDays' | 'groupByWeeks' | 'groupByMonthsMMM' | 'groupByMonthsYYMM' | 'groupByYears' | 'groupByDayOfWeek' | 'groupByDateBuckets';
export type IRefinerRulesUser = 'groupByUsers';
export type IRefinerRulesEXPE = 'groupByDaysDDD';
export type IRefinerRulesNone = 'invalidRules';
export type IRefinerRulesPane = IRefinerRulesStrs | IRefinerRulesFiles | IRefinerRulesInts | IRefinerRulesNums | IRefinerRulesTime | IRefinerRulesUser;
export type RefineRuleValues = IRefinerRulesStrs | IRefinerRulesFiles | IRefinerRulesInts | IRefinerRulesNums | IRefinerRulesTime | IRefinerRulesUser | IRefinerRulesEXPE | IRefinerRulesNone;
export declare const RefinerRulesStrs: IRefinerRulesStrs[];
export declare const RefinerRulesFiles: IRefinerRulesFiles[];
export declare const RefinerRulesInts: IRefinerRulesInts[];
export declare const RefinerRulesNums: IRefinerRulesNums[];
export declare const RefinerRulesTime: IRefinerRulesTime[];
export declare const RefinerRulesUser: IRefinerRulesUser[];
export declare const RefinerRulesEXPE: IRefinerRulesEXPE[];
export declare const RefinerRulesNone: IRefinerRulesNone[];
export declare const RefinerRulesPane: (IRefinerRulesStrs | "folderStructure" | IRefinerRulesInts | IRefinerRulesNums | IRefinerRulesTime | "groupByUsers")[];
export declare const RefinerRulesAll: (IRefinerRulesStrs | "folderStructure" | IRefinerRulesInts | IRefinerRulesNums | IRefinerRulesTime | "groupByUsers" | "groupByDaysDDD" | "invalidRules")[];
export interface IItemRefiners {
    lev0: any[];
    lev1: any[];
    lev2: any[];
    comments: string[];
    stat0?: number;
    stat1?: number;
    stat2?: number;
    stat3?: number;
    stat4?: number;
    stat5?: number;
    stat6?: number;
    stat7?: number;
    stat8?: number;
    stat9?: number;
    stat0Count?: number;
    stat1Count?: number;
    stat2Count?: number;
    stat3Count?: number;
    stat4Count?: number;
    stat5Count?: number;
    stat6Count?: number;
    stat7Count?: number;
    stat8Count?: number;
    stat9Count?: number;
}
export interface IRefiners {
    thisKey: string;
    multiCount: number;
    itemCount: number;
    childrenKeys: string[];
    childrenObjs: IRefinerLayer[];
    childrenMultiCounts: number[];
    childrenCounts: number[];
    stat0?: number;
    stat1?: number;
    stat2?: number;
    stat3?: number;
    stat4?: number;
    stat5?: number;
    stat6?: number;
    stat7?: number;
    stat8?: number;
    stat9?: number;
    stat0Count?: number;
    stat1Count?: number;
    stat2Count?: number;
    stat3Count?: number;
    stat4Count?: number;
    stat5Count?: number;
    stat6Count?: number;
    stat7Count?: number;
    stat8Count?: number;
    stat9Count?: number;
}
export interface IRefinerLayer {
    thisKey: string;
    multiCount: number;
    itemCount: number;
    childrenKeys: string[];
    childrenObjs?: IRefinerLayer[];
    childrenMultiCounts?: number[];
    childrenCounts?: number[];
    stat0?: number;
    stat1?: number;
    stat2?: number;
    stat3?: number;
    stat4?: number;
    stat5?: number;
    stat6?: number;
    stat7?: number;
    stat8?: number;
    stat9?: number;
    stat0Count?: number;
    stat1Count?: number;
    stat2Count?: number;
    stat3Count?: number;
    stat4Count?: number;
    stat5Count?: number;
    stat6Count?: number;
    stat7Count?: number;
    stat8Count?: number;
    stat9Count?: number;
}
//# sourceMappingURL=IRefiners.d.ts.map