import type { TemporalUnit } from "../metabase-types/api";
import type { Bucket, Clause, ColumnMetadata, Query } from "./types";
export declare function temporalBucket(clause: Clause | ColumnMetadata): Bucket | null;
export declare function availableTemporalBuckets(query: Query, stageIndex: number, column: ColumnMetadata): Bucket[];
export declare function isTemporalBucketable(query: Query, stageIndex: number, column: ColumnMetadata): boolean;
export declare function withTemporalBucket(column: ColumnMetadata, bucket: Bucket | null): ColumnMetadata;
export declare function withDefaultTemporalBucket(query: Query, stageIndex: number, column: ColumnMetadata): ColumnMetadata;
export declare function defaultTemporalBucket(query: Query, stageIndex: number, column: ColumnMetadata): Bucket | null;
type IntervalAmount = number | "current" | "next" | "last";
export declare function describeTemporalInterval(n: IntervalAmount, unit?: TemporalUnit): string;
export declare function describeRelativeDatetime(n: IntervalAmount, unit?: TemporalUnit): string;
type RelativeDateRangeFormatOpts = {
    value: number | "current";
    unit: TemporalUnit;
    offsetValue?: number;
    offsetUnit?: TemporalUnit;
    includeCurrent?: boolean;
};
export declare function formatRelativeDateRange({ value, unit, offsetValue, offsetUnit, includeCurrent, }: RelativeDateRangeFormatOpts): string;
export declare function availableTemporalUnits(): TemporalUnit[];
export {};
