import { PeriodGranularity, PeriodTab, PeriodWeekendOption } from "./enum";
export declare type Nullable<T> = T | null | undefined | void;
/**
 * 时间类型
 */
export interface PeriodTime {
    /**
     * tab = PeriodTab.SPECIFIC 时生效
     * 到天级就行
     */
    timestamp: number;
    /**
     * tab = PeriodTab.RECENT 时生效
     * N天前中的N
     */
    amount: number;
    /**
     * tab = PeriodTab.RECENT 时生效
     * N天前中的天
     */
    unit: PeriodGranularity;
    hour: number;
    minute?: number;
    tab: PeriodTab;
}
export interface PeriodValue {
    granularity: PeriodGranularity;
    weekStart: number;
    beginTime: PeriodTime;
    endTime: PeriodTime;
    /**
     * 快捷选项，为空时默认选中 custom
     */
    shortcut?: string;
    /**
     * 对比时间的快捷选项，为空时关闭对比功能
     */
    contrastShortcut?: Nullable<string>;
    /**
     * 当 contrastShortcut === custom 时启用，代表被对比的结束时间戳
     */
    contrastEndTime?: number;
    /**
     * 当 contrastShortcut === relative 时启用，代表 N 天前
     */
    contrastRelativeAmount?: number;
    weekendOption?: PeriodWeekendOption;
}
export interface GlobalDSLParamsPeriod extends PeriodValue {
    type?: 'past_range';
}
