import { SupportedDbtAdapter } from '../types/dbt';
import { DimensionType } from '../types/field';
import { TimeFrames } from '../types/timeFrames';
export declare enum WeekDay {
    MONDAY = 0,
    TUESDAY = 1,
    WEDNESDAY = 2,
    THURSDAY = 3,
    FRIDAY = 4,
    SATURDAY = 5,
    SUNDAY = 6
}
export declare const isWeekDay: (value: unknown) => value is WeekDay;
export declare const getSqlForTruncatedDate: TimeFrameConfig['getSql'];
type TimeFrameConfig = {
    getLabel: () => string;
    getDimensionType: (fallback: DimensionType) => DimensionType;
    getSql: (adapterType: SupportedDbtAdapter, timeFrame: TimeFrames, originalSql: string, type: DimensionType, startOfWeek?: WeekDay | null) => string;
    getAxisMinInterval: () => number | null;
    getAxisLabelFormatter: () => Record<string, string> | null;
};
export declare const timeFrameConfigs: Record<TimeFrames, TimeFrameConfig>;
export declare const getDefaultTimeFrames: (type: DimensionType) => TimeFrames[];
export declare const isTimeInterval: (value: string) => value is TimeFrames;
export declare const validateTimeFrames: (values: string[]) => TimeFrames[];
export declare const sortTimeFrames: (a: TimeFrames, b: TimeFrames) => number;
export declare const getDateDimension: (dimensionId: string) => {
    baseDimensionId: string;
    newTimeFrame: TimeFrames;
} | {
    baseDimensionId?: undefined;
    newTimeFrame?: undefined;
};
export {};
//# sourceMappingURL=timeFrames.d.ts.map