import { type Metric } from './field';
import { type AdditionalMetric } from './metricQuery';
import { TimeFrames } from './timeFrames';
type PreviousPeriod = {
    type: 'previousPeriod';
    granularity: TimeFrames;
    periodOffset?: number;
};
export type PeriodOverPeriodComparison = PreviousPeriod & {
    field: {
        name: string;
        table: string;
    };
};
export declare const validPeriodOverPeriodGranularities: TimeFrames[];
export declare const periodOverPeriodGranularityLabels: Record<TimeFrames, string>;
export declare const isSupportedPeriodOverPeriodGranularity: (granularity: TimeFrames) => boolean;
export declare const buildPopAdditionalMetricName: (baseMetricName: string) => string;
export declare const getPopPeriodLabel: (granularity: TimeFrames, periodOffset: number) => string;
export declare const buildPopAdditionalMetric: ({ metric, timeDimensionId, granularity, periodOffset, }: {
    metric: Pick<Metric, "table" | "name" | "label" | "description" | "type" | "sql" | "round" | "compact" | "format">;
    timeDimensionId: string;
    granularity: TimeFrames;
    periodOffset: number;
}) => {
    additionalMetric: AdditionalMetric;
    metricId: string;
};
export declare const getGranularityRank: (granularity: TimeFrames) => number;
export {};
//# sourceMappingURL=periodOverPeriodComparison.d.ts.map