import { AnalysisParams } from "../analysis-types.mjs"; import { ComparisonMode, ResolveWindowOptions, ResolvedWindow, WindowPreset, resolveWindow } from "gscdump/dates"; export interface AnalysisPeriod { startDate: string; endDate: string; } export interface ComparisonPeriod { current: AnalysisPeriod; previous: AnalysisPeriod; } export declare function defaultEndDate(): string; export declare function periodOf(params: AnalysisParams): AnalysisPeriod; export declare function comparisonOf(params: AnalysisParams): ComparisonPeriod; export interface PadTimeseriesOptions { /** ISO date (YYYY-MM-DD), inclusive lower bound. */ startDate: string; /** ISO date (YYYY-MM-DD), inclusive upper bound. */ endDate: string; /** * Row to insert for missing dates. Defaults to `{ clicks: 0, impressions: 0, ctr: 0, position: 0 }`. * The `date` field is set automatically. */ fill?: Omit; /** Row-field that carries the ISO date. Defaults to `date`. */ dateKey?: string; } type DateRowShape = Record & { date?: unknown; }; /** * Pad rows so every calendar day in `[startDate, endDate]` appears at least * once. Existing dates keep all their rows (grouped timeseries safe). */ export declare function padTimeseries(rows: readonly T[], options: PadTimeseriesOptions): T[]; export { type ComparisonMode, type ResolveWindowOptions, type ResolvedWindow, type WindowPreset, resolveWindow };