@gscdump/analysis 0.6.3 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,138 +1,11 @@
1
+ import * as _$_gscdump_engine_analyzer0 from "@gscdump/engine/analyzer";
2
+ import { Analyzer, Analyzer as Analyzer$1, AnalyzerCapabilityError, AnalyzerRegistry, AnalyzerRegistry as AnalyzerRegistry$1, AnalyzerRegistryInit, AnalyzerVariants, Capability, DefineAnalyzerOptions, DefinedAnalyzer, Plan, ReduceContext, ReduceCtx, Reducer, RowQueriesPlan, SqlExtraQuery, SqlPlan, SqlPlanSpec, TypedRowQuery, createAnalyzerRegistry, defineAnalyzer, runAnalyzerFromSource } from "@gscdump/engine/analyzer";
3
+ import { AnalysisParams, AnalysisParams as AnalysisParams$1, AnalysisResult, AnalysisResult as AnalysisResult$1, AnalysisTool, num } from "@gscdump/engine/analysis-types";
4
+ import { AnalysisPeriod, AnalysisPeriod as AnalysisPeriod$1, ComparisonMode, ComparisonPeriod, ComparisonPeriod as ComparisonPeriod$1, PadTimeseriesOptions, ResolveWindowOptions, ResolvedWindow, WindowPreset, comparisonOf, padTimeseries, periodOf, resolveWindow, windowToComparisonPeriod, windowToPeriod } from "@gscdump/engine/period";
1
5
  import { BuilderState } from "gscdump/query";
2
- import { GoogleSearchConsoleClient } from "gscdump";
3
- import { createEngine as createBrowserQuerySource } from "@gscdump/engine-wasm";
4
- import { AnalysisQuerySource, AnalysisQuerySource as AnalysisQuerySource$1, FileSet, QueryRow, QueryRow as QueryRow$1, RowQuerySource, SourceCapabilities, SqlQuerySource, isSqlQuerySource } from "@gscdump/engine/resolver";
6
+ import { AttachedTableRunner, AttachedTableRunner as AnalyzerRunner, AttachedTableSourceOptions, AttachedTableSourceOptions as BrowserAnalyzeOptions, ENGINE_QUERY_CAPABILITIES, EngineQuerySourceOptions, TypedQuery, createEngineQuerySource, queryComparisonRows, queryRows, rewriteForTableSource, runAnalyzerWithEngine, typedQuery } from "@gscdump/engine/source";
7
+ import { AnalysisQuerySource, AnalysisQuerySource as AnalysisQuerySource$1, ExecuteSqlOptions, FileSet, QueryRow, QueryRow as QueryRow$1, RowQuerySource, RowQuerySource as RowQuerySource$1, SourceCapabilities, SqlQuerySource, SqlQuerySource as SqlQuerySource$1, isSqlQuerySource } from "@gscdump/engine/resolver";
5
8
  import { PlannerCapabilities } from "gscdump/query/plan";
6
- import { createEngine as createSqliteQuerySource } from "@gscdump/engine-sqlite";
7
- import { Row, StorageEngine, TenantCtx } from "@gscdump/engine/contracts";
8
- import { AnalysisParams, AnalysisResult, AnalysisTool } from "gscdump/contracts";
9
- type SortOrder = 'asc' | 'desc';
10
- /** Base search metrics */
11
- interface BaseMetrics {
12
- clicks: number;
13
- impressions: number;
14
- ctr: number;
15
- position: number;
16
- }
17
- /** Keyword row from query */
18
- interface KeywordRow extends BaseMetrics {
19
- query: string;
20
- page?: string;
21
- }
22
- /** Page row from query */
23
- interface PageRow extends BaseMetrics {
24
- page: string;
25
- }
26
- /** Row with both query and page dimensions, both required */
27
- interface QueryPageRow extends BaseMetrics {
28
- query: string;
29
- page: string;
30
- }
31
- /** Date row from query */
32
- interface DateRow extends BaseMetrics {
33
- date: string;
34
- }
35
- /** Coerce arbitrary value (number, bigint, string, null) to number, defaulting to 0. */
36
- declare function num(v: unknown): number;
37
- /** Create a generic sorter for any metric type */
38
- declare function createSorter<T, M extends string>(getValue: (item: T, metric: M) => number, defaultMetric: M, defaultOrder?: SortOrder): (items: T[], sortBy?: M, sortOrder?: SortOrder) => T[];
39
- /**
40
- * Capabilities a Plan may require of its host. A dispatcher matches these
41
- * against a source's declared capabilities and rejects mismatches.
42
- */
43
- type Capability = 'executeSql' | 'partitionedParquet' | 'attachedTables' | 'regex' | 'windowTotals' | 'comparisonJoin';
44
- interface SqlExtraQuery {
45
- name: string;
46
- sql: string;
47
- params: unknown[];
48
- }
49
- /**
50
- * SQL-native plan: SQL string + placeholders, with optional extra file sets
51
- * and follow-up queries. Mirrors the existing `AnalyzerSpec` shape but
52
- * renamed for clarity under the unified contract.
53
- */
54
- interface SqlPlan {
55
- kind: 'sql';
56
- sql: string;
57
- params: unknown[];
58
- current: FileSet;
59
- previous?: FileSet;
60
- extraFiles?: Record<string, FileSet>;
61
- extraQueries?: SqlExtraQuery[];
62
- /** Emits direct table refs (browser-only). Dispatcher rejects for manifest path. */
63
- requiresAttachedTables?: boolean;
64
- }
65
- interface TypedRowQuery<T extends Row = Row> {
66
- state: BuilderState;
67
- /** Optional type tag for downstream narrowing. */
68
- rowType?: (row: Row) => T;
69
- }
70
- /**
71
- * Row-queries plan: a named set of typed `BuilderState` queries. A portable
72
- * dispatcher runs each against a source's `queryRows` and hands the row
73
- * collection to `reduce`.
74
- */
75
- interface RowQueriesPlan {
76
- kind: 'rows';
77
- queries: Record<string, TypedRowQuery>;
78
- }
79
- type Plan = SqlPlan | RowQueriesPlan;
80
- interface ReduceContext<TRow extends Row = Row> {
81
- params: AnalysisParams;
82
- /** Extra SQL-query results keyed by `SqlExtraQuery.name`. */
83
- extras?: Record<string, TRow[]>;
84
- }
85
- /**
86
- * Unified analyzer contract. `TRow` lets authors narrow from the default
87
- * `Row = Record<string, unknown>` to a typed row shape (e.g. `KeywordRow`)
88
- * when their reducer assumes specific columns exist — catches drift between
89
- * `build` (SELECT list) and `reduce` (column access) at compile time.
90
- */
91
- interface Analyzer<P extends AnalysisParams = AnalysisParams, R = unknown, TRow extends Row = Row> {
92
- /** Stable tool id (e.g. `striking-distance`, `opportunity`). */
93
- id: string;
94
- /** Capabilities a host source must provide. */
95
- requires: readonly Capability[];
96
- /** Pure: params → plan. Snapshot-testable. */
97
- build: (params: P) => Plan;
98
- /** Pure: rows + context → typed result + meta. */
99
- reduce: (rows: TRow[] | Record<string, TRow[]>, ctx: ReduceContext<TRow>) => {
100
- results: R;
101
- meta?: Record<string, unknown>;
102
- };
103
- }
104
- interface AnalyzerVariants {
105
- sql?: Analyzer;
106
- rows?: Analyzer;
107
- }
108
- interface AnalyzerRegistryInit {
109
- rows?: readonly Analyzer[];
110
- sql?: readonly Analyzer[];
111
- }
112
- interface AnalyzerRegistry {
113
- listAnalyzerIds: () => readonly string[];
114
- getAnalyzerVariants: (id: string) => AnalyzerVariants | undefined;
115
- resolveAnalyzer: (id: string, sourceSupportsSql: boolean) => Analyzer | undefined;
116
- listAnalyzersFor: (sourceSupportsSql: boolean) => readonly Analyzer[];
117
- listAnalyzerIdsFor: (source: {
118
- executeSql?: unknown;
119
- }) => readonly string[];
120
- }
121
- /**
122
- * Build an immutable registry from collections of row / SQL analyzers.
123
- * No global state; call this once per logical use (typically at startup
124
- * or per-request in a worker).
125
- */
126
- declare function createAnalyzerRegistry(init?: AnalyzerRegistryInit): AnalyzerRegistry;
127
- interface TypedQuery<TRow> {
128
- state: BuilderState;
129
- readonly __row?: TRow;
130
- }
131
- declare function queryRows<TRow = QueryRow$1>(source: AnalysisQuerySource$1, query: BuilderState | TypedQuery<TRow>): Promise<TRow[]>;
132
- declare function queryComparisonRows<TRow = QueryRow$1>(source: AnalysisQuerySource$1, current: BuilderState | TypedQuery<TRow>, previous: BuilderState | TypedQuery<TRow>): Promise<{
133
- current: TRow[];
134
- previous: TRow[];
135
- }>;
136
9
  type ActionSource = 'cannibalization' | 'striking-distance' | 'ctr-anomaly' | 'change-point' | 'opportunity';
137
10
  type Effort = 'low' | 'medium' | 'high';
138
11
  interface PriorityAction {
@@ -165,13 +38,13 @@ interface ActionPriorityRunOptions {
165
38
  sources?: ActionSource[];
166
39
  limit?: number;
167
40
  continueOnError?: boolean;
168
- paramsBySource?: Partial<Record<ActionSource, Omit<AnalysisParams, 'type'>>>;
41
+ paramsBySource?: Partial<Record<ActionSource, Omit<AnalysisParams$1, 'type'>>>;
169
42
  onSourceStatus?: (state: ActionPrioritySourceState) => void;
170
43
  }
171
44
  interface ActionPriorityAnalyzer {
172
- analyze: (params: AnalysisParams) => Promise<AnalysisResult>;
45
+ analyze: (params: AnalysisParams$1) => Promise<AnalysisResult$1>;
173
46
  }
174
- declare function normalizePriorityActions(source: ActionSource, result: AnalysisResult): PriorityAction[];
47
+ declare function normalizePriorityActions(source: ActionSource, result: AnalysisResult$1): PriorityAction[];
175
48
  declare function mergePriorityActions(all: PriorityAction[]): PriorityAction[];
176
49
  declare function scorePriorityActions(actions: PriorityAction[]): PriorityAction[];
177
50
  declare function analyzeActionPriority(analyzer: ActionPriorityAnalyzer, options?: ActionPriorityRunOptions): Promise<ActionPriorityResult>;
@@ -183,19 +56,41 @@ declare function analyzeActionPriority(analyzer: ActionPriorityAnalyzer, options
183
56
  * row-based implementation — `continueOnError` defaults to true, so the
184
57
  * overall run still produces whatever the other analyzers found.
185
58
  */
186
- declare function analyzeActionPriorityFromSource(source: AnalysisQuerySource, registry: AnalyzerRegistry, options?: ActionPriorityRunOptions): Promise<ActionPriorityResult>;
187
- declare class AnalyzerCapabilityError extends Error {
188
- readonly tool: string;
189
- readonly missing: readonly Capability[];
190
- constructor(tool: string, missing: readonly Capability[]);
191
- }
59
+ declare function analyzeActionPriorityFromSource(source: AnalysisQuerySource$1, registry: AnalyzerRegistry$1, options?: ActionPriorityRunOptions): Promise<ActionPriorityResult>;
60
+ declare const ROW_ANALYZERS: readonly Analyzer$1[];
192
61
  /**
193
- * Run an analyzer against a generic `AnalysisQuerySource`. The registry is
194
- * an explicit parameter — callers build one via `createAnalyzerRegistry` (or
195
- * reuse `defaultAnalyzerRegistry` from the main barrel).
62
+ * Domain row shapes + analysis utilities. Analyzer-call contracts
63
+ * (`AnalysisParams`, `AnalysisResult`, `AnalysisTool`, `num`) live in
64
+ * `@gscdump/engine/analysis-types`.
196
65
  */
197
- declare function runAnalyzerFromSource(source: AnalysisQuerySource, params: AnalysisParams, registry: AnalyzerRegistry): Promise<AnalysisResult>;
198
- declare const ROW_ANALYZERS: readonly Analyzer[];
66
+ type SortOrder = 'asc' | 'desc';
67
+ /** Base search metrics */
68
+ interface BaseMetrics {
69
+ clicks: number;
70
+ impressions: number;
71
+ ctr: number;
72
+ position: number;
73
+ }
74
+ /** Keyword row from query */
75
+ interface KeywordRow extends BaseMetrics {
76
+ query: string;
77
+ page?: string;
78
+ }
79
+ /** Page row from query */
80
+ interface PageRow extends BaseMetrics {
81
+ page: string;
82
+ }
83
+ /** Row with both query and page dimensions, both required */
84
+ interface QueryPageRow extends BaseMetrics {
85
+ query: string;
86
+ page: string;
87
+ }
88
+ /** Date row from query */
89
+ interface DateRow extends BaseMetrics {
90
+ date: string;
91
+ }
92
+ /** Create a generic sorter for any metric type */
93
+ declare function createSorter<T, M extends string>(getValue: (item: T, metric: M) => number, defaultMetric: M, defaultOrder?: SortOrder): (items: T[], sortBy?: M, sortOrder?: SortOrder) => T[];
199
94
  interface BrandSegmentationOptions {
200
95
  /** Brand terms to match against keywords (case-insensitive) */
201
96
  brandTerms: string[];
@@ -471,94 +366,39 @@ interface ZeroClickResult {
471
366
  ctr: number;
472
367
  position: number;
473
368
  }
474
- type WindowPreset = 'last-7d' | 'last-28d' | 'last-30d' | 'last-90d' | 'last-180d' | 'last-365d' | 'mtd' | 'ytd' | 'custom';
475
- type ComparisonMode = 'none' | 'prev-period' | 'yoy';
476
- interface ResolveWindowOptions {
477
- preset: WindowPreset;
478
- comparison?: ComparisonMode;
479
- anchor?: string;
480
- start?: string;
481
- end?: string;
482
- }
483
- interface ResolvedWindow {
484
- start: string;
485
- end: string;
486
- days: number;
487
- comparison?: {
488
- start: string;
489
- end: string;
490
- };
491
- }
492
- interface AnalysisPeriod {
493
- startDate: string;
494
- endDate: string;
495
- }
496
- interface ComparisonPeriod {
497
- current: AnalysisPeriod;
498
- previous: AnalysisPeriod;
499
- }
500
- declare function periodOf(params: AnalysisParams): AnalysisPeriod;
501
- declare function comparisonOf(params: AnalysisParams): ComparisonPeriod;
502
- declare function resolveWindow(opts: ResolveWindowOptions): ResolvedWindow;
503
- /** Convert a ResolvedWindow into the AnalysisPeriod / ComparisonPeriod shape. */
504
- declare function windowToPeriod(w: ResolvedWindow): AnalysisPeriod;
505
- declare function windowToComparisonPeriod(w: ResolvedWindow): ComparisonPeriod | undefined;
506
- interface PadTimeseriesOptions<T> {
507
- /** ISO date (YYYY-MM-DD), inclusive lower bound. */
508
- startDate: string;
509
- /** ISO date (YYYY-MM-DD), inclusive upper bound. */
510
- endDate: string;
511
- /**
512
- * Row to insert for missing dates. Defaults to `{ clicks: 0, impressions: 0, ctr: 0, position: 0 }`.
513
- * The `date` field is set automatically.
514
- */
515
- fill?: Omit<T, 'date'>;
516
- /** Row-field that carries the ISO date. Defaults to `date`. */
517
- dateKey?: string;
518
- }
519
- type DateRowShape = Record<string, unknown> & {
520
- date?: unknown;
521
- };
369
+ declare function analyzeInBrowser(runner: AttachedTableRunner, opts: AttachedTableSourceOptions, params: AnalysisParams$1): Promise<AnalysisResult$1>;
522
370
  /**
523
- * Pad rows so every calendar day in `[startDate, endDate]` appears at least
524
- * once. Existing dates keep all their rows (grouped timeseries safe).
371
+ * Default analyzer registry built from every in-tree analyzer: row analyzers
372
+ * plus DuckDB SQL analyzers. Convenience for callers who don't care about
373
+ * bundle size; edge / browser consumers should compose their own narrower
374
+ * registry via `createAnalyzerRegistry`.
525
375
  */
526
- declare function padTimeseries<T extends DateRowShape = DateRowShape>(rows: readonly T[], options: PadTimeseriesOptions<T>): T[];
376
+ declare const defaultAnalyzerRegistry: _$_gscdump_engine_analyzer0.AnalyzerRegistry;
527
377
  /**
528
378
  * Produce a canonical form of a search query for grouping near-duplicates.
529
379
  * Idempotent: `normalizeQuery(normalizeQuery(q)) === normalizeQuery(q)`.
530
380
  */
531
381
  declare function normalizeQuery(query: string): string;
532
- declare function analyzeFromSource(source: AnalysisQuerySource, params: AnalysisParams, registry: AnalyzerRegistry): Promise<AnalysisResult>;
533
- interface EngineQuerySourceOptions {
534
- engine: StorageEngine;
535
- ctx: TenantCtx;
382
+ declare function analyzeFromSource(source: AnalysisQuerySource$1, params: AnalysisParams$1, registry: AnalyzerRegistry$1): Promise<AnalysisResult$1>;
383
+ interface CompositeSourceOptions {
384
+ engine: SqlQuerySource$1;
385
+ live: AnalysisQuerySource$1;
386
+ site: {
387
+ oldestDateSynced: string | null;
388
+ newestDateSynced: string | null;
389
+ };
536
390
  }
391
+ declare function createCompositeSource(opts: CompositeSourceOptions): SqlQuerySource$1;
537
392
  /**
538
- * Wraps a storage engine as a {@link SqlQuerySource}. `queryRows` runs typed
539
- * builder-state queries; `executeSql` delegates to `engine.runSQL` and
540
- * requires `opts.fileSets` (with a `FILES` entry so the target table can be
541
- * resolved for partition lookup).
542
- */
543
- declare function createEngineQuerySource(options: EngineQuerySourceOptions): SqlQuerySource;
544
- /**
545
- * Convenience: wrap a storage engine + tenant ctx in a source and dispatch.
546
- * Equivalent to
547
- * `runAnalyzerFromSource(createEngineQuerySource({ engine, ctx }), params, registry)`.
393
+ * Permissive defaults: in-memory sources are usually test doubles, so they
394
+ * advertise every capability unless the test explicitly narrows them.
548
395
  */
549
- declare function runAnalyzerWithEngine(deps: {
550
- engine: StorageEngine;
551
- }, ctx: TenantCtx, params: AnalysisParams, registry: AnalyzerRegistry): Promise<AnalysisResult>;
552
- interface GscApiQuerySourceOptions {
553
- client: GoogleSearchConsoleClient;
554
- siteUrl: string;
555
- }
556
- declare function createGscApiQuerySource(options: GscApiQuerySourceOptions): RowQuerySource;
396
+ declare const IN_MEMORY_DEFAULT_CAPABILITIES: PlannerCapabilities;
557
397
  interface InMemoryQuerySourceOptions {
558
- queryRows: (state: BuilderState) => Promise<QueryRow[]> | QueryRow[];
398
+ queryRows: (state: BuilderState) => Promise<QueryRow$1[]> | QueryRow$1[];
559
399
  capabilities?: PlannerCapabilities;
560
400
  }
561
- declare function createInMemoryQuerySource(options: InMemoryQuerySourceOptions): RowQuerySource;
401
+ declare function createInMemoryQuerySource(options: InMemoryQuerySourceOptions): RowQuerySource$1;
562
402
  interface StrikingDistanceResult {
563
403
  keyword: string;
564
404
  page: string | null;
@@ -606,15 +446,16 @@ interface ComparisonQueryResult {
606
446
  interface OpportunityOptions {
607
447
  minImpressions?: number;
608
448
  }
609
- declare function queryAnalyticsFromSource(source: AnalysisQuerySource, period: AnalysisPeriod, options?: QueryOptions): Promise<QueryResult>;
610
- declare function queryComparisonFromSource(source: AnalysisQuerySource, periods: ComparisonPeriod, options?: QueryOptions): Promise<ComparisonQueryResult>;
611
- declare function analyzeStrikingDistanceFromSource(source: AnalysisQuerySource, period: AnalysisPeriod, options?: StrikingDistanceOptions): Promise<StrikingDistanceResult[]>;
612
- declare function analyzeOpportunityFromSource(source: AnalysisQuerySource, period: AnalysisPeriod, options?: OpportunityOptions): Promise<OpportunityResult[]>;
613
- declare function analyzeBrandSegmentationFromSource(source: AnalysisQuerySource, period: AnalysisPeriod, options: BrandSegmentationOptions): Promise<BrandSegmentationResult>;
614
- declare function analyzePageConcentrationFromSource(source: AnalysisQuerySource, period: AnalysisPeriod, options?: ConcentrationOptions): Promise<ConcentrationResult>;
615
- declare function analyzeKeywordConcentrationFromSource(source: AnalysisQuerySource, period: AnalysisPeriod, options?: ConcentrationOptions): Promise<ConcentrationResult>;
616
- declare function analyzeClusteringFromSource(source: AnalysisQuerySource, period: AnalysisPeriod, options?: ClusteringOptions): Promise<ClusteringResult>;
617
- declare function analyzeSeasonalityFromSource(source: AnalysisQuerySource, period: AnalysisPeriod, options?: SeasonalityOptions): Promise<SeasonalityResult>;
618
- declare function analyzeDecayFromSource(source: AnalysisQuerySource, periods: ComparisonPeriod, options?: DecayOptions): Promise<DecayResult[]>;
619
- declare function analyzeMoversFromSource(source: AnalysisQuerySource, periods: ComparisonPeriod, options?: MoversOptions): Promise<MoversResult>;
620
- export { type ActionPriorityAnalyzer, type ActionPriorityResult, type ActionPriorityRunOptions, type ActionPrioritySourceState, type ActionPrioritySourceStatus, type ActionSource, type AnalysisParams, type AnalysisPeriod, type AnalysisQuerySource, type AnalysisResult, type AnalysisTool, AnalyzerCapabilityError, type AnalyzerRegistry, type AnalyzerRegistryInit, type AnalyzerVariants, type BaseMetrics, type BrandSegmentationOptions, type BrandSegmentationResult, type BrandSummary, type CannibalizationCompetitor, type CannibalizationEvent, type CannibalizationOptions, type CannibalizationPage, type CannibalizationResult, type CannibalizationSortMetric, type ClusterType, type ClusteringOptions, type ClusteringResult, type ComparisonMode, type ComparisonPeriod, type ComparisonQueryResult, type ConcentrationInput, type ConcentrationItem, type ConcentrationOptions, type ConcentrationResult, type ConcentrationRiskLevel, type DateRow, type DecayInput, type DecayOptions, type DecayResult, type DecaySeriesPoint, type DecaySortMetric, type Effort, type KeywordCluster, type KeywordRow, type MonthlyData, type MoverData, type MoversInput, type MoversOptions, type MoversResult, type MoversSortMetric, type OpportunityResult, type PadTimeseriesOptions, type PageRow, type PriorityAction, type QueryDimension, type QueryOptions, type QueryPageRow, type QueryResult, type QueryRow, ROW_ANALYZERS, type ResolveWindowOptions, type ResolvedWindow, type RowQuerySource, type SeasonalityMetric, type SeasonalityOptions, type SeasonalityResult, type SortOrder, type SourceCapabilities, type SqlQuerySource, type StrikingDistanceOptions, type StrikingDistanceResult, type StrikingDistanceSortMetric, type WindowPreset, type ZeroClickResult, analyzeActionPriority, analyzeActionPriorityFromSource, analyzeBrandSegmentation, analyzeBrandSegmentationFromSource, analyzeCannibalization, analyzeClustering, analyzeClusteringFromSource, analyzeConcentration, analyzeDecay, analyzeDecayFromSource, analyzeFromSource, analyzeKeywordConcentration, analyzeKeywordConcentrationFromSource, analyzeMovers, analyzeMoversFromSource, analyzeOpportunityFromSource, analyzePageConcentration, analyzePageConcentrationFromSource, analyzeSeasonality, analyzeSeasonalityFromSource, analyzeStrikingDistance, analyzeStrikingDistanceFromSource, comparisonOf, createAnalyzerRegistry, createBrowserQuerySource, createEngineQuerySource, createGscApiQuerySource, createInMemoryQuerySource, createSorter, createSqliteQuerySource, isSqlQuerySource, mergePriorityActions, normalizePriorityActions, normalizeQuery, num, padTimeseries, periodOf, queryAnalyticsFromSource, queryComparisonFromSource, queryComparisonRows, queryRows, resolveWindow, runAnalyzerFromSource, runAnalyzerWithEngine, scorePriorityActions, windowToComparisonPeriod, windowToPeriod };
449
+ declare function queryAnalyticsFromSource(source: AnalysisQuerySource$1, period: AnalysisPeriod$1, options?: QueryOptions): Promise<QueryResult>;
450
+ declare function queryComparisonFromSource(source: AnalysisQuerySource$1, periods: ComparisonPeriod$1, options?: QueryOptions): Promise<ComparisonQueryResult>;
451
+ declare function analyzeStrikingDistanceFromSource(source: AnalysisQuerySource$1, period: AnalysisPeriod$1, options?: StrikingDistanceOptions): Promise<StrikingDistanceResult[]>;
452
+ declare function analyzeOpportunityFromSource(source: AnalysisQuerySource$1, period: AnalysisPeriod$1, options?: OpportunityOptions): Promise<OpportunityResult[]>;
453
+ declare function analyzeBrandSegmentationFromSource(source: AnalysisQuerySource$1, period: AnalysisPeriod$1, options: BrandSegmentationOptions): Promise<BrandSegmentationResult>;
454
+ declare function analyzePageConcentrationFromSource(source: AnalysisQuerySource$1, period: AnalysisPeriod$1, options?: ConcentrationOptions): Promise<ConcentrationResult>;
455
+ declare function analyzeKeywordConcentrationFromSource(source: AnalysisQuerySource$1, period: AnalysisPeriod$1, options?: ConcentrationOptions): Promise<ConcentrationResult>;
456
+ declare function analyzeClusteringFromSource(source: AnalysisQuerySource$1, period: AnalysisPeriod$1, options?: ClusteringOptions): Promise<ClusteringResult>;
457
+ declare function analyzeSeasonalityFromSource(source: AnalysisQuerySource$1, period: AnalysisPeriod$1, options?: SeasonalityOptions): Promise<SeasonalityResult>;
458
+ declare function analyzeDecayFromSource(source: AnalysisQuerySource$1, periods: ComparisonPeriod$1, options?: DecayOptions): Promise<DecayResult[]>;
459
+ declare function analyzeMoversFromSource(source: AnalysisQuerySource$1, periods: ComparisonPeriod$1, options?: MoversOptions): Promise<MoversResult>;
460
+ declare const SQL_ANALYZERS: readonly Analyzer$1[];
461
+ export { type ActionPriorityAnalyzer, type ActionPriorityResult, type ActionPriorityRunOptions, type ActionPrioritySourceState, type ActionPrioritySourceStatus, type ActionSource, type AnalysisParams, type AnalysisPeriod, type AnalysisQuerySource, type AnalysisResult, type AnalysisTool, type Analyzer, AnalyzerCapabilityError, type AnalyzerRegistry, type AnalyzerRegistryInit, type AnalyzerRunner, type AnalyzerVariants, type BaseMetrics, type BrandSegmentationOptions, type BrandSegmentationResult, type BrandSummary, type BrowserAnalyzeOptions, type CannibalizationCompetitor, type CannibalizationEvent, type CannibalizationOptions, type CannibalizationPage, type CannibalizationResult, type CannibalizationSortMetric, type Capability, type ClusterType, type ClusteringOptions, type ClusteringResult, type ComparisonMode, type ComparisonPeriod, type ComparisonQueryResult, type CompositeSourceOptions, type ConcentrationInput, type ConcentrationItem, type ConcentrationOptions, type ConcentrationResult, type ConcentrationRiskLevel, type DateRow, type DecayInput, type DecayOptions, type DecayResult, type DecaySeriesPoint, type DecaySortMetric, type DefineAnalyzerOptions, type DefinedAnalyzer, ENGINE_QUERY_CAPABILITIES, type Effort, type EngineQuerySourceOptions, type ExecuteSqlOptions, type FileSet, IN_MEMORY_DEFAULT_CAPABILITIES, type InMemoryQuerySourceOptions, type KeywordCluster, type KeywordRow, type MonthlyData, type MoverData, type MoversInput, type MoversOptions, type MoversResult, type MoversSortMetric, type OpportunityResult, type PadTimeseriesOptions, type PageRow, type Plan, type PriorityAction, type QueryDimension, type QueryOptions, type QueryPageRow, type QueryResult, type QueryRow, ROW_ANALYZERS, type ReduceContext, type ReduceCtx, type Reducer, type ResolveWindowOptions, type ResolvedWindow, type RowQueriesPlan, type RowQuerySource, SQL_ANALYZERS, type SeasonalityMetric, type SeasonalityOptions, type SeasonalityResult, type SortOrder, type SourceCapabilities, type SqlExtraQuery, type SqlPlan, type SqlPlanSpec, type SqlQuerySource, type StrikingDistanceOptions, type StrikingDistanceResult, type StrikingDistanceSortMetric, type TypedQuery, type TypedRowQuery, type WindowPreset, type ZeroClickResult, analyzeActionPriority, analyzeActionPriorityFromSource, analyzeBrandSegmentation, analyzeBrandSegmentationFromSource, analyzeCannibalization, analyzeClustering, analyzeClusteringFromSource, analyzeConcentration, analyzeDecay, analyzeDecayFromSource, analyzeFromSource, analyzeInBrowser, analyzeKeywordConcentration, analyzeKeywordConcentrationFromSource, analyzeMovers, analyzeMoversFromSource, analyzeOpportunityFromSource, analyzePageConcentration, analyzePageConcentrationFromSource, analyzeSeasonality, analyzeSeasonalityFromSource, analyzeStrikingDistance, analyzeStrikingDistanceFromSource, comparisonOf, createAnalyzerRegistry, createCompositeSource, createEngineQuerySource, createInMemoryQuerySource, createSorter, defaultAnalyzerRegistry, defineAnalyzer, isSqlQuerySource, mergePriorityActions, normalizePriorityActions, normalizeQuery, num, padTimeseries, periodOf, queryAnalyticsFromSource, queryComparisonFromSource, queryComparisonRows, queryRows, resolveWindow, rewriteForTableSource, runAnalyzerFromSource, runAnalyzerWithEngine, scorePriorityActions, typedQuery, windowToComparisonPeriod, windowToPeriod };