import { type Account } from '../types/auth';
import { type MetricQuery } from '../types/metricQuery';
/**
 * Returns the account's user-level timezone preference, or null if the
 * account belongs to an anonymous viewer (embeds / JWT) where no profile
 * preference exists.
 */
export declare function getAccountUserTimezone(account: Account): string | null;
/**
 * Resolves the effective timezone for a query using the hierarchy:
 *   metricQuery.timezone → user timezone → project timezone → 'UTC'
 *
 * The project timezone (from getQueryTimezoneForProject) already handles
 * the project → config → 'UTC' fallback. The chart-level override sits on
 * top, and the user's profile timezone slots between the two so a viewer
 * with a personal preference sees their zone whenever the chart doesn't
 * pin one.
 *
 * Validates the resolved timezone to prevent SQL injection — the result
 * is interpolated into warehouse SQL strings (e.g., AT TIME ZONE '...').
 */
export declare function resolveQueryTimezone(metricQuery: Pick<MetricQuery, 'timezone'>, projectTimezone: string, userTimezone?: string | null): string;
//# sourceMappingURL=resolveQueryTimezone.d.ts.map