seo 0.2.14 → 0.2.15

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.ts CHANGED
@@ -244,6 +244,13 @@ declare const providerPreferenceSchema: z.ZodEnum<{
244
244
  cheap: "cheap";
245
245
  authoritative: "authoritative";
246
246
  }>;
247
+ declare const providerSpendLimitOverridesSchema: z.ZodObject<{
248
+ dailyNoticeMicros: z.ZodOptional<z.ZodNumber>;
249
+ dailyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
250
+ monthlyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
251
+ maxRequestsPerReport: z.ZodOptional<z.ZodNumber>;
252
+ maxRowsPerReport: z.ZodOptional<z.ZodNumber>;
253
+ }, z.core.$strict>;
247
254
  declare const analyticsConnectionsSchema: z.ZodDefault<z.ZodObject<{
248
255
  google: z.ZodOptional<z.ZodObject<{
249
256
  propertyId: z.ZodString;
@@ -322,6 +329,29 @@ declare const configSchema: z.ZodObject<{
322
329
  cheap: "cheap";
323
330
  authoritative: "authoritative";
324
331
  }>>;
332
+ costLimits: z.ZodOptional<z.ZodObject<{
333
+ dataforseo: z.ZodOptional<z.ZodObject<{
334
+ dailyNoticeMicros: z.ZodOptional<z.ZodNumber>;
335
+ dailyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
336
+ monthlyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
337
+ maxRequestsPerReport: z.ZodOptional<z.ZodNumber>;
338
+ maxRowsPerReport: z.ZodOptional<z.ZodNumber>;
339
+ }, z.core.$strict>>;
340
+ semrush: z.ZodOptional<z.ZodObject<{
341
+ dailyNoticeMicros: z.ZodOptional<z.ZodNumber>;
342
+ dailyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
343
+ monthlyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
344
+ maxRequestsPerReport: z.ZodOptional<z.ZodNumber>;
345
+ maxRowsPerReport: z.ZodOptional<z.ZodNumber>;
346
+ }, z.core.$strict>>;
347
+ ahrefs: z.ZodOptional<z.ZodObject<{
348
+ dailyNoticeMicros: z.ZodOptional<z.ZodNumber>;
349
+ dailyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
350
+ monthlyHardLimitMicros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
351
+ maxRequestsPerReport: z.ZodOptional<z.ZodNumber>;
352
+ maxRowsPerReport: z.ZodOptional<z.ZodNumber>;
353
+ }, z.core.$strict>>;
354
+ }, z.core.$strict>>;
325
355
  }, z.core.$strip>>;
326
356
  security: z.ZodDefault<z.ZodObject<{
327
357
  useKeychain: z.ZodDefault<z.ZodBoolean>;
@@ -658,6 +688,7 @@ interface ExtractedPage {
658
688
  }
659
689
  //#endregion
660
690
  //#region packages/core/src/types/providers.d.ts
691
+ /** @deprecated Use ProviderCostEvidence from providers/contracts. */
661
692
  interface CreditUsage {
662
693
  provider: string;
663
694
  units: number;
@@ -666,16 +697,19 @@ interface CreditUsage {
666
697
  calls: number;
667
698
  cacheHits?: number;
668
699
  }
700
+ /** @deprecated Use ProviderEvidence from providers/contracts. */
669
701
  interface ProviderResult<T> {
670
702
  data: T;
671
703
  usage: CreditUsage;
672
704
  warnings?: string[];
673
705
  cached?: boolean;
674
706
  }
707
+ /** @deprecated Use a capability-specific request type. */
675
708
  interface ProviderOpts {
676
709
  database?: string;
677
710
  refresh?: boolean;
678
711
  }
712
+ /** @deprecated Use KeywordMetric from providers/contracts. */
679
713
  interface KeywordOverview {
680
714
  phrase: string;
681
715
  volume?: number;
@@ -685,6 +719,7 @@ interface KeywordOverview {
685
719
  intent?: string;
686
720
  results?: number;
687
721
  }
722
+ /** @deprecated Use a capability-specific row type from providers/contracts. */
688
723
  interface KeywordRow {
689
724
  phrase: string;
690
725
  volume?: number;
@@ -695,6 +730,11 @@ interface KeywordRow {
695
730
  domain?: string;
696
731
  position?: number;
697
732
  }
733
+ /**
734
+ * @deprecated Use the small capability interfaces from providers/contracts.
735
+ * This compatibility contract remains until the registered reports replace
736
+ * the provider-specific MCP passthrough.
737
+ */
698
738
  interface KeywordDataProvider {
699
739
  readonly name: string;
700
740
  readonly capabilities: {
@@ -725,9 +765,11 @@ interface KeywordDataProvider {
725
765
  resetAt?: string;
726
766
  }>;
727
767
  }
768
+ /** @deprecated Use a capability-specific provider contract. */
728
769
  interface SerpProvider {
729
770
  readonly name: string;
730
771
  }
772
+ /** @deprecated Use a capability-specific provider contract. */
731
773
  interface BacklinkProvider {
732
774
  readonly name: string;
733
775
  }
@@ -2239,7 +2281,7 @@ declare function analyzePageOpportunitiesFromRows(input: PageOpportunityAnalysis
2239
2281
  type PageOpportunityFocus = PageOpportunityType | 'no-data';
2240
2282
  //#endregion
2241
2283
  //#region packages/core/src/analyze/page-opportunities.d.ts
2242
- type SearchAnalytics$10 = typeof querySearchAnalytics;
2284
+ type SearchAnalytics$11 = typeof querySearchAnalytics;
2243
2285
  type FetchPage$4 = typeof fetchPage;
2244
2286
  type ExtractPage$3 = typeof extractPage;
2245
2287
  type PageOpportunityInput = {
@@ -2311,7 +2353,7 @@ type PageOpportunityReport = {
2311
2353
  recommendations: string[];
2312
2354
  };
2313
2355
  type PageOpportunityDependencies = {
2314
- searchAnalytics: SearchAnalytics$10;
2356
+ searchAnalytics: SearchAnalytics$11;
2315
2357
  fetch: FetchPage$4;
2316
2358
  extract: ExtractPage$3;
2317
2359
  now: () => Date;
@@ -4816,8 +4858,8 @@ declare const crawlPageSnapshotSchema: z.ZodObject<{
4816
4858
  status: z.ZodOptional<z.ZodNumber>;
4817
4859
  error: z.ZodOptional<z.ZodString>;
4818
4860
  state: z.ZodOptional<z.ZodEnum<{
4819
- unavailable: "unavailable";
4820
4861
  available: "available";
4862
+ unavailable: "unavailable";
4821
4863
  "rate-limited": "rate-limited";
4822
4864
  "confirmed-broken": "confirmed-broken";
4823
4865
  transient: "transient";
@@ -5980,8 +6022,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5980
6022
  status: z.ZodOptional<z.ZodNumber>;
5981
6023
  error: z.ZodOptional<z.ZodString>;
5982
6024
  state: z.ZodOptional<z.ZodEnum<{
5983
- unavailable: "unavailable";
5984
6025
  available: "available";
6026
+ unavailable: "unavailable";
5985
6027
  "rate-limited": "rate-limited";
5986
6028
  "confirmed-broken": "confirmed-broken";
5987
6029
  transient: "transient";
@@ -6377,8 +6419,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6377
6419
  deferredUrls: z.ZodNumber;
6378
6420
  limit: z.ZodNumber;
6379
6421
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
6380
- unavailable: "unavailable";
6381
6422
  available: "available";
6423
+ unavailable: "unavailable";
6382
6424
  "rate-limited": "rate-limited";
6383
6425
  "confirmed-broken": "confirmed-broken";
6384
6426
  transient: "transient";
@@ -7429,8 +7471,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7429
7471
  status: z.ZodOptional<z.ZodNumber>;
7430
7472
  error: z.ZodOptional<z.ZodString>;
7431
7473
  state: z.ZodOptional<z.ZodEnum<{
7432
- unavailable: "unavailable";
7433
7474
  available: "available";
7475
+ unavailable: "unavailable";
7434
7476
  "rate-limited": "rate-limited";
7435
7477
  "confirmed-broken": "confirmed-broken";
7436
7478
  transient: "transient";
@@ -7826,8 +7868,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7826
7868
  deferredUrls: z.ZodNumber;
7827
7869
  limit: z.ZodNumber;
7828
7870
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
7829
- unavailable: "unavailable";
7830
7871
  available: "available";
7872
+ unavailable: "unavailable";
7831
7873
  "rate-limited": "rate-limited";
7832
7874
  "confirmed-broken": "confirmed-broken";
7833
7875
  transient: "transient";
@@ -8878,8 +8920,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8878
8920
  status: z.ZodOptional<z.ZodNumber>;
8879
8921
  error: z.ZodOptional<z.ZodString>;
8880
8922
  state: z.ZodOptional<z.ZodEnum<{
8881
- unavailable: "unavailable";
8882
8923
  available: "available";
8924
+ unavailable: "unavailable";
8883
8925
  "rate-limited": "rate-limited";
8884
8926
  "confirmed-broken": "confirmed-broken";
8885
8927
  transient: "transient";
@@ -9275,8 +9317,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9275
9317
  deferredUrls: z.ZodNumber;
9276
9318
  limit: z.ZodNumber;
9277
9319
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
9278
- unavailable: "unavailable";
9279
9320
  available: "available";
9321
+ unavailable: "unavailable";
9280
9322
  "rate-limited": "rate-limited";
9281
9323
  "confirmed-broken": "confirmed-broken";
9282
9324
  transient: "transient";
@@ -10329,8 +10371,8 @@ declare const crawlerSchemas: {
10329
10371
  status: z.ZodOptional<z.ZodNumber>;
10330
10372
  error: z.ZodOptional<z.ZodString>;
10331
10373
  state: z.ZodOptional<z.ZodEnum<{
10332
- unavailable: "unavailable";
10333
10374
  available: "available";
10375
+ unavailable: "unavailable";
10334
10376
  "rate-limited": "rate-limited";
10335
10377
  "confirmed-broken": "confirmed-broken";
10336
10378
  transient: "transient";
@@ -10726,8 +10768,8 @@ declare const crawlerSchemas: {
10726
10768
  deferredUrls: z.ZodNumber;
10727
10769
  limit: z.ZodNumber;
10728
10770
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
10729
- unavailable: "unavailable";
10730
10771
  available: "available";
10772
+ unavailable: "unavailable";
10731
10773
  "rate-limited": "rate-limited";
10732
10774
  "confirmed-broken": "confirmed-broken";
10733
10775
  transient: "transient";
@@ -11778,8 +11820,8 @@ declare const crawlerSchemas: {
11778
11820
  status: z.ZodOptional<z.ZodNumber>;
11779
11821
  error: z.ZodOptional<z.ZodString>;
11780
11822
  state: z.ZodOptional<z.ZodEnum<{
11781
- unavailable: "unavailable";
11782
11823
  available: "available";
11824
+ unavailable: "unavailable";
11783
11825
  "rate-limited": "rate-limited";
11784
11826
  "confirmed-broken": "confirmed-broken";
11785
11827
  transient: "transient";
@@ -12175,8 +12217,8 @@ declare const crawlerSchemas: {
12175
12217
  deferredUrls: z.ZodNumber;
12176
12218
  limit: z.ZodNumber;
12177
12219
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
12178
- unavailable: "unavailable";
12179
12220
  available: "available";
12221
+ unavailable: "unavailable";
12180
12222
  "rate-limited": "rate-limited";
12181
12223
  "confirmed-broken": "confirmed-broken";
12182
12224
  transient: "transient";
@@ -13227,8 +13269,8 @@ declare const crawlerSchemas: {
13227
13269
  status: z.ZodOptional<z.ZodNumber>;
13228
13270
  error: z.ZodOptional<z.ZodString>;
13229
13271
  state: z.ZodOptional<z.ZodEnum<{
13230
- unavailable: "unavailable";
13231
13272
  available: "available";
13273
+ unavailable: "unavailable";
13232
13274
  "rate-limited": "rate-limited";
13233
13275
  "confirmed-broken": "confirmed-broken";
13234
13276
  transient: "transient";
@@ -13624,8 +13666,8 @@ declare const crawlerSchemas: {
13624
13666
  deferredUrls: z.ZodNumber;
13625
13667
  limit: z.ZodNumber;
13626
13668
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
13627
- unavailable: "unavailable";
13628
13669
  available: "available";
13670
+ unavailable: "unavailable";
13629
13671
  "rate-limited": "rate-limited";
13630
13672
  "confirmed-broken": "confirmed-broken";
13631
13673
  transient: "transient";
@@ -14810,8 +14852,8 @@ declare const crawlerSchemas: {
14810
14852
  status: z.ZodOptional<z.ZodNumber>;
14811
14853
  error: z.ZodOptional<z.ZodString>;
14812
14854
  state: z.ZodOptional<z.ZodEnum<{
14813
- unavailable: "unavailable";
14814
14855
  available: "available";
14856
+ unavailable: "unavailable";
14815
14857
  "rate-limited": "rate-limited";
14816
14858
  "confirmed-broken": "confirmed-broken";
14817
14859
  transient: "transient";
@@ -15594,8 +15636,8 @@ declare const crawlerJsonSchemas: {
15594
15636
  status: z.ZodOptional<z.ZodNumber>;
15595
15637
  error: z.ZodOptional<z.ZodString>;
15596
15638
  state: z.ZodOptional<z.ZodEnum<{
15597
- unavailable: "unavailable";
15598
15639
  available: "available";
15640
+ unavailable: "unavailable";
15599
15641
  "rate-limited": "rate-limited";
15600
15642
  "confirmed-broken": "confirmed-broken";
15601
15643
  transient: "transient";
@@ -15991,8 +16033,8 @@ declare const crawlerJsonSchemas: {
15991
16033
  deferredUrls: z.ZodNumber;
15992
16034
  limit: z.ZodNumber;
15993
16035
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
15994
- unavailable: "unavailable";
15995
16036
  available: "available";
16037
+ unavailable: "unavailable";
15996
16038
  "rate-limited": "rate-limited";
15997
16039
  "confirmed-broken": "confirmed-broken";
15998
16040
  transient: "transient";
@@ -17043,8 +17085,8 @@ declare const crawlerJsonSchemas: {
17043
17085
  status: z.ZodOptional<z.ZodNumber>;
17044
17086
  error: z.ZodOptional<z.ZodString>;
17045
17087
  state: z.ZodOptional<z.ZodEnum<{
17046
- unavailable: "unavailable";
17047
17088
  available: "available";
17089
+ unavailable: "unavailable";
17048
17090
  "rate-limited": "rate-limited";
17049
17091
  "confirmed-broken": "confirmed-broken";
17050
17092
  transient: "transient";
@@ -17440,8 +17482,8 @@ declare const crawlerJsonSchemas: {
17440
17482
  deferredUrls: z.ZodNumber;
17441
17483
  limit: z.ZodNumber;
17442
17484
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
17443
- unavailable: "unavailable";
17444
17485
  available: "available";
17486
+ unavailable: "unavailable";
17445
17487
  "rate-limited": "rate-limited";
17446
17488
  "confirmed-broken": "confirmed-broken";
17447
17489
  transient: "transient";
@@ -18492,8 +18534,8 @@ declare const crawlerJsonSchemas: {
18492
18534
  status: z.ZodOptional<z.ZodNumber>;
18493
18535
  error: z.ZodOptional<z.ZodString>;
18494
18536
  state: z.ZodOptional<z.ZodEnum<{
18495
- unavailable: "unavailable";
18496
18537
  available: "available";
18538
+ unavailable: "unavailable";
18497
18539
  "rate-limited": "rate-limited";
18498
18540
  "confirmed-broken": "confirmed-broken";
18499
18541
  transient: "transient";
@@ -18889,8 +18931,8 @@ declare const crawlerJsonSchemas: {
18889
18931
  deferredUrls: z.ZodNumber;
18890
18932
  limit: z.ZodNumber;
18891
18933
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
18892
- unavailable: "unavailable";
18893
18934
  available: "available";
18935
+ unavailable: "unavailable";
18894
18936
  "rate-limited": "rate-limited";
18895
18937
  "confirmed-broken": "confirmed-broken";
18896
18938
  transient: "transient";
@@ -20075,8 +20117,8 @@ declare const crawlerJsonSchemas: {
20075
20117
  status: z.ZodOptional<z.ZodNumber>;
20076
20118
  error: z.ZodOptional<z.ZodString>;
20077
20119
  state: z.ZodOptional<z.ZodEnum<{
20078
- unavailable: "unavailable";
20079
20120
  available: "available";
20121
+ unavailable: "unavailable";
20080
20122
  "rate-limited": "rate-limited";
20081
20123
  "confirmed-broken": "confirmed-broken";
20082
20124
  transient: "transient";
@@ -20299,9 +20341,9 @@ declare function analyzeCtrUnderperformersFromRows(input: {
20299
20341
  };
20300
20342
  //#endregion
20301
20343
  //#region packages/core/src/analyze/ctr-underperformers.d.ts
20302
- type SearchAnalytics$9 = typeof querySearchAnalytics;
20344
+ type SearchAnalytics$10 = typeof querySearchAnalytics;
20303
20345
  interface CtrUnderperformerDependencies {
20304
- searchAnalytics: SearchAnalytics$9;
20346
+ searchAnalytics: SearchAnalytics$10;
20305
20347
  now: () => Date;
20306
20348
  }
20307
20349
  declare function ctrUnderperformersReport(input: {
@@ -20499,7 +20541,7 @@ declare function resolveSegmentRanges(input: {
20499
20541
  };
20500
20542
  //#endregion
20501
20543
  //#region packages/core/src/analyze/segment-impact.d.ts
20502
- type SearchAnalytics$8 = typeof querySearchAnalytics;
20544
+ type SearchAnalytics$9 = typeof querySearchAnalytics;
20503
20545
  interface SegmentImpactInput {
20504
20546
  site: string;
20505
20547
  dimension?: SegmentDimension;
@@ -20513,7 +20555,7 @@ interface SegmentImpactInput {
20513
20555
  refresh?: boolean;
20514
20556
  }
20515
20557
  interface SegmentImpactDependencies {
20516
- searchAnalytics: SearchAnalytics$8;
20558
+ searchAnalytics: SearchAnalytics$9;
20517
20559
  now: () => Date;
20518
20560
  }
20519
20561
  declare function compareSegmentRows(input: {
@@ -20708,7 +20750,7 @@ declare const CANNIBAL_MINIMUM_PAGE_SHARE = 0.1;
20708
20750
  declare const CANNIBAL_MAXIMUM_DOMINANT_SHARE = 0.8;
20709
20751
  //#endregion
20710
20752
  //#region packages/core/src/analyze/site-diagnostics/cannibal.d.ts
20711
- type SearchAnalytics$7 = typeof querySearchAnalytics;
20753
+ type SearchAnalytics$8 = typeof querySearchAnalytics;
20712
20754
  interface CannibalReportInput {
20713
20755
  site: string;
20714
20756
  days?: number;
@@ -20721,7 +20763,7 @@ interface CannibalReportInput {
20721
20763
  refresh?: boolean;
20722
20764
  }
20723
20765
  interface CannibalDependencies {
20724
- searchAnalytics: SearchAnalytics$7;
20766
+ searchAnalytics: SearchAnalytics$8;
20725
20767
  now: () => Date;
20726
20768
  }
20727
20769
  declare function cannibalReport(input: CannibalReportInput, dependencies?: CannibalDependencies): Promise<CannibalReport>;
@@ -20889,7 +20931,7 @@ declare function decayComparisonRange(current: {
20889
20931
  };
20890
20932
  //#endregion
20891
20933
  //#region packages/core/src/analyze/site-diagnostics/decaying.d.ts
20892
- type SearchAnalytics$6 = typeof querySearchAnalytics;
20934
+ type SearchAnalytics$7 = typeof querySearchAnalytics;
20893
20935
  interface DecayingReportInput {
20894
20936
  site: string;
20895
20937
  days?: number;
@@ -20905,7 +20947,7 @@ interface DecayingReportInput {
20905
20947
  refresh?: boolean;
20906
20948
  }
20907
20949
  interface DecayingDependencies {
20908
- searchAnalytics: SearchAnalytics$6;
20950
+ searchAnalytics: SearchAnalytics$7;
20909
20951
  now: () => Date;
20910
20952
  }
20911
20953
  declare function decayingReport(input: DecayingReportInput, dependencies?: DecayingDependencies): Promise<DecayReport>;
@@ -21051,7 +21093,7 @@ type AnalyzeQuickWinsInput = {
21051
21093
  declare function analyzeQuickWinsFromRows(input: AnalyzeQuickWinsInput): QuickWinAnalysis;
21052
21094
  //#endregion
21053
21095
  //#region packages/core/src/analyze/site-diagnostics/quick-wins.d.ts
21054
- type SearchAnalytics$5 = typeof querySearchAnalytics;
21096
+ type SearchAnalytics$6 = typeof querySearchAnalytics;
21055
21097
  type FetchPage$3 = typeof fetchPage;
21056
21098
  type ExtractPage$2 = typeof extractPage;
21057
21099
  type QuickWinsInput = {
@@ -21070,7 +21112,7 @@ type QuickWinsInput = {
21070
21112
  refresh?: boolean;
21071
21113
  };
21072
21114
  type QuickWinsDependencies = {
21073
- searchAnalytics: SearchAnalytics$5;
21115
+ searchAnalytics: SearchAnalytics$6;
21074
21116
  fetch: FetchPage$3;
21075
21117
  extract: ExtractPage$2;
21076
21118
  now: () => Date;
@@ -21312,7 +21354,7 @@ type AnalyzeStrikingDistanceInput = {
21312
21354
  declare function analyzeStrikingDistanceRows(input: AnalyzeStrikingDistanceInput): StrikingDistanceAnalysis;
21313
21355
  //#endregion
21314
21356
  //#region packages/core/src/analyze/striking-distance.d.ts
21315
- type SearchAnalytics$4 = typeof querySearchAnalytics;
21357
+ type SearchAnalytics$5 = typeof querySearchAnalytics;
21316
21358
  type VerifyQueryContent = typeof verifyQueryContent;
21317
21359
  type StrikingDistanceInput = {
21318
21360
  site: string;
@@ -21377,7 +21419,7 @@ type StrikingDistanceReport = {
21377
21419
  recommendations: string[];
21378
21420
  };
21379
21421
  type StrikingDistanceDependencies = {
21380
- searchAnalytics: SearchAnalytics$4;
21422
+ searchAnalytics: SearchAnalytics$5;
21381
21423
  verifyContent: VerifyQueryContent;
21382
21424
  now: () => Date;
21383
21425
  };
@@ -22056,7 +22098,7 @@ interface InternalLinksAnalysis {
22056
22098
  declare function analyzeInternalLinksFromRows(input: InternalLinksAnalysisInput): InternalLinksAnalysis;
22057
22099
  //#endregion
22058
22100
  //#region packages/core/src/analyze/internal-links.d.ts
22059
- type SearchAnalytics$3 = typeof querySearchAnalytics;
22101
+ type SearchAnalytics$4 = typeof querySearchAnalytics;
22060
22102
  type FetchPage$2 = typeof fetchPage;
22061
22103
  type ExtractPage$1 = typeof extractPage;
22062
22104
  interface InternalLinksInput {
@@ -22073,13 +22115,548 @@ interface InternalLinksInput {
22073
22115
  refresh?: boolean;
22074
22116
  }
22075
22117
  interface InternalLinksDependencies {
22076
- searchAnalytics: SearchAnalytics$3;
22118
+ searchAnalytics: SearchAnalytics$4;
22077
22119
  fetch: FetchPage$2;
22078
22120
  extract: ExtractPage$1;
22079
22121
  now: () => Date;
22080
22122
  }
22081
22123
  declare function internalLinksReport(input: InternalLinksInput, dependencies?: InternalLinksDependencies): Promise<InternalLinksReport>;
22082
22124
  //#endregion
22125
+ //#region packages/core/src/providers/contracts.d.ts
22126
+ declare const providerIdSchema: z.ZodEnum<{
22127
+ dataforseo: "dataforseo";
22128
+ semrush: "semrush";
22129
+ ahrefs: "ahrefs";
22130
+ }>;
22131
+ type ProviderId = z.infer<typeof providerIdSchema>;
22132
+ declare const providerCapabilitySchema: z.ZodEnum<{
22133
+ "keyword-metrics": "keyword-metrics";
22134
+ "keyword-discovery": "keyword-discovery";
22135
+ "serp-snapshot": "serp-snapshot";
22136
+ "domain-overview": "domain-overview";
22137
+ "ranked-keywords": "ranked-keywords";
22138
+ "relevant-pages": "relevant-pages";
22139
+ "serp-competitors": "serp-competitors";
22140
+ "link-summary": "link-summary";
22141
+ "referring-domains": "referring-domains";
22142
+ backlinks: "backlinks";
22143
+ "domain-rating": "domain-rating";
22144
+ "local-search": "local-search";
22145
+ "ai-mentions": "ai-mentions";
22146
+ "ai-prompt-observation": "ai-prompt-observation";
22147
+ }>;
22148
+ type ProviderCapability = z.infer<typeof providerCapabilitySchema>;
22149
+ declare const searchMarketSchema: z.ZodObject<{
22150
+ searchEngine: z.ZodDefault<z.ZodEnum<{
22151
+ google: "google";
22152
+ bing: "bing";
22153
+ }>>;
22154
+ countryCode: z.ZodString;
22155
+ languageCode: z.ZodString;
22156
+ location: z.ZodOptional<z.ZodObject<{
22157
+ code: z.ZodOptional<z.ZodNumber>;
22158
+ name: z.ZodOptional<z.ZodString>;
22159
+ }, z.core.$strip>>;
22160
+ device: z.ZodOptional<z.ZodEnum<{
22161
+ mobile: "mobile";
22162
+ desktop: "desktop";
22163
+ }>>;
22164
+ }, z.core.$strict>;
22165
+ type SearchMarket = z.infer<typeof searchMarketSchema>;
22166
+ type ProviderValue<T> = {
22167
+ state: 'observed';
22168
+ value: T;
22169
+ } | {
22170
+ state: 'missing' | 'unavailable' | 'invalid';
22171
+ value: null;
22172
+ reason: string;
22173
+ };
22174
+ declare function observedValue<T>(value: T): ProviderValue<T>;
22175
+ declare function unavailableValue<T>(state: 'missing' | 'unavailable' | 'invalid', reason: string): ProviderValue<T>;
22176
+ type ProviderWarning = {
22177
+ code: string;
22178
+ message: string;
22179
+ field?: string;
22180
+ row?: number;
22181
+ };
22182
+ type ProviderCoverage = {
22183
+ requestedRows: number | null;
22184
+ returnedRows: number | null;
22185
+ retainedRows: number | null;
22186
+ invalidRows: number;
22187
+ providerTotalRows: number | null;
22188
+ completeness: 'complete' | 'partial' | 'capped' | 'filtered' | 'unavailable' | 'invalid' | 'unknown';
22189
+ nextCursor: string | null;
22190
+ };
22191
+ type ProviderCacheEvidence = {
22192
+ status: 'hit' | 'miss' | 'bypass';
22193
+ storedAt: string | null;
22194
+ expiresAt: string | null;
22195
+ };
22196
+ type ProviderCostEvidence = {
22197
+ currency: 'USD';
22198
+ estimatedMicros: number | null;
22199
+ actualMicros: number | null;
22200
+ taskIds: string[];
22201
+ };
22202
+ type ProviderRequestEvidence = {
22203
+ operation: string;
22204
+ endpoint: string;
22205
+ limit: number | null;
22206
+ filters: Record<string, string | number | boolean>;
22207
+ sort: string[];
22208
+ };
22209
+ type ProviderEvidence<T> = {
22210
+ schemaVersion: 1;
22211
+ provider: ProviderId;
22212
+ capability: ProviderCapability;
22213
+ data: T;
22214
+ observedAt: string;
22215
+ market: SearchMarket;
22216
+ coverage: ProviderCoverage;
22217
+ cache: ProviderCacheEvidence;
22218
+ cost: ProviderCostEvidence;
22219
+ request: ProviderRequestEvidence;
22220
+ warnings: ProviderWarning[];
22221
+ };
22222
+ type ProviderCapabilitySupport = {
22223
+ capability: ProviderCapability;
22224
+ status: 'available' | 'unavailable';
22225
+ reason?: string;
22226
+ markets: 'all' | readonly ProviderMarketSupport[];
22227
+ };
22228
+ type ProviderMarketSupport = {
22229
+ searchEngines?: readonly SearchMarket['searchEngine'][];
22230
+ countryCodes?: readonly string[];
22231
+ languageCodes?: readonly string[];
22232
+ devices?: readonly NonNullable<SearchMarket['device']>[];
22233
+ location?: 'any' | 'country-only' | 'canonical';
22234
+ };
22235
+ interface ProviderAdapter {
22236
+ readonly provider: ProviderId;
22237
+ readonly capabilitySupport: readonly ProviderCapabilitySupport[];
22238
+ }
22239
+ type KeywordMetric = {
22240
+ keyword: string;
22241
+ monthlySearchVolume: ProviderValue<number>;
22242
+ monthlySearches: ProviderValue<KeywordMonthlySearch[]>;
22243
+ searchVolumeUpdatedAt: ProviderValue<string>;
22244
+ cpcUsd: ProviderValue<number>;
22245
+ paidCompetition: ProviderValue<number>;
22246
+ keywordDifficulty: ProviderValue<number>;
22247
+ intent: ProviderValue<string>;
22248
+ resultCount: ProviderValue<number>;
22249
+ };
22250
+ type KeywordMonthlySearch = {
22251
+ year: number;
22252
+ month: number;
22253
+ searchVolume: number;
22254
+ };
22255
+ type ProviderRequestContext = {
22256
+ projectId?: string;
22257
+ reportId: string;
22258
+ reportRunId: string;
22259
+ };
22260
+ type KeywordMetricsRequest = {
22261
+ keywords: string[];
22262
+ market: SearchMarket;
22263
+ refresh?: boolean;
22264
+ context?: ProviderRequestContext;
22265
+ };
22266
+ interface KeywordMetricsProvider extends ProviderAdapter {
22267
+ keywordMetrics(input: KeywordMetricsRequest): Promise<ProviderEvidence<KeywordMetric[]>>;
22268
+ }
22269
+ declare const keywordDiscoverySourceSchema: z.ZodEnum<{
22270
+ ideas: "ideas";
22271
+ related: "related";
22272
+ suggestions: "suggestions";
22273
+ }>;
22274
+ type KeywordDiscoverySource = z.infer<typeof keywordDiscoverySourceSchema>;
22275
+ type KeywordIdeaSource = {
22276
+ seed: string;
22277
+ source: KeywordDiscoverySource;
22278
+ };
22279
+ type KeywordIdea = KeywordMetric & {
22280
+ sources: KeywordIdeaSource[];
22281
+ };
22282
+ type KeywordDiscoveryRequest = {
22283
+ seeds: string[];
22284
+ sources: KeywordDiscoverySource[];
22285
+ market: SearchMarket;
22286
+ limit: number;
22287
+ refresh?: boolean;
22288
+ context?: ProviderRequestContext;
22289
+ };
22290
+ interface KeywordDiscoveryProvider extends ProviderAdapter {
22291
+ discoverKeywords(input: KeywordDiscoveryRequest): Promise<ProviderEvidence<KeywordIdea[]>>;
22292
+ }
22293
+ type SerpOrganicResult = {
22294
+ rankGroup: number;
22295
+ rankAbsolute: number;
22296
+ page: number;
22297
+ domain: string;
22298
+ url: string;
22299
+ title: string | null;
22300
+ description: string | null;
22301
+ isFeaturedSnippet: boolean | null;
22302
+ };
22303
+ type SerpSnapshot = {
22304
+ keyword: string;
22305
+ effectiveKeyword: string;
22306
+ searchEngineDomain: string | null;
22307
+ checkedAt: string;
22308
+ checkUrl: string | null;
22309
+ resultCount: number | null;
22310
+ pagesCount: number | null;
22311
+ features: string[];
22312
+ organicResults: SerpOrganicResult[];
22313
+ };
22314
+ type SerpSnapshotRequest = {
22315
+ keyword: string;
22316
+ market: SearchMarket;
22317
+ depth: number;
22318
+ refresh?: boolean;
22319
+ context?: ProviderRequestContext;
22320
+ };
22321
+ interface SerpSnapshotProvider extends ProviderAdapter {
22322
+ serpSnapshot(input: SerpSnapshotRequest): Promise<ProviderEvidence<SerpSnapshot>>;
22323
+ }
22324
+ //#endregion
22325
+ //#region packages/core/src/providers/resolver.d.ts
22326
+ type ProviderCandidate = {
22327
+ adapter: ProviderAdapter;
22328
+ connected: boolean;
22329
+ priority: number;
22330
+ };
22331
+ type ProviderResolution = {
22332
+ status: 'available';
22333
+ provider: ProviderAdapter;
22334
+ considered: ProviderId[];
22335
+ } | {
22336
+ status: 'unavailable';
22337
+ reason: 'provider-not-registered' | 'provider-not-connected' | 'capability-not-supported' | 'market-not-supported';
22338
+ considered: ProviderId[];
22339
+ };
22340
+ declare function resolveProvider(input: {
22341
+ capability: ProviderCapability;
22342
+ market: SearchMarket;
22343
+ candidates: readonly ProviderCandidate[];
22344
+ provider?: ProviderId;
22345
+ }): ProviderResolution;
22346
+ //#endregion
22347
+ //#region packages/core/src/analyze/keyword-metrics.d.ts
22348
+ type KeywordTrend = {
22349
+ state: 'observed';
22350
+ direction: 'increasing' | 'decreasing' | 'stable' | 'increased-from-zero';
22351
+ recentAverage: number;
22352
+ previousAverage: number;
22353
+ absoluteChange: number;
22354
+ percentChange: ProviderValue<number>;
22355
+ months: Array<{
22356
+ year: number;
22357
+ month: number;
22358
+ }>;
22359
+ methodology: string;
22360
+ } | {
22361
+ state: 'unavailable';
22362
+ reason: string;
22363
+ };
22364
+ type KeywordMetricAnalysis = {
22365
+ keyword: string;
22366
+ trend: KeywordTrend;
22367
+ };
22368
+ type KeywordMetricFinding = {
22369
+ code: 'recent-demand-increase' | 'recent-demand-decrease';
22370
+ keyword: string;
22371
+ evidenceRef: string;
22372
+ principle: string;
22373
+ detail: string;
22374
+ };
22375
+ type KeywordMetricsReport = {
22376
+ schemaVersion: 1;
22377
+ generatedAt: string;
22378
+ dataStatus: 'complete' | 'partial' | 'unavailable';
22379
+ market: SearchMarket;
22380
+ summary: {
22381
+ requestedKeywords: number;
22382
+ providerRows: number;
22383
+ keywordsWithObservedVolume: number;
22384
+ observedZeroVolume: number;
22385
+ missingOrInvalidVolume: number;
22386
+ increasingTrends: number;
22387
+ decreasingTrends: number;
22388
+ stableTrends: number;
22389
+ unavailableTrends: number;
22390
+ verdict: string;
22391
+ };
22392
+ evidence: ProviderEvidence<KeywordMetric[]>;
22393
+ analysis: KeywordMetricAnalysis[];
22394
+ findings: KeywordMetricFinding[];
22395
+ caveats: string[];
22396
+ nextSteps: string[];
22397
+ };
22398
+ type KeywordMetricsReportDependencies = {
22399
+ candidates?: readonly ProviderCandidate[];
22400
+ now?: () => Date;
22401
+ };
22402
+ declare function analyzeKeywordTrend(metric: KeywordMetric): KeywordTrend;
22403
+ declare function keywordMetricsReport(input: {
22404
+ keywords: string[];
22405
+ market: SearchMarket;
22406
+ provider?: ProviderId;
22407
+ projectId?: string;
22408
+ context?: Partial<ProviderRequestContext>;
22409
+ refresh?: boolean;
22410
+ }, dependencies?: KeywordMetricsReportDependencies): Promise<KeywordMetricsReport>;
22411
+ //#endregion
22412
+ //#region packages/core/src/analyze/pseo/query-insights.d.ts
22413
+ type PseoQueryPattern = {
22414
+ label: string;
22415
+ queryCount: number;
22416
+ clicks: number;
22417
+ impressions: number;
22418
+ examples: string[];
22419
+ };
22420
+ //#endregion
22421
+ //#region packages/core/src/analyze/second-page-analysis.d.ts
22422
+ declare function analyzeSecondPageRows(input: AnalyzeSecondPageInput): SecondPageAnalysis;
22423
+ //#endregion
22424
+ //#region packages/core/src/analyze/keyword-opportunity-contract.d.ts
22425
+ type KeywordOpportunitySource = 'quick-wins' | 'second-page' | 'striking-distance';
22426
+ type KeywordOpportunitiesInput = {
22427
+ site: string;
22428
+ days?: number;
22429
+ minImpressions?: number;
22430
+ limit?: number;
22431
+ keywordLimit?: number;
22432
+ queriesPerPage?: number;
22433
+ clusterLimit?: number;
22434
+ brandTerms?: string[];
22435
+ includeBrand?: boolean;
22436
+ includeExternal?: boolean;
22437
+ market?: SearchMarket;
22438
+ provider?: ProviderId;
22439
+ projectId?: string;
22440
+ refresh?: boolean;
22441
+ };
22442
+ type BoundedSecondPageItem = Omit<SecondPageItem, 'queries'> & {
22443
+ queries: SecondPageItem['queries'];
22444
+ queryCoverage: {
22445
+ available: number;
22446
+ returned: number;
22447
+ omitted: number;
22448
+ };
22449
+ };
22450
+ type QuickWinsSection = Omit<QuickWinAnalysis, 'eligibleItems'>;
22451
+ type SecondPageSection = Omit<SecondPageAnalysis, 'items'> & {
22452
+ items: BoundedSecondPageItem[];
22453
+ };
22454
+ type StrikingDistanceSection = Omit<StrikingDistanceAnalysis, 'groups'> & {
22455
+ groups: StrikingDistanceAnalysis['groups'];
22456
+ groupCoverage: {
22457
+ available: number;
22458
+ returned: number;
22459
+ omitted: number;
22460
+ };
22461
+ };
22462
+ type KeywordOpportunityFirstParty = {
22463
+ provider: 'google-search-console';
22464
+ dimensions: ['query', 'page'];
22465
+ searchType: 'web';
22466
+ dataState: 'final';
22467
+ rowsFetched: number;
22468
+ calls: number;
22469
+ maxRows: number;
22470
+ possiblyTruncated: boolean;
22471
+ completeness: 'retained-query-rows-only';
22472
+ quickWins: QuickWinsSection;
22473
+ secondPage: SecondPageSection;
22474
+ strikingDistance: StrikingDistanceSection;
22475
+ };
22476
+ type KeywordOpportunityExternal = {
22477
+ requested: boolean;
22478
+ status: 'not-requested' | 'skipped' | 'complete' | 'partial' | 'unavailable';
22479
+ selection: {
22480
+ availableKeywords: number;
22481
+ requestedKeywords: number;
22482
+ omittedKeywords: number;
22483
+ method: 'round-robin-first-party-sections';
22484
+ };
22485
+ report: KeywordMetricsReport | null;
22486
+ reason?: string;
22487
+ error?: {
22488
+ code: 'PROVIDER_UNAVAILABLE' | 'RATE_LIMITED';
22489
+ message: string;
22490
+ retryable: boolean;
22491
+ };
22492
+ };
22493
+ type KeywordOpportunityCombined = {
22494
+ keyword: string;
22495
+ sources: KeywordOpportunitySource[];
22496
+ firstParty: {
22497
+ clicks: number;
22498
+ impressions: number;
22499
+ ctr: number;
22500
+ averagePosition: number;
22501
+ urls: Array<{
22502
+ url: string;
22503
+ clicks: number;
22504
+ impressions: number;
22505
+ ctr: number;
22506
+ averagePosition: number;
22507
+ }>;
22508
+ urlCoverage: {
22509
+ available: number;
22510
+ returned: number;
22511
+ omitted: number;
22512
+ };
22513
+ };
22514
+ external?: {
22515
+ evidenceRef: string;
22516
+ monthlySearchVolume: KeywordMetric['monthlySearchVolume'];
22517
+ cpcUsd: KeywordMetric['cpcUsd'];
22518
+ keywordDifficulty: KeywordMetric['keywordDifficulty'];
22519
+ intent: KeywordMetric['intent'];
22520
+ resultCount: KeywordMetric['resultCount'];
22521
+ trend: KeywordTrend;
22522
+ };
22523
+ };
22524
+ type KeywordOpportunityCluster = QueryCluster & {
22525
+ externalContext: {
22526
+ selectedQueries: number;
22527
+ metricsWithObservedVolume: number;
22528
+ metricEvidenceRefs: string[];
22529
+ };
22530
+ };
22531
+ type KeywordOpportunityFinding = {
22532
+ code: 'provider-zero-with-first-party-impressions';
22533
+ keyword: string;
22534
+ evidenceRefs: [string, string];
22535
+ detail: string;
22536
+ action: string;
22537
+ } | {
22538
+ code: 'recent-demand-increase';
22539
+ keyword: string;
22540
+ evidenceRefs: [string, string];
22541
+ detail: string;
22542
+ action: string;
22543
+ } | {
22544
+ code: 'programmatic-template-cluster';
22545
+ keyword: string;
22546
+ evidenceRefs: [string];
22547
+ detail: string;
22548
+ action: string;
22549
+ };
22550
+ type KeywordOpportunityDataSourcePrompt = {
22551
+ clusterRef: string;
22552
+ queryLabel: string;
22553
+ instruction: string;
22554
+ requiredChecks: readonly ['stable entity IDs and join keys', 'required attributes and missing-value rules', 'source provenance and usage rights', 'update cadence and freshness checks', 'page uniqueness and duplicate prevention', 'representative output and internal-link review'];
22555
+ evidenceBoundary: string;
22556
+ };
22557
+ type KeywordOpportunitiesReport = {
22558
+ schemaVersion: 1;
22559
+ site: string;
22560
+ generatedAt: string;
22561
+ range: {
22562
+ startDate: string;
22563
+ endDate: string;
22564
+ };
22565
+ rangeDays: number;
22566
+ dataStatus: 'complete' | 'partial' | 'empty' | 'filtered';
22567
+ summary: {
22568
+ sourceRows: number;
22569
+ quickWinCandidates: number;
22570
+ secondPageCandidates: number;
22571
+ strikingDistanceCandidates: number;
22572
+ availableCandidateKeywords: number;
22573
+ returnedCandidateKeywords: number;
22574
+ externalMetricsObserved: number;
22575
+ candidateClusters: number;
22576
+ programmaticTemplateClusters: number;
22577
+ verdict: string;
22578
+ };
22579
+ methodology: {
22580
+ id: 'gsc_keyword_opportunities_v1';
22581
+ sourceAcquisition: 'one-bounded-query-page-acquisition';
22582
+ opportunityAnalyses: readonly ['gsc_quick_wins_v2', 'gsc_second_page_v2', 'gsc_striking_distance_v2'];
22583
+ externalSelection: 'round-robin-first-party-sections';
22584
+ externalChangesPriorityScore: false;
22585
+ clustersUse: 'returned-opportunity-keyword-subset';
22586
+ clusterMinImpressions: 25;
22587
+ };
22588
+ firstParty: KeywordOpportunityFirstParty;
22589
+ external: KeywordOpportunityExternal;
22590
+ combined: KeywordOpportunityCombined[];
22591
+ candidateClusters: KeywordOpportunityCluster[];
22592
+ programmaticPatterns: PseoQueryPattern[];
22593
+ findings: KeywordOpportunityFinding[];
22594
+ dataSourcePrompts: KeywordOpportunityDataSourcePrompt[];
22595
+ caveats: string[];
22596
+ nextSteps: string[];
22597
+ };
22598
+ //#endregion
22599
+ //#region packages/core/src/analyze/keyword-opportunities.d.ts
22600
+ type SearchAnalytics$3 = typeof querySearchAnalytics;
22601
+ type KeywordMetrics = typeof keywordMetricsReport;
22602
+ type KeywordOpportunitiesDependencies = {
22603
+ searchAnalytics?: SearchAnalytics$3;
22604
+ keywordMetrics?: KeywordMetrics;
22605
+ now?: () => Date;
22606
+ };
22607
+ declare function keywordOpportunitiesReport(input: KeywordOpportunitiesInput, dependencies?: KeywordOpportunitiesDependencies): Promise<KeywordOpportunitiesReport>;
22608
+ //#endregion
22609
+ //#region packages/core/src/analyze/keyword-research.d.ts
22610
+ type KeywordResearchAnalysis = {
22611
+ keyword: string;
22612
+ sourceCount: number;
22613
+ seedCount: number;
22614
+ trend: KeywordTrend;
22615
+ };
22616
+ type KeywordResearchFinding = {
22617
+ code: 'multi-source-keyword' | 'recent-demand-increase';
22618
+ keyword: string;
22619
+ evidenceRef: string;
22620
+ principle: string;
22621
+ detail: string;
22622
+ };
22623
+ type KeywordResearchReport = {
22624
+ schemaVersion: 1;
22625
+ generatedAt: string;
22626
+ dataStatus: 'complete' | 'partial' | 'unavailable';
22627
+ market: SearchMarket;
22628
+ summary: {
22629
+ requestedSeeds: number;
22630
+ requestedSources: number;
22631
+ discoveredKeywords: number;
22632
+ keywordsWithObservedVolume: number;
22633
+ observedZeroVolume: number;
22634
+ missingOrInvalidVolume: number;
22635
+ keywordsFoundBySeveralSources: number;
22636
+ increasingTrends: number;
22637
+ verdict: string;
22638
+ };
22639
+ evidence: ProviderEvidence<KeywordIdea[]>;
22640
+ analysis: KeywordResearchAnalysis[];
22641
+ findings: KeywordResearchFinding[];
22642
+ caveats: string[];
22643
+ nextSteps: string[];
22644
+ };
22645
+ type KeywordResearchReportDependencies = {
22646
+ candidates?: readonly ProviderCandidate[];
22647
+ now?: () => Date;
22648
+ };
22649
+ declare function keywordResearchReport(input: {
22650
+ seeds: string[];
22651
+ sources?: KeywordDiscoverySource[];
22652
+ market: SearchMarket;
22653
+ limit?: number;
22654
+ provider?: ProviderId;
22655
+ projectId?: string;
22656
+ context?: Partial<ProviderRequestContext>;
22657
+ refresh?: boolean;
22658
+ }, dependencies?: KeywordResearchReportDependencies): Promise<KeywordResearchReport>;
22659
+ //#endregion
22083
22660
  //#region packages/core/src/analyze/monitoring/crawl-diff.d.ts
22084
22661
  declare function compareCrawlPages(input: {
22085
22662
  current: CrawlPageSnapshot[];
@@ -22484,14 +23061,15 @@ declare namespace SqliteDatabase {
22484
23061
  }
22485
23062
  //#endregion
22486
23063
  //#region packages/core/src/storage/database.d.ts
23064
+ declare function ensurePrivateDatabaseFiles(path: string): void;
22487
23065
  declare function getDb(): SqliteDatabase.Database;
22488
- declare function noteCacheWrite(sizeBytes?: number): void;
23066
+ declare function noteCacheWrite(sizeBytes?: number, database?: SqliteDatabase.Database): void;
22489
23067
  declare function checkDatabaseReadiness(): {
22490
23068
  dbPath: string;
22491
23069
  };
22492
23070
  declare function hashKey(parts: unknown[]): string;
22493
23071
  declare function getCacheStats(): CacheStats;
22494
- declare function clearCache(provider?: 'gsc' | 'google-analytics' | 'semrush' | 'http', olderThanMs?: number): number;
23072
+ declare function clearCache(provider?: 'gsc' | 'google-analytics' | 'semrush' | 'dataforseo' | 'http', olderThanMs?: number): number;
22495
23073
  //#endregion
22496
23074
  //#region packages/core/src/analyze/monitoring/index-watch.d.ts
22497
23075
  declare const INDEX_WATCH_ATTEMPT_RETENTION = 20;
@@ -22808,15 +23386,6 @@ declare function performanceAudit(input: {
22808
23386
  now?: () => Date;
22809
23387
  }): Promise<PerformanceAuditReport>;
22810
23388
  //#endregion
22811
- //#region packages/core/src/analyze/pseo/query-insights.d.ts
22812
- type PseoQueryPattern = {
22813
- label: string;
22814
- queryCount: number;
22815
- clicks: number;
22816
- impressions: number;
22817
- examples: string[];
22818
- };
22819
- //#endregion
22820
23389
  //#region packages/core/src/analyze/pseo/types.d.ts
22821
23390
  type PseoQueryPageRow = {
22822
23391
  query: string;
@@ -23093,6 +23662,25 @@ declare function pseoAuditOptions(input: Omit<PseoAuditInput, 'site'>): {
23093
23662
  rate?: FetchRateControls | undefined;
23094
23663
  progress?: ProgressReporter | undefined;
23095
23664
  };
23665
+ type PseoAuditAcquisition = {
23666
+ options: ReturnType<typeof pseoAuditOptions>;
23667
+ generatedAt: string;
23668
+ range: {
23669
+ startDate: string;
23670
+ endDate: string;
23671
+ };
23672
+ warnings: string[];
23673
+ sitemapUrls: string[];
23674
+ pageRows: PseoPageRow[];
23675
+ queryPageRows: PseoQueryPageRow[];
23676
+ pageRowsFetched: number;
23677
+ queryPageRowsFetched: number;
23678
+ };
23679
+ declare function acquirePseoAuditEvidence(input: PseoAuditInput, dependencies?: PseoDependencies): Promise<PseoAuditAcquisition>;
23680
+ declare function buildPseoAuditFromAcquisition(input: PseoAuditInput, acquisition: PseoAuditAcquisition, evidence?: {
23681
+ crawl: PseoCrawlSample[];
23682
+ inspection: PseoInspectionSample[];
23683
+ }): PseoAuditReport;
23096
23684
  declare function pseoAuditReport(input: PseoAuditInput, dependencies?: PseoDependencies): Promise<PseoAuditReport>;
23097
23685
  //#endregion
23098
23686
  //#region packages/core/src/analyze/pseo/markdown.d.ts
@@ -23127,6 +23715,276 @@ type Presentation = {
23127
23715
  //#region packages/core/src/analyze/pseo/presentation.d.ts
23128
23716
  declare function pseoPresentation(report: PseoAuditReport): Presentation;
23129
23717
  //#endregion
23718
+ //#region packages/core/src/analyze/pseo-opportunity-contract.d.ts
23719
+ type PseoOpportunitiesInput = Pick<PseoAuditInput, 'site' | 'days' | 'sitemaps' | 'maxSitemapUrls' | 'templateLimit' | 'minimumTemplateUrls' | 'minimumTemplateShare' | 'minimumTemplateImpressions' | 'brandTerms' | 'includeBrand' | 'refresh'> & {
23720
+ clusterLimit?: number;
23721
+ includeExternal?: boolean;
23722
+ market?: SearchMarket;
23723
+ provider?: ProviderId;
23724
+ discoverySources?: KeywordDiscoverySource[];
23725
+ discoveryLimit?: number;
23726
+ candidateLimit?: number;
23727
+ serpLimit?: number;
23728
+ serpDepth?: number;
23729
+ projectId?: string;
23730
+ };
23731
+ type PseoOpportunityTemplate = {
23732
+ signature: string;
23733
+ shape: PseoAuditTemplate['shape'];
23734
+ sampleUrls: string[];
23735
+ population: {
23736
+ discoveredUrls: number;
23737
+ gscVisibleUrls: number;
23738
+ untestedUrls: number;
23739
+ };
23740
+ searchEvidence: {
23741
+ clicks: number;
23742
+ impressions: number;
23743
+ averagePosition: number;
23744
+ topQueries: Array<{
23745
+ query: string;
23746
+ clicks: number;
23747
+ impressions: number;
23748
+ position: number;
23749
+ }>;
23750
+ queryPatterns: PseoAuditTemplate['metrics']['queryPatterns'];
23751
+ };
23752
+ evidenceClass: 'search-evidenced-template' | 'observed-template';
23753
+ auditVerdict: PseoAuditTemplate['verdict'];
23754
+ confidence: PseoAuditTemplate['confidence'];
23755
+ evidenceRef: string;
23756
+ };
23757
+ type PseoOpportunityCluster = Pick<QueryCluster, 'label' | 'intent' | 'totals' | 'template' | 'summary' | 'recommendation'> & {
23758
+ queries: QueryCluster['queries'];
23759
+ evidenceClass: 'template-mapped' | 'query-cluster';
23760
+ templateRef: string | null;
23761
+ evidenceRef: string;
23762
+ };
23763
+ type PseoResearchSeed = {
23764
+ keyword: string;
23765
+ source: 'template' | 'query-cluster';
23766
+ evidenceRef: string;
23767
+ templateRef: string | null;
23768
+ };
23769
+ type PseoExternalCandidate = {
23770
+ keyword: string;
23771
+ classification: 'existing-first-party-query' | 'search-evidenced-template-expansion' | 'new-template-research';
23772
+ seedRefs: string[];
23773
+ templateRefs: string[];
23774
+ sources: KeywordIdea['sources'];
23775
+ monthlySearchVolume: KeywordIdea['monthlySearchVolume'];
23776
+ keywordDifficulty: KeywordIdea['keywordDifficulty'];
23777
+ intent: KeywordIdea['intent'];
23778
+ resultCount: KeywordIdea['resultCount'];
23779
+ evidenceRef: string;
23780
+ };
23781
+ type PseoExternalAcquisition = Pick<ProviderEvidence<never>, 'provider' | 'observedAt' | 'market' | 'coverage' | 'cache' | 'cost' | 'request' | 'warnings'>;
23782
+ type PseoDiscoveryEvidence = {
23783
+ requested: boolean;
23784
+ status: 'not-requested' | 'skipped' | 'complete' | 'partial' | 'unavailable';
23785
+ seeds: PseoResearchSeed[];
23786
+ acquisition: PseoExternalAcquisition | null;
23787
+ availableCandidates: number;
23788
+ returnedCandidates: number;
23789
+ omittedCandidates: number;
23790
+ candidates: PseoExternalCandidate[];
23791
+ reason?: string;
23792
+ error?: {
23793
+ code: string;
23794
+ message: string;
23795
+ retryable: boolean;
23796
+ };
23797
+ };
23798
+ type PseoSerpObservation = {
23799
+ keyword: string;
23800
+ status: 'complete' | 'partial' | 'unavailable';
23801
+ acquisition: PseoExternalAcquisition | null;
23802
+ features: string[];
23803
+ organicResults: SerpOrganicResult[];
23804
+ resultCoverage: {
23805
+ available: number;
23806
+ returned: number;
23807
+ omitted: number;
23808
+ };
23809
+ reason?: string;
23810
+ error?: {
23811
+ code: string;
23812
+ message: string;
23813
+ retryable: boolean;
23814
+ };
23815
+ };
23816
+ type PseoSerpEvidence = {
23817
+ requested: boolean;
23818
+ requestedQueries: number;
23819
+ completedQueries: number;
23820
+ failedQueries: number;
23821
+ observations: PseoSerpObservation[];
23822
+ };
23823
+ type PseoCompetitorPattern = {
23824
+ domain: string;
23825
+ queryCount: number;
23826
+ resultCount: number;
23827
+ bestRank: number;
23828
+ queries: string[];
23829
+ sampleUrls: string[];
23830
+ repeatedTemplates: Array<{
23831
+ signature: string;
23832
+ urlCount: number;
23833
+ sampleUrls: string[];
23834
+ }>;
23835
+ evidenceRefs: string[];
23836
+ };
23837
+ type PseoDataSourceBrief = {
23838
+ candidateRef: string;
23839
+ proposalType: 'template-expansion' | 'new-template-research';
23840
+ instruction: string;
23841
+ requiredChecks: readonly ['entities and required fields', 'stable identifiers and join keys', 'geographic and language coverage', 'update cadence and stale-data handling', 'source provenance, licensing, and attribution', 'validation rules and missing-value stop conditions', 'bounded inventory and duplicate prevention', 'representative output, crawl, canonical, and internal-link review'];
23842
+ evidenceBoundary: string;
23843
+ };
23844
+ type PseoOpportunityFinding = {
23845
+ code: 'template-expansion-candidate';
23846
+ evidenceRefs: [string, string];
23847
+ detail: string;
23848
+ action: string;
23849
+ } | {
23850
+ code: 'new-template-research-candidate';
23851
+ evidenceRefs: [string];
23852
+ detail: string;
23853
+ action: string;
23854
+ } | {
23855
+ code: 'competitor-repeated-pattern';
23856
+ evidenceRefs: [string];
23857
+ detail: string;
23858
+ action: string;
23859
+ };
23860
+ type PseoKnownCost = {
23861
+ currency: 'USD';
23862
+ knownEstimatedMicros: number;
23863
+ knownActualMicros: number;
23864
+ unknownEstimatedRequests: number;
23865
+ unknownActualRequests: number;
23866
+ taskIds: string[];
23867
+ };
23868
+ type PseoOpportunitiesReport = {
23869
+ schemaVersion: 1;
23870
+ methodology: 'pseo_opportunities_v1';
23871
+ site: string;
23872
+ generatedAt: string;
23873
+ dataStatus: 'complete' | 'partial' | 'empty' | 'filtered';
23874
+ market: SearchMarket | null;
23875
+ summary: {
23876
+ observedTemplates: number;
23877
+ searchEvidencedTemplates: number;
23878
+ queryClusters: number;
23879
+ researchSeeds: number;
23880
+ discoveredCandidates: number;
23881
+ templateExpansionCandidates: number;
23882
+ newTemplateResearchCandidates: number;
23883
+ serpSnapshots: number;
23884
+ observedCompetitors: number;
23885
+ dataSourceBriefs: number;
23886
+ verdict: string;
23887
+ };
23888
+ source: {
23889
+ pseoAudit: {
23890
+ range: {
23891
+ startDate: string;
23892
+ endDate: string;
23893
+ };
23894
+ dataStatus: PseoAuditReport['dataStatus'];
23895
+ pageRows: number;
23896
+ queryPageRows: number;
23897
+ pageRowsPossiblyTruncated: boolean;
23898
+ queryPageRowsPossiblyTruncated: boolean;
23899
+ discoveredUrls: number;
23900
+ returnedTemplates: number;
23901
+ };
23902
+ queryClusters: {
23903
+ range: {
23904
+ startDate: string;
23905
+ endDate: string;
23906
+ };
23907
+ returnedClusters: number;
23908
+ returnedQueries: number;
23909
+ completeness: 'returned-clusters-only';
23910
+ minImpressions: number;
23911
+ limit: number;
23912
+ };
23913
+ external: {
23914
+ discovery: PseoDiscoveryEvidence;
23915
+ serps: PseoSerpEvidence;
23916
+ cost: PseoKnownCost;
23917
+ };
23918
+ };
23919
+ selection: {
23920
+ templateLimit: number;
23921
+ clusterLimit: number;
23922
+ seedLimit: 5;
23923
+ discoveryLimit: number;
23924
+ candidateLimit: number;
23925
+ serpLimit: number;
23926
+ serpDepth: number;
23927
+ organicResultsPerSnapshot: 10;
23928
+ competitorLimit: 10;
23929
+ dataSourceBriefLimit: 3;
23930
+ candidateOrder: 'classification-source-count-volume-keyword-v1';
23931
+ };
23932
+ templates: PseoOpportunityTemplate[];
23933
+ queryClusters: PseoOpportunityCluster[];
23934
+ competitors: PseoCompetitorPattern[];
23935
+ findings: PseoOpportunityFinding[];
23936
+ dataSourceBriefs: PseoDataSourceBrief[];
23937
+ caveats: string[];
23938
+ nextSteps: string[];
23939
+ };
23940
+ //#endregion
23941
+ //#region packages/core/src/analyze/serp-results.d.ts
23942
+ type SerpDomainSummary = {
23943
+ domain: string;
23944
+ resultCount: number;
23945
+ ranks: number[];
23946
+ };
23947
+ type SerpResultFinding = {
23948
+ code: 'query-correction' | 'repeated-domain';
23949
+ evidenceRef: string;
23950
+ principle: string;
23951
+ detail: string;
23952
+ };
23953
+ type SerpResultsReport = {
23954
+ schemaVersion: 1;
23955
+ generatedAt: string;
23956
+ dataStatus: 'complete' | 'partial' | 'unavailable';
23957
+ market: SearchMarket;
23958
+ summary: {
23959
+ keyword: string;
23960
+ effectiveKeyword: string;
23961
+ requestedDepth: number;
23962
+ organicResults: number;
23963
+ uniqueDomains: number;
23964
+ observedFeatures: number;
23965
+ correctedQuery: boolean;
23966
+ verdict: string;
23967
+ };
23968
+ evidence: ProviderEvidence<SerpSnapshot>;
23969
+ domains: SerpDomainSummary[];
23970
+ findings: SerpResultFinding[];
23971
+ caveats: string[];
23972
+ nextSteps: string[];
23973
+ };
23974
+ type SerpResultsReportDependencies = {
23975
+ candidates?: readonly ProviderCandidate[];
23976
+ now?: () => Date;
23977
+ };
23978
+ declare function serpResultsReport(input: {
23979
+ keyword: string;
23980
+ market: SearchMarket;
23981
+ depth?: number;
23982
+ provider?: ProviderId;
23983
+ projectId?: string;
23984
+ context?: Partial<ProviderRequestContext>;
23985
+ refresh?: boolean;
23986
+ }, dependencies?: SerpResultsReportDependencies): Promise<SerpResultsReport>;
23987
+ //#endregion
23130
23988
  //#region packages/core/src/analyze/query-cluster-primitives.d.ts
23131
23989
  type QueryClusterRow = {
23132
23990
  query: string;
@@ -23186,8 +24044,10 @@ type QueryClusterReport = {
23186
24044
  caveats: string[];
23187
24045
  recommendations: string[];
23188
24046
  };
24047
+ type QueryClusterSourceRow = Awaited<ReturnType<typeof querySearchAnalytics>>['rows'][number];
23189
24048
  declare function queryClusterReport(input: {
23190
24049
  site: string;
24050
+ days?: number;
23191
24051
  scope?: string;
23192
24052
  brand?: string;
23193
24053
  brandTerms?: string[];
@@ -23196,6 +24056,54 @@ declare function queryClusterReport(input: {
23196
24056
  limit?: number;
23197
24057
  refresh?: boolean;
23198
24058
  }): Promise<QueryClusterReport>;
24059
+ declare function buildQueryClusterReportFromRows(input: {
24060
+ site: string;
24061
+ days: number;
24062
+ range: {
24063
+ startDate: string;
24064
+ endDate: string;
24065
+ };
24066
+ generatedAt: string;
24067
+ rows: QueryClusterSourceRow[];
24068
+ scope?: string;
24069
+ brand?: string;
24070
+ brandTerms?: string[];
24071
+ includeBrand?: boolean;
24072
+ minImpressions?: number;
24073
+ limit?: number;
24074
+ }): QueryClusterReport;
24075
+ //#endregion
24076
+ //#region packages/core/src/analyze/pseo-opportunities/input.d.ts
24077
+ type ValidatedPseoOpportunitiesInput = Omit<PseoOpportunitiesInput, 'days' | 'templateLimit' | 'clusterLimit' | 'discoverySources' | 'discoveryLimit' | 'candidateLimit' | 'serpLimit' | 'serpDepth' | 'market' | 'provider'> & {
24078
+ days: number;
24079
+ templateLimit: number;
24080
+ clusterLimit: number;
24081
+ discoverySources: KeywordDiscoverySource[];
24082
+ discoveryLimit: number;
24083
+ candidateLimit: number;
24084
+ serpLimit: number;
24085
+ serpDepth: number;
24086
+ market?: SearchMarket;
24087
+ provider?: PseoOpportunitiesInput['provider'];
24088
+ };
24089
+ //#endregion
24090
+ //#region packages/core/src/analyze/pseo-opportunities/first-party-acquisition.d.ts
24091
+ type PseoOpportunityFirstPartyReport = {
24092
+ audit: PseoAuditReport;
24093
+ queryClusters: QueryClusterReport;
24094
+ };
24095
+ declare function pseoOpportunityFirstPartyReport(options: ValidatedPseoOpportunitiesInput, dependencies?: {
24096
+ acquirePseoAuditEvidence?: typeof acquirePseoAuditEvidence;
24097
+ }): Promise<PseoOpportunityFirstPartyReport>;
24098
+ //#endregion
24099
+ //#region packages/core/src/analyze/pseo-opportunities/report.d.ts
24100
+ type PseoOpportunitiesDependencies = {
24101
+ firstPartyReport?: typeof pseoOpportunityFirstPartyReport;
24102
+ keywordResearchReport?: typeof keywordResearchReport;
24103
+ serpResultsReport?: typeof serpResultsReport;
24104
+ now?: () => Date;
24105
+ };
24106
+ declare function pseoOpportunitiesReport(input: PseoOpportunitiesInput, dependencies?: PseoOpportunitiesDependencies): Promise<PseoOpportunitiesReport>;
23199
24107
  //#endregion
23200
24108
  //#region packages/core/src/errors.d.ts
23201
24109
  type SeoErrorCode = 'ACCESS_DENIED' | 'AUTH_CONFIG_REQUIRED' | 'AUTH_EXPIRED' | 'AUTH_REQUIRED' | 'INSUFFICIENT_DATA' | 'INTERNAL_ERROR' | 'INVALID_INPUT' | 'OPTIONAL_PROVIDER_UNAVAILABLE' | 'PROPERTY_NOT_FOUND' | 'PROVIDER_UNAVAILABLE' | 'RATE_LIMITED';
@@ -23306,9 +24214,6 @@ declare function reportNarrative(input: {
23306
24214
  //#region packages/core/src/analyze/reports/presentation.d.ts
23307
24215
  declare function reportPresentation(report: ReportNarrative): Presentation;
23308
24216
  //#endregion
23309
- //#region packages/core/src/analyze/second-page-analysis.d.ts
23310
- declare function analyzeSecondPageRows(input: AnalyzeSecondPageInput): SecondPageAnalysis;
23311
- //#endregion
23312
24217
  //#region packages/core/src/analyze/second-page.d.ts
23313
24218
  type SearchAnalytics = typeof querySearchAnalytics;
23314
24219
  type FetchPage = typeof fetchPage;
@@ -24947,18 +25852,538 @@ declare function fileSize(path: string): number;
24947
25852
  declare function plural(count: number, singular: string, pluralLabel?: string): string;
24948
25853
  declare function countLabel(count: number, singular: string, pluralLabel?: string): string;
24949
25854
  //#endregion
25855
+ //#region packages/core/src/providers/cost-limits.d.ts
25856
+ type ProviderSpendLimits = {
25857
+ dailyNoticeMicros: number;
25858
+ dailyHardLimitMicros: number | null;
25859
+ monthlyHardLimitMicros: number | null;
25860
+ maxRequestsPerReport: number;
25861
+ maxRowsPerReport: number;
25862
+ };
25863
+ declare const DEFAULT_PROVIDER_SPEND_LIMITS: ProviderSpendLimits;
25864
+ declare function getProviderSpendLimits(provider: ProviderId): ProviderSpendLimits;
25865
+ declare function setProviderSpendLimits(provider: ProviderId, limits: ProviderSpendLimits): ProviderSpendLimits;
25866
+ //#endregion
25867
+ //#region packages/core/src/storage/provider-spend.d.ts
25868
+ declare const PROVIDER_SPEND_RETENTION_DAYS: number;
25869
+ declare const PROVIDER_SPEND_MAX_ROWS = 50000;
25870
+ declare const PROVIDER_SPEND_MAX_BYTES: number;
25871
+ type ProviderSpendState = 'reserved' | 'succeeded' | 'partial' | 'failed' | 'unknown';
25872
+ type ProviderSpendReservationInput = {
25873
+ provider: ProviderId;
25874
+ capability: ProviderCapability;
25875
+ endpoint: string;
25876
+ projectId?: string;
25877
+ reportId: string;
25878
+ reportRunId: string;
25879
+ requestedRows: number;
25880
+ estimatedCostMicros: number;
25881
+ };
25882
+ type ProviderSpendReservation = ProviderSpendReservationInput & {
25883
+ id: string;
25884
+ occurredAt: string;
25885
+ expiresAt: string;
25886
+ };
25887
+ type ProviderSpendFinalization = {
25888
+ provider: ProviderId;
25889
+ state: Exclude<ProviderSpendState, 'reserved' | 'unknown'>;
25890
+ actualCostMicros: number | null;
25891
+ returnedRows: number | null;
25892
+ taskIds: string[];
25893
+ };
25894
+ type ProviderSpendNotice = {
25895
+ provider: ProviderId;
25896
+ thresholdMicros: number;
25897
+ periodStart: string;
25898
+ spentMicros: number;
25899
+ };
25900
+ type ProviderSpendSummary = {
25901
+ provider: ProviderId;
25902
+ periodTimezone: 'UTC';
25903
+ today: {
25904
+ periodStart: string;
25905
+ effectiveCostMicros: number;
25906
+ actualCostMicros: number;
25907
+ estimatedOrUnknownCostMicros: number;
25908
+ requests: number;
25909
+ };
25910
+ month: {
25911
+ periodStart: string;
25912
+ effectiveCostMicros: number;
25913
+ actualCostMicros: number;
25914
+ estimatedOrUnknownCostMicros: number;
25915
+ requests: number;
25916
+ };
25917
+ retained: {
25918
+ effectiveCostMicros: number;
25919
+ actualCostMicros: number;
25920
+ estimatedOrUnknownCostMicros: number;
25921
+ requests: number;
25922
+ oldestAt: string | null;
25923
+ newestAt: string | null;
25924
+ };
25925
+ states: Record<ProviderSpendState, number>;
25926
+ limits: ProviderSpendLimits;
25927
+ retention: {
25928
+ days: number;
25929
+ maxRows: number;
25930
+ maxBytes: number;
25931
+ logicalBytes: number;
25932
+ };
25933
+ };
25934
+ declare function reserveProviderSpend(input: ProviderSpendReservationInput, options?: {
25935
+ database?: SqliteDatabase.Database;
25936
+ limits?: ProviderSpendLimits;
25937
+ now?: number;
25938
+ }): ProviderSpendReservation;
25939
+ declare function finalizeProviderSpend(reservationId: string, result: ProviderSpendFinalization, options?: {
25940
+ database?: SqliteDatabase.Database;
25941
+ limits?: ProviderSpendLimits;
25942
+ now?: number;
25943
+ }): ProviderSpendNotice | null;
25944
+ declare function getProviderSpendSummary(provider: ProviderId, options?: {
25945
+ database?: SqliteDatabase.Database;
25946
+ limits?: ProviderSpendLimits;
25947
+ now?: number;
25948
+ }): ProviderSpendSummary;
25949
+ //#endregion
25950
+ //#region packages/core/src/providers/transport.d.ts
25951
+ type ProviderFetch = (url: string | URL, init?: RequestInit$1) => Promise<Response$1>;
25952
+ type ProviderRequestInput = {
25953
+ provider: ProviderId;
25954
+ operation: string;
25955
+ url: string | URL;
25956
+ init?: RequestInit$1;
25957
+ fetch: ProviderFetch;
25958
+ maxResponseBytes: number;
25959
+ timeoutMs: number;
25960
+ retry?: 'never' | 'safe';
25961
+ retryDelayMs?: number;
25962
+ };
25963
+ declare function providerRequestText(input: ProviderRequestInput): Promise<string>;
25964
+ declare function providerRequestJson<T>(input: ProviderRequestInput & {
25965
+ schema: z.ZodType<T>;
25966
+ }): Promise<T>;
25967
+ //#endregion
25968
+ //#region packages/core/src/providers/dataforseo/credentials.d.ts
25969
+ declare const DATAFORSEO_LOGIN_ENV = "SEO_DATAFORSEO_LOGIN";
25970
+ declare const DATAFORSEO_PASSWORD_ENV = "SEO_DATAFORSEO_PASSWORD";
25971
+ declare const DATAFORSEO_CREDENTIAL_SECRET = "dataforseo-credentials";
25972
+ type DataForSeoCredentials = {
25973
+ login: string;
25974
+ password: string;
25975
+ };
25976
+ type StoredDataForSeoCredentials = DataForSeoCredentials & {
25977
+ source: ProviderSecretSource;
25978
+ migrated: boolean;
25979
+ };
25980
+ declare function writeDataForSeoCredentials(credentials: DataForSeoCredentials): Promise<Exclude<ProviderSecretSource, 'environment'>>;
25981
+ declare function readDataForSeoCredentials(input?: {
25982
+ env?: NodeJS.ProcessEnv;
25983
+ }): Promise<StoredDataForSeoCredentials | undefined>;
25984
+ declare function deleteDataForSeoCredentials(): Promise<void>;
25985
+ //#endregion
25986
+ //#region packages/core/src/providers/dataforseo/discovery-schema.d.ts
25987
+ declare const dataForSeoDiscoveryResponseSchema: z.ZodObject<{
25988
+ status_code: z.ZodNumber;
25989
+ status_message: z.ZodString;
25990
+ cost: z.ZodOptional<z.ZodNumber>;
25991
+ tasks_count: z.ZodNumber;
25992
+ tasks_error: z.ZodNumber;
25993
+ tasks: z.ZodArray<z.ZodObject<{
25994
+ id: z.ZodOptional<z.ZodString>;
25995
+ status_code: z.ZodNumber;
25996
+ status_message: z.ZodString;
25997
+ cost: z.ZodOptional<z.ZodNumber>;
25998
+ result_count: z.ZodOptional<z.ZodNumber>;
25999
+ result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
26000
+ seed_keyword: z.ZodOptional<z.ZodString>;
26001
+ seed_keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
26002
+ total_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26003
+ items_count: z.ZodOptional<z.ZodNumber>;
26004
+ offset_token: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26005
+ items: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
26006
+ keyword: z.ZodString;
26007
+ keyword_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26008
+ search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26009
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26010
+ competition: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26011
+ monthly_searches: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
26012
+ year: z.ZodNumber;
26013
+ month: z.ZodNumber;
26014
+ search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26015
+ }, z.core.$loose>>>>;
26016
+ last_updated_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26017
+ }, z.core.$strip>>>;
26018
+ keyword_properties: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26019
+ keyword_difficulty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26020
+ }, z.core.$strip>>>;
26021
+ serp_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26022
+ se_results_count: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
26023
+ }, z.core.$strip>>>;
26024
+ search_intent_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26025
+ main_intent: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
26026
+ informational: "informational";
26027
+ navigational: "navigational";
26028
+ commercial: "commercial";
26029
+ transactional: "transactional";
26030
+ }>>>;
26031
+ }, z.core.$strip>>>;
26032
+ }, z.core.$loose>, z.ZodObject<{
26033
+ keyword_data: z.ZodObject<{
26034
+ keyword: z.ZodString;
26035
+ keyword_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26036
+ search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26037
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26038
+ competition: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26039
+ monthly_searches: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
26040
+ year: z.ZodNumber;
26041
+ month: z.ZodNumber;
26042
+ search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26043
+ }, z.core.$loose>>>>;
26044
+ last_updated_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26045
+ }, z.core.$strip>>>;
26046
+ keyword_properties: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26047
+ keyword_difficulty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26048
+ }, z.core.$strip>>>;
26049
+ serp_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26050
+ se_results_count: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
26051
+ }, z.core.$strip>>>;
26052
+ search_intent_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26053
+ main_intent: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
26054
+ informational: "informational";
26055
+ navigational: "navigational";
26056
+ commercial: "commercial";
26057
+ transactional: "transactional";
26058
+ }>>>;
26059
+ }, z.core.$strip>>>;
26060
+ }, z.core.$loose>;
26061
+ depth: z.ZodOptional<z.ZodNumber>;
26062
+ related_keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
26063
+ }, z.core.$loose>]>>>>;
26064
+ }, z.core.$loose>>>>;
26065
+ }, z.core.$loose>>;
26066
+ }, z.core.$loose>;
26067
+ type DataForSeoDiscoveryResponse = z.infer<typeof dataForSeoDiscoveryResponseSchema>;
26068
+ //#endregion
26069
+ //#region packages/core/src/providers/dataforseo/paid-request.d.ts
26070
+ type DataForSeoUnitPrice = {
26071
+ perRequestMicros: number | null;
26072
+ perResultMicros: number | null;
26073
+ };
26074
+ //#endregion
26075
+ //#region packages/core/src/providers/dataforseo/schema.d.ts
26076
+ declare const dataForSeoKeywordOverviewResponseSchema: z.ZodObject<{
26077
+ status_code: z.ZodNumber;
26078
+ status_message: z.ZodString;
26079
+ cost: z.ZodOptional<z.ZodNumber>;
26080
+ tasks_count: z.ZodNumber;
26081
+ tasks_error: z.ZodNumber;
26082
+ tasks: z.ZodArray<z.ZodObject<{
26083
+ id: z.ZodOptional<z.ZodString>;
26084
+ status_code: z.ZodNumber;
26085
+ status_message: z.ZodString;
26086
+ cost: z.ZodOptional<z.ZodNumber>;
26087
+ result_count: z.ZodOptional<z.ZodNumber>;
26088
+ result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
26089
+ items_count: z.ZodOptional<z.ZodNumber>;
26090
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
26091
+ keyword: z.ZodString;
26092
+ keyword_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26093
+ search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26094
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26095
+ competition: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26096
+ monthly_searches: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
26097
+ year: z.ZodNumber;
26098
+ month: z.ZodNumber;
26099
+ search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26100
+ }, z.core.$loose>>>>;
26101
+ last_updated_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26102
+ }, z.core.$strip>>>;
26103
+ keyword_properties: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26104
+ keyword_difficulty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26105
+ }, z.core.$strip>>>;
26106
+ serp_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26107
+ se_results_count: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
26108
+ }, z.core.$strip>>>;
26109
+ search_intent_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26110
+ main_intent: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
26111
+ informational: "informational";
26112
+ navigational: "navigational";
26113
+ commercial: "commercial";
26114
+ transactional: "transactional";
26115
+ }>>>;
26116
+ }, z.core.$strip>>>;
26117
+ }, z.core.$loose>>>;
26118
+ }, z.core.$loose>>>>;
26119
+ }, z.core.$loose>>;
26120
+ }, z.core.$loose>;
26121
+ type DataForSeoKeywordOverviewResponse = z.infer<typeof dataForSeoKeywordOverviewResponseSchema>;
26122
+ //#endregion
26123
+ //#region packages/core/src/providers/dataforseo/serp-schema.d.ts
26124
+ declare const dataForSeoSerpResponseSchema: z.ZodObject<{
26125
+ status_code: z.ZodNumber;
26126
+ status_message: z.ZodString;
26127
+ cost: z.ZodOptional<z.ZodNumber>;
26128
+ tasks_count: z.ZodNumber;
26129
+ tasks_error: z.ZodNumber;
26130
+ tasks: z.ZodArray<z.ZodObject<{
26131
+ id: z.ZodOptional<z.ZodString>;
26132
+ status_code: z.ZodNumber;
26133
+ status_message: z.ZodString;
26134
+ cost: z.ZodOptional<z.ZodNumber>;
26135
+ result_count: z.ZodOptional<z.ZodNumber>;
26136
+ result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
26137
+ keyword: z.ZodString;
26138
+ se_domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26139
+ check_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26140
+ datetime: z.ZodString;
26141
+ spell: z.ZodOptional<z.ZodNullable<z.ZodObject<{
26142
+ keyword: z.ZodOptional<z.ZodString>;
26143
+ type: z.ZodOptional<z.ZodString>;
26144
+ }, z.core.$loose>>>;
26145
+ item_types: z.ZodOptional<z.ZodArray<z.ZodString>>;
26146
+ se_results_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26147
+ pages_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26148
+ items_count: z.ZodOptional<z.ZodNumber>;
26149
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
26150
+ type: z.ZodString;
26151
+ rank_group: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26152
+ rank_absolute: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26153
+ page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26154
+ domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26155
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26156
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26157
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26158
+ is_featured_snippet: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
26159
+ }, z.core.$loose>>>;
26160
+ }, z.core.$loose>>>>;
26161
+ }, z.core.$loose>>;
26162
+ }, z.core.$loose>;
26163
+ type DataForSeoSerpResponse = z.infer<typeof dataForSeoSerpResponseSchema>;
26164
+ //#endregion
26165
+ //#region packages/core/src/providers/dataforseo/client-types.d.ts
26166
+ type DataForSeoAccountSnapshot = {
26167
+ provider: 'dataforseo';
26168
+ login: string;
26169
+ timezone: string | null;
26170
+ balanceMicros: number | null;
26171
+ depositedMicros: number | null;
26172
+ accountDailySpendMicros: number | null;
26173
+ accountDailySpendPeriod: string | null;
26174
+ accountDailyLimitMicros: number | null;
26175
+ keywordOverviewPrice: DataForSeoUnitPrice;
26176
+ keywordDiscoveryPrices: Record<KeywordDiscoverySource, DataForSeoUnitPrice>;
26177
+ serpLiveAdvancedPrice: DataForSeoUnitPrice;
26178
+ backlinksSubscriptionExpiresAt: string | null;
26179
+ aiMentionsSubscriptionExpiresAt: string | null;
26180
+ apiVersion: string | null;
26181
+ requestCostMicros: number;
26182
+ taskIds: string[];
26183
+ observedAt: string;
26184
+ };
26185
+ type DataForSeoClientOptions = {
26186
+ fetch?: ProviderFetch;
26187
+ credentials?: () => DataForSeoCredentials | undefined | Promise<DataForSeoCredentials | undefined>;
26188
+ baseUrl?: string;
26189
+ timeoutMs?: number;
26190
+ maxResponseBytes?: number;
26191
+ now?: () => Date;
26192
+ database?: SqliteDatabase.Database;
26193
+ keywordOverviewTtlMs?: number;
26194
+ keywordDiscoveryTtlMs?: number;
26195
+ serpTtlMs?: number;
26196
+ accountPricingTtlMs?: number;
26197
+ spendLimits?: ProviderSpendLimits;
26198
+ };
26199
+ type DataForSeoKeywordOverviewRequest = {
26200
+ keywords: string[];
26201
+ languageCode: string;
26202
+ locationCode?: number;
26203
+ locationName?: string;
26204
+ includeSerpInfo?: boolean;
26205
+ includeClickstreamData?: boolean;
26206
+ refresh?: boolean;
26207
+ projectId?: string;
26208
+ reportId: string;
26209
+ reportRunId: string;
26210
+ };
26211
+ type DataForSeoKeywordOverviewSnapshot = {
26212
+ response: DataForSeoKeywordOverviewResponse;
26213
+ observedAt: string;
26214
+ returnedRows: number;
26215
+ cache: ProviderCacheEvidence;
26216
+ cost: ProviderCostEvidence;
26217
+ spendNotice: ProviderSpendNotice | null;
26218
+ warnings: ProviderWarning[];
26219
+ };
26220
+ type DataForSeoKeywordDiscoveryRequest = {
26221
+ source: KeywordDiscoverySource;
26222
+ seeds: string[];
26223
+ languageCode: string;
26224
+ locationCode?: number;
26225
+ locationName?: string;
26226
+ limit: number;
26227
+ refresh?: boolean;
26228
+ context: ProviderRequestContext;
26229
+ };
26230
+ type DataForSeoKeywordDiscoverySnapshot = {
26231
+ response: DataForSeoDiscoveryResponse;
26232
+ observedAt: string;
26233
+ returnedRows: number;
26234
+ providerTotalRows: number | null;
26235
+ nextCursor: string | null;
26236
+ cache: ProviderCacheEvidence;
26237
+ cost: ProviderCostEvidence;
26238
+ spendNotice: ProviderSpendNotice | null;
26239
+ warnings: ProviderWarning[];
26240
+ };
26241
+ type DataForSeoSerpRequest = {
26242
+ keyword: string;
26243
+ languageCode: string;
26244
+ locationCode?: number;
26245
+ locationName?: string;
26246
+ device: 'desktop' | 'mobile';
26247
+ depth: number;
26248
+ refresh?: boolean;
26249
+ context: ProviderRequestContext;
26250
+ };
26251
+ type DataForSeoSerpSnapshot = {
26252
+ response: DataForSeoSerpResponse;
26253
+ observedAt: string;
26254
+ returnedRows: number;
26255
+ cache: ProviderCacheEvidence;
26256
+ cost: ProviderCostEvidence;
26257
+ spendNotice: ProviderSpendNotice | null;
26258
+ warnings: ProviderWarning[];
26259
+ };
26260
+ //#endregion
26261
+ //#region packages/core/src/providers/dataforseo/client.d.ts
26262
+ declare class DataForSeoClient {
26263
+ private readonly fetch;
26264
+ private readonly credentials;
26265
+ private readonly baseUrl;
26266
+ private readonly timeoutMs;
26267
+ private readonly maxResponseBytes;
26268
+ private readonly now;
26269
+ private readonly database;
26270
+ private readonly keywordOverviewTtlMs;
26271
+ private readonly keywordDiscoveryTtlMs;
26272
+ private readonly serpTtlMs;
26273
+ private readonly accountPricingTtlMs;
26274
+ private readonly spendLimits;
26275
+ private accountPricing;
26276
+ private accountPricingRequest;
26277
+ constructor(options?: DataForSeoClientOptions);
26278
+ private getCredentials;
26279
+ private authorization;
26280
+ private userDataForCredentials;
26281
+ userData(): Promise<DataForSeoAccountSnapshot>;
26282
+ private pricingForCredentials;
26283
+ private paidPost;
26284
+ keywordOverview(input: DataForSeoKeywordOverviewRequest): Promise<DataForSeoKeywordOverviewSnapshot>;
26285
+ keywordDiscovery(input: DataForSeoKeywordDiscoveryRequest): Promise<DataForSeoKeywordDiscoverySnapshot>;
26286
+ serpLive(input: DataForSeoSerpRequest): Promise<DataForSeoSerpSnapshot>;
26287
+ }
26288
+ //#endregion
26289
+ //#region packages/core/src/providers/dataforseo/keyword-discovery.d.ts
26290
+ type KeywordDiscoveryClient = Pick<DataForSeoClient, 'keywordDiscovery'>;
26291
+ type DataForSeoKeywordDiscoveryProviderOptions = DataForSeoClientOptions & {
26292
+ client?: KeywordDiscoveryClient;
26293
+ };
26294
+ declare class DataForSeoKeywordDiscoveryProvider implements KeywordDiscoveryProvider {
26295
+ readonly provider: "dataforseo";
26296
+ readonly capabilitySupport: readonly [{
26297
+ readonly capability: "keyword-discovery";
26298
+ readonly status: "available";
26299
+ readonly markets: readonly [{
26300
+ readonly searchEngines: readonly ["google"];
26301
+ readonly location: "any";
26302
+ }];
26303
+ }];
26304
+ private readonly client;
26305
+ constructor(options?: DataForSeoKeywordDiscoveryProviderOptions);
26306
+ discoverKeywords(input: KeywordDiscoveryRequest): Promise<ProviderEvidence<KeywordIdea[]>>;
26307
+ }
26308
+ //#endregion
26309
+ //#region packages/core/src/providers/dataforseo/keyword-metrics.d.ts
26310
+ type KeywordMetricsClient = Pick<DataForSeoClient, 'keywordOverview'>;
26311
+ type DataForSeoKeywordMetricsProviderOptions = DataForSeoClientOptions & {
26312
+ client?: KeywordMetricsClient;
26313
+ };
26314
+ declare class DataForSeoKeywordMetricsProvider implements KeywordMetricsProvider {
26315
+ readonly provider: "dataforseo";
26316
+ readonly capabilitySupport: readonly [{
26317
+ readonly capability: "keyword-metrics";
26318
+ readonly status: "available";
26319
+ readonly markets: readonly [{
26320
+ readonly searchEngines: readonly ["google"];
26321
+ readonly location: "any";
26322
+ }];
26323
+ }];
26324
+ private readonly client;
26325
+ constructor(options?: DataForSeoKeywordMetricsProviderOptions);
26326
+ keywordMetrics(input: KeywordMetricsRequest): Promise<ProviderEvidence<KeywordMetric[]>>;
26327
+ }
26328
+ //#endregion
26329
+ //#region packages/core/src/providers/dataforseo/serp-snapshot.d.ts
26330
+ type SerpClient = Pick<DataForSeoClient, 'serpLive'>;
26331
+ type DataForSeoSerpSnapshotProviderOptions = DataForSeoClientOptions & {
26332
+ client?: SerpClient;
26333
+ };
26334
+ declare class DataForSeoSerpSnapshotProvider implements SerpSnapshotProvider {
26335
+ readonly provider: "dataforseo";
26336
+ readonly capabilitySupport: readonly [{
26337
+ readonly capability: "serp-snapshot";
26338
+ readonly status: "available";
26339
+ readonly markets: readonly [{
26340
+ readonly searchEngines: readonly ["google"];
26341
+ readonly devices: readonly ["desktop", "mobile"];
26342
+ readonly location: "any";
26343
+ }];
26344
+ }];
26345
+ private readonly client;
26346
+ constructor(options?: DataForSeoSerpSnapshotProviderOptions);
26347
+ serpSnapshot(input: SerpSnapshotRequest): Promise<ProviderEvidence<SerpSnapshot>>;
26348
+ }
26349
+ //#endregion
24950
26350
  //#region packages/core/src/providers/dataforseo.d.ts
26351
+ type DataForSeoProviderOptions = DataForSeoClientOptions;
24951
26352
  declare class DataForSeoProvider implements KeywordDataProvider {
24952
26353
  readonly name = "dataforseo";
24953
26354
  readonly capabilities: {
24954
26355
  overview: boolean;
24955
26356
  };
24956
- private getAuthHeader;
26357
+ private readonly client;
26358
+ constructor(options?: DataForSeoProviderOptions);
24957
26359
  keywordOverview(phrase: string, opts?: ProviderOpts): Promise<ProviderResult<KeywordOverview>>;
24958
26360
  }
24959
26361
  //#endregion
26362
+ //#region packages/core/src/providers/errors.d.ts
26363
+ type ProviderErrorCode = 'configuration' | 'authentication' | 'budget-limit' | 'rate-limit' | 'timeout' | 'response-too-large' | 'invalid-response' | 'remote-error';
26364
+ declare class ProviderError extends Error {
26365
+ readonly provider: ProviderId;
26366
+ readonly operation: string;
26367
+ readonly code: ProviderErrorCode;
26368
+ readonly status: number | null;
26369
+ readonly retryable: boolean;
26370
+ constructor(input: {
26371
+ provider: ProviderId;
26372
+ operation: string;
26373
+ code: ProviderErrorCode;
26374
+ message: string;
26375
+ status?: number;
26376
+ retryable?: boolean;
26377
+ cause?: unknown;
26378
+ });
26379
+ toJSON(): Record<string, unknown>;
26380
+ }
26381
+ //#endregion
24960
26382
  //#region packages/core/src/providers/router.d.ts
24961
- declare function getKeywordProvider(prefer?: 'cheap' | 'authoritative'): KeywordDataProvider | undefined;
26383
+ declare function getKeywordProvider(prefer?: 'cheap' | 'authoritative', dependencies?: {
26384
+ readConfig?: () => AppConfig;
26385
+ hasDataForSeoCredentials?: () => boolean | Promise<boolean>;
26386
+ }): Promise<KeywordDataProvider | undefined>;
24962
26387
  //#endregion
24963
26388
  //#region packages/core/src/providers/semrush.d.ts
24964
26389
  declare class SemrushProvider implements KeywordDataProvider {
@@ -25235,7 +26660,7 @@ declare const TELEMETRY_TIMEOUT_MS = 2000;
25235
26660
  declare const TELEMETRY_EVENTS: readonly ["first_run", "setup_complete", "audit_start", "audit_complete", "audit_failed", "first_audit_complete", "active_d1", "active_d7", "active_d30"];
25236
26661
  declare const TELEMETRY_AGENTS: readonly ["claude-code", "cursor", "codex", "cli", "unknown"];
25237
26662
  declare const TELEMETRY_ERROR_CATEGORIES: readonly ["auth", "crawl_timeout", "network", "config", "unknown"];
25238
- declare const TELEMETRY_REPORTS: readonly ["affected-urls", "agent-readiness", "ai-readiness", "ai-referrals", "ai-search-scorecard", "audit-page", "audit-urls", "bing-webmaster-overview", "cannibalisation", "community-intent", "compare-crawls", "content-optimization", "crawl-diff", "site-crawl", "ctr-underperformers", "decaying-pages", "setup-check", "entity-readiness", "explain-crawl-issue", "geo-gaps", "crawl-report", "index-coverage", "index-coverage-plan", "index-monitor", "index-watch", "internal-links", "link-evidence", "server-log-analysis", "link-recovery", "crawl-history", "crawler-rules", "llms-txt-audit", "generate-llms-txt", "measure-change", "monthly-report", "okf-build", "okf-validate", "page-opportunities", "performance-audit", "pseo-audit", "query-clusters", "quick-wins", "redirect-trace", "narrative-report", "second-page", "segment-impact", "striking-distance", "seo-to-ai-query", "top-fixes", "traffic-anomaly", "update-correlation", "search-performance-overview", "monthly-action-plan", "refresh-priorities", "technical-watch", "update-postmortem"];
26663
+ declare const TELEMETRY_REPORTS: readonly ["affected-urls", "agent-readiness", "ai-readiness", "ai-referrals", "ai-search-scorecard", "audit-page", "audit-urls", "bing-webmaster-overview", "cannibalisation", "community-intent", "compare-crawls", "content-optimization", "crawl-diff", "site-crawl", "ctr-underperformers", "decaying-pages", "setup-check", "entity-readiness", "explain-crawl-issue", "geo-gaps", "crawl-report", "index-coverage", "index-coverage-plan", "index-monitor", "index-watch", "internal-links", "keyword-metrics", "keyword-opportunities", "keyword-research", "link-evidence", "server-log-analysis", "link-recovery", "crawl-history", "crawler-rules", "llms-txt-audit", "generate-llms-txt", "measure-change", "monthly-report", "okf-build", "okf-validate", "page-opportunities", "performance-audit", "pseo-audit", "pseo-opportunities", "query-clusters", "quick-wins", "redirect-trace", "narrative-report", "second-page", "segment-impact", "serp-results", "striking-distance", "seo-to-ai-query", "top-fixes", "traffic-anomaly", "update-correlation", "search-performance-overview", "monthly-action-plan", "refresh-priorities", "technical-watch", "update-postmortem"];
25239
26664
  type TelemetryEvent = (typeof TELEMETRY_EVENTS)[number];
25240
26665
  type TelemetryAgent = (typeof TELEMETRY_AGENTS)[number];
25241
26666
  type TelemetryErrorCategory = (typeof TELEMETRY_ERROR_CATEGORIES)[number];
@@ -25310,5 +26735,5 @@ declare function isoDate(daysAgo?: number): string;
25310
26735
  //#region packages/core/src/version.d.ts
25311
26736
  declare const SEO_VERSION: string;
25312
26737
  //#endregion
25313
- export { AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, AI_SEARCH_SCORECARD_METHODOLOGY_ID, AI_SEARCH_SCORECARD_METHODOLOGY_VERSION, AUDIT_PAGE_RULE_IDS, AUTOMATIC_BASELINE_SITE_RETENTION, AUTOMATIC_BASELINE_TOTAL_RETENTION, AccessBlockEvidence, AffectedUrl, AffectedUrlFilters, AffectedUrlResult, AffectedUrlSelection, type AgentDiscoveryDataStatus, type AgentEndpointDiscovery, type AgentEndpointObservation, type AgentLinkHeaderEntry, type AgentLinkHeaderObservation, AgentReadinessCheck, AgentReadinessCheckStatus, type AgentReadinessProfile, AgentReadinessReport, AgentReadinessSection, type AgentRepresentationResponse, type AgentSkillObservation, AiReadinessReport, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AiSearchScorecard, AnalyticsMetricDelta, AnalyticsTestMetrics, type AnalyzeCannibalRowsInput, type AnalyzeDecayInput, type AnalyzeQuickWinsInput, type AnalyzeSecondPageInput, type AnalyzeStrikingDistanceInput, AppConfig, AuditPageDependencies, AuditPageReport, AuthorizedGoogleClient, BING_API_KEY_ENV, BING_API_KEY_SECRET, BROWSER_USER_AGENT, BacklinkProvider, BingCrawlRow, BingDimensionRow, BingLinkCountRow, BingLinkPage, BingRows, BingTrafficRow, BingUrlLinkRow, BingWebmasterClient, BingWebmasterCredentials, BingWebmasterSite, BoundedSitemapInventory, BrandTermCandidate, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CRAWL_REPORT_STORAGE_VERSION, CRAWL_RUN_RETENTION, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_DEFAULT_MIN_IMPRESSIONS, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, ChangeMeasurement, ChangeMeasurementAttempt, ChangeRow, ChangeScope, ClientProfile, ClientProfileInput, CollectedLinkEvidence, CommunityIntent, CommunityIntentClassification, CommunityIntentReport, ContentExtractionDiagnostics, ContentExtractor, ContentGroup, ContentGroupDimension, ContentGroupMatchType, ContentGroupRow, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, type CrawlAgentDiscovery, CrawlAiBotAccess, CrawlAiResourceSignal, CrawlAiSignals, CrawlAnalyticsDataSource, CrawlConfig, CrawlConfigInput, CrawlDataSourceStatus, CrawlDataSourceWindow, CrawlDiffItem, CrawlDiffRecommendation, CrawlDiffReport, CrawlExternalLinkVerification, CrawlFetchRateConfig, CrawlImplementationQueueInput, CrawlImplementationQueueItem, CrawlImplementationQueueOutput, CrawlIssue, CrawlIssueGroup, CrawlLinkGraph, CrawlMode, CrawlOneResult, CrawlOutputFormat, CrawlPageRow, CrawlPageSnapshot, CrawlReport, CrawlReportDataSources, CrawlReportMeta, CrawlReportSaveOptions, CrawlReportStorageEnvelope, CrawlReportStoreAdapter, CrawlReportSummary, CrawlRequestObservation, CrawlResponseObservation, CrawlRun, CrawlRunRow, CrawlRunStats, CrawlSearchDataSource, type CrawlSiteChecks, type CrawlSiteDependencies, CrawlSitemapDiscovery, CrawlSkipImpact, CrawlSkipReason, CrawlSkipReasonCount, CrawlSkippedUrlsByImpact, CrawlSnapshotDiffReport, CrawlSnapshotIssueChange, CrawlSnapshotPageChange, CrawlStatusEvent, CrawlStatusHandler, CrawlStatusPhase, CrawlStrategy, CrawlerCategory, CrawlerIdentity, CrawlerPathSummary, CrawlerSummary, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, DataForSeoProvider, type DecayAnalysis, type DecayComparison, type DecayDiagnosis, type DecayGroup, type DecayItem, type DecayMetrics, type DecayReport, type DecaySelection, type DecaySignal, DecayingDependencies, DecayingReportInput, DiagnosePropertyDependencies, DiagnosePropertyReport, DiagnosisDataStatus, DiagnosisPriority, DoctorCheck, DueIndexSelection, DueIndexUrl, EffectiveSnippetControl, EntityReadinessCheck, EntityReadinessReport, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, Ga4AccountSummary, Ga4DataStream, Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, GenerateLlmsTxtOptions, GeneratedLlmsTxt, GeoGap, GeoGapFilters, GeoGapResult, type GoogleAccessTokenClient, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INDEXNOW_ENDPOINT, INDEXNOW_KEYS_SECRET, INDEXNOW_KEY_ENV, INDEXNOW_MAX_URLS, INDEX_WATCH_ATTEMPT_RETENTION, INTERNAL_LINK_LEXICAL_TARGET_LIMIT, INTERNAL_LINK_MATCH_EVIDENCE_LIMIT, IndexCoverageBoundedSection, IndexCoverageCandidateItem, IndexCoverageControlReason, IndexCoverageControlledItem, IndexCoverageCrawlInput, IndexCoverageInput, IndexCoverageInventoryItem, IndexCoveragePlan, IndexCoveragePlanInput, IndexCoverageReport, IndexCoverageReportDependencies, IndexCoverageReportInput, IndexCoverageSearchConsoleInput, IndexCoverageSearchVisibilityItem, IndexCoverageSignalsReport, IndexCoverageSitemapInput, IndexCoverageSourceCompleteness, IndexCoverageSourceEvidence, IndexCoverageSourceMembership, IndexCoverageTemplateReview, IndexMonitorPropertyRun, IndexMonitorReport, IndexNowKey, IndexNowKeySource, IndexNowSubmission, IndexPlanProperty, IndexPlanSuggestion, IndexPropertyUrlAllocation, IndexWatchChange, IndexWatchChangeKind, IndexWatchDependencies, IndexWatchIssueCode, IndexWatchItem, IndexWatchPrevious, IndexWatchReport, IndexWatchRow, IndexWatchStore, type InternalLinkCandidate, type InternalLinkMatchKind, type InternalLinkOpportunity, type InternalLinkQueryMatch, InternalLinksAnalysis, InternalLinksAnalysisInput, InternalLinksDependencies, InternalLinksInput, type InternalLinksReport, type InternalLinksSelection, type InternalLinksWarning, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KeywordDataProvider, KeywordOverview, KeywordRow, LINK_RECOVER_RUN_RETENTION, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LatestCrawlSummaryRow, LighthouseFailureCode, LinkEvidenceProvenance, LinkEvidenceProvider, LinkEvidenceRow, LinkRecoverItem, LinkRecoverReport, LinkRecoverSummary, LinkTargetCount, LlmsAuditIssue, LlmsAuditReport, type LlmsTxtLinkObservation, LocalCredentialsProvider, LogPruneResult, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, type MarkdownAlternateObservation, type MarkdownQualityObservation, MeasureChangeDependencies, MetricDelta, MonitoringStatusCheck, MonitoringStatusReport, NarrativeSection, type OAuthClientConfig, OKF_DEFAULT_CONCEPTS, OKF_MAX_CONCEPTS, OkfBundle, OkfExplainReport, OkfFile, OkfValidationIssue, OkfValidationReport, OpportunityBenchmarkRow, PageFetchDiagnostics, PageFetchResult, type PageOpportunityAnalysis, type PageOpportunityAnalysisInput, type PageOpportunityBenchmark, PageOpportunityInput, type PageOpportunityItem, PageOpportunityReport, type PageOpportunitySelection, type PageOpportunityType, type PageOpportunityVerification, type PageRenderer, PageSearchMetrics, PageTopQuery, PartialDiagnosisReason, PerformanceAuditReport, PerformanceFieldData, PerformanceFieldMetric, PerformanceMetric, PerformanceRating, PositionBenchmark, Presentation, PresentationChart, PresentationScalar, PresentationTable, PresentationTableColumn, PriorityQueueItem, ProgressReporter, ProviderOpts, ProviderResult, ProviderSecret, ProviderSecretSource, PseoAuditInput, type PseoAuditReport, type PseoAuditTemplate, type PseoCrawlSample, type PseoCrawlTechnicalStatus, PseoDependencies, type PseoEntityFit, type PseoIndexStatus, type PseoInspectionSample, type PseoPageRow, type PseoQueryCoverage, type PseoQueryPageRow, PseoTemplateCluster, type PseoTemplateMetrics, PseoTemplateShape, QueryCluster, type QueryClusterPage, type QueryClusterRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, REPORT_BASELINE_MAX_AGE_MS, REPORT_BASELINE_MAX_DEPTH, REPORT_BASELINE_MAX_PAGES, RawLinkEvidenceRow, ReadinessCheck, ReadinessSection, ReadinessStatus, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportHtmlInput, ReportHtmlSection, ReportHtmlView, ReportNarrative, ResolveTechnicalBaselineInput, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, SCORECARD_CHECK_WEIGHTS, SCORECARD_STATUS_CREDIT, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, ScorecardBand, ScorecardCheck, ScorecardCheckId, ScorecardObservation, ScorecardStatus, SearchAnalyticsRequest, SearchDateWindow, SearchPageBatch, SearchStatusIncident, SearchUpdate, type SecondPageAnalysis, SecondPageDependencies, SecondPageInput, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, type SecondPageSelection, type SegmentDimension, SegmentImpactDependencies, SegmentImpactInput, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SemrushProvider, SeoChange, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoToAiQueryReport, SerpProvider, ServerLogEvidence, ServerLogFormat, ServerLogRecord, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StatusBreakdown, StorageAdapter, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_NOTICE, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TechnicalBaseline, TechnicalBaselineDependencies, TechnicalBaselineStatus, TelemetryAgent, TelemetryDisableReason, TelemetryErrorCategory, TelemetryEvent, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TestMetrics, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyReport, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UrlInspectionRequest, UrlInspectionResult, WorkflowAction, WorkflowReport, WorkflowStep, addStatus, affectedUrls, agentReadiness, aiPromptsForQuery, aiReadiness, aiReferralSourceForValue, aiReferralsReport, aiSearchScorecard, allocateIndexUrlsToProperties, analyticsConnectionsSchema, analyzeAiReferralRows, analyzeBingCrawl, analyzeBingDimensions, analyzeBingTraffic, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzeInternalLinksFromRows, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, attachCrawlRecommendations, auditCrawlPages, auditCrawlRequests, auditLlmsTxt, auditPage, authStatus, bingAnalysisDefaults, bingWebmasterOverview, bingWebmasterSiteUrl, boundedSitemapInventory, buildOkfBundle, buildPseoAuditReportFromRows, buildTelemetryPayload, cannibalReport, changeMeasurementCsvRows, checkDatabaseReadiness, classifyCommunityIntent, classifyCrawler, clearCache, clientProfileSchema, clusterPseoTemplates, clusterQueryRows, collectAgentDiscovery, collectBingLinkEvidence, combineRobotsValues, communityIntentReport, compareCrawlPages, compareCrawlReports, compareLinkEvidence, compareSegmentRows, configSchema, contentCoverageRecommendation, contentCoverageType, contentOptimizationFromPageOpportunities, contentOptimizationReport, countLabel, crawlConfigHash, crawlConfigSchema, crawlDefinitionId, crawlDiff, crawlFixToQueueItem, crawlImplementationQueueWorkflow, crawlIssueGroupSchema, crawlIssueSchema, crawlOne, crawlPageSnapshotSchema, crawlReportSchema, crawlReportStore, crawlReportSummarySchema, crawlRequestObservationSchema, crawlRunId, crawlSite, crawlSkipImpact, crawlSkipReasonCountsFromRecord, crawlStatusOnly, crawlTopFixSchema, crawlerJsonSchemas, crawlerRuleCategorySchema, crawlerRuleIdSchema, crawlerRuleInfoSchema, crawlerRuleRecommendationSchema, crawlerRuleSeveritySchema, crawlerSchemas, createAuthorizedClient, createBingWebmasterClient, createContentGroup, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createIndexNowKey, createIndexNowKeyRecord, createLogger, createPageRenderer, ctrUnderperformersReport, decayClusterDrafts, decayComparisonRange, decayingReport, deleteChange, deleteClient, deleteContentGroup, deleteCrawlReport, deleteProviderSecret, deleteTokens, deriveBrandTerms, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, emptyStatusBreakdown, ensureSeoCliDirs, entityReadiness, estimateSerpTitleWidth, expectedCtrForPosition, explainOkfValidation, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fetchText, fileSize, finalGscDateRange, findOverlappingSearchUpdates, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, generateLlmsTxt, geoGaps, geoGapsReport, getAuthModeStatus, getCacheStats, getChange, getClient, getClientConfig, getContentGroup, getDb, getKeywordProvider, getPreviousRun, getPrivacySnapshot, getRepeatedLinkRecoverUrls, getRunPages, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleAnalyticsPropertyId, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, importLinkEvidence, importServerLog, indexCoveragePlan, indexCoverageSignals, indexMonitor, indexWatch, inferPseoTemplate, inferTemplateMovement, initializeTelemetry, insertCrawlRun, insertLinkRecoverRun, inspectUrl, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isCompatibleTechnicalBaseline, isCurrentTechnicalBaseline, isEntityEvidenceSchemaType, isSiteIdentitySchemaType, isSkippableReportError, isTelemetryCi, isTelemetryReport, isoDate, isoWeek, latestCrawlReport, latestCrawlSummaries, latestFinalGscDate, latestIndexWatchSummary, latestLinkRecoverSummary, linkEntries, linkEvidenceKey, linkEvidenceReport, linkRecover, linkRecoverRecommendation, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listIndexNowKeys, listRules, listSearchUpdates, listSites, loadCrawlReport, localCredentialsProvider, loginWithLoopback, makeRunId, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, monthlyReport, monthlyReportWorkflow, narrativeCsvFiles, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLinkEvidenceRow, normalizeLoadedCrawlReport, noteCacheWrite, okfConceptLimit, pageEvidenceRecommendation, pageOpportunitiesReport, parseCombinedLogLine, parseIndexNowSite, parseJsonLogLine, parseOlderThan, parsePseoPath, performanceAudit, performanceReportIsCacheable, planDueIndexUrls, planIndexCoverageFromUrls, plural, propertyMatchesUrl, providerPreferenceSchema, pruneIndexWatchSnapshots, pruneLogs, pseoAuditOptions, pseoAuditReport, pseoCsvFiles, pseoIndexStatus, pseoPresentation, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, readBoundedResponseText, readConfig, readOauthClient, readProviderSecret, readTokens, recommendCrawlDiffItem, recommendationForRule, recordChange, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, removeIndexNowKey, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderPseoMarkdown, renderReportHtml, renderWorkflowMarkdown, reportNarrative, reportPresentation, requestHeaders, resolveIndexNowKey, resolveSegmentRanges, resolveSeoCliPaths, resolveTechnicalBaseline, reviewObservations, roundedPosition, runDoctor, runGa4Report, safeError, saveClient, saveCrawlReport, saveIndexNowKey, secondPage, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, seoErrorEnvelope, seoToAiQueryReport, serverLogReport, sessionSourceInListFilter, setClientBingSite, setDefaultClient, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, strikingDistance, submitIndexNow, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, technicalWatchWorkflow, telemetryErrorCategory, templateForUrl, toSeoError, tokenSchema, topCrawlRecommendations, topFixes, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, unavailableSegmentImpactReport, unicodeTokens, updateCorrelation, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateIndexNowKey, validateIndexNowKeyRecord, validateOkfFiles, verifyIndexNowKey, verifyQueryContent, workflowPresentation, writeConfig, writeOauthClient, writeProviderSecret, writeTokens, xRobotsDirectives };
26738
+ export { AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, AI_SEARCH_SCORECARD_METHODOLOGY_ID, AI_SEARCH_SCORECARD_METHODOLOGY_VERSION, AUDIT_PAGE_RULE_IDS, AUTOMATIC_BASELINE_SITE_RETENTION, AUTOMATIC_BASELINE_TOTAL_RETENTION, AccessBlockEvidence, AffectedUrl, AffectedUrlFilters, AffectedUrlResult, AffectedUrlSelection, type AgentDiscoveryDataStatus, type AgentEndpointDiscovery, type AgentEndpointObservation, type AgentLinkHeaderEntry, type AgentLinkHeaderObservation, AgentReadinessCheck, AgentReadinessCheckStatus, type AgentReadinessProfile, AgentReadinessReport, AgentReadinessSection, type AgentRepresentationResponse, type AgentSkillObservation, AiReadinessReport, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AiSearchScorecard, AnalyticsMetricDelta, AnalyticsTestMetrics, type AnalyzeCannibalRowsInput, type AnalyzeDecayInput, type AnalyzeQuickWinsInput, type AnalyzeSecondPageInput, type AnalyzeStrikingDistanceInput, AppConfig, AuditPageDependencies, AuditPageReport, AuthorizedGoogleClient, BING_API_KEY_ENV, BING_API_KEY_SECRET, BROWSER_USER_AGENT, BacklinkProvider, BingCrawlRow, BingDimensionRow, BingLinkCountRow, BingLinkPage, BingRows, BingTrafficRow, BingUrlLinkRow, BingWebmasterClient, BingWebmasterCredentials, BingWebmasterSite, BoundedSecondPageItem, BoundedSitemapInventory, BrandTermCandidate, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CRAWL_REPORT_STORAGE_VERSION, CRAWL_RUN_RETENTION, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_DEFAULT_MIN_IMPRESSIONS, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, ChangeMeasurement, ChangeMeasurementAttempt, ChangeRow, ChangeScope, ClientProfile, ClientProfileInput, CollectedLinkEvidence, CommunityIntent, CommunityIntentClassification, CommunityIntentReport, ContentExtractionDiagnostics, ContentExtractor, ContentGroup, ContentGroupDimension, ContentGroupMatchType, ContentGroupRow, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, type CrawlAgentDiscovery, CrawlAiBotAccess, CrawlAiResourceSignal, CrawlAiSignals, CrawlAnalyticsDataSource, CrawlConfig, CrawlConfigInput, CrawlDataSourceStatus, CrawlDataSourceWindow, CrawlDiffItem, CrawlDiffRecommendation, CrawlDiffReport, CrawlExternalLinkVerification, CrawlFetchRateConfig, CrawlImplementationQueueInput, CrawlImplementationQueueItem, CrawlImplementationQueueOutput, CrawlIssue, CrawlIssueGroup, CrawlLinkGraph, CrawlMode, CrawlOneResult, CrawlOutputFormat, CrawlPageRow, CrawlPageSnapshot, CrawlReport, CrawlReportDataSources, CrawlReportMeta, CrawlReportSaveOptions, CrawlReportStorageEnvelope, CrawlReportStoreAdapter, CrawlReportSummary, CrawlRequestObservation, CrawlResponseObservation, CrawlRun, CrawlRunRow, CrawlRunStats, CrawlSearchDataSource, type CrawlSiteChecks, type CrawlSiteDependencies, CrawlSitemapDiscovery, CrawlSkipImpact, CrawlSkipReason, CrawlSkipReasonCount, CrawlSkippedUrlsByImpact, CrawlSnapshotDiffReport, CrawlSnapshotIssueChange, CrawlSnapshotPageChange, CrawlStatusEvent, CrawlStatusHandler, CrawlStatusPhase, CrawlStrategy, CrawlerCategory, CrawlerIdentity, CrawlerPathSummary, CrawlerSummary, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, DATAFORSEO_CREDENTIAL_SECRET, DATAFORSEO_LOGIN_ENV, DATAFORSEO_PASSWORD_ENV, DEFAULT_PROVIDER_SPEND_LIMITS, type DataForSeoAccountSnapshot, DataForSeoClient, type DataForSeoClientOptions, DataForSeoCredentials, DataForSeoKeywordDiscoveryProvider, DataForSeoKeywordDiscoveryProviderOptions, type DataForSeoKeywordDiscoveryRequest, type DataForSeoKeywordDiscoverySnapshot, DataForSeoKeywordMetricsProvider, DataForSeoKeywordMetricsProviderOptions, type DataForSeoKeywordOverviewRequest, type DataForSeoKeywordOverviewSnapshot, DataForSeoProvider, type DataForSeoSerpRequest, type DataForSeoSerpSnapshot, DataForSeoSerpSnapshotProvider, DataForSeoSerpSnapshotProviderOptions, type DecayAnalysis, type DecayComparison, type DecayDiagnosis, type DecayGroup, type DecayItem, type DecayMetrics, type DecayReport, type DecaySelection, type DecaySignal, DecayingDependencies, DecayingReportInput, DiagnosePropertyDependencies, DiagnosePropertyReport, DiagnosisDataStatus, DiagnosisPriority, DoctorCheck, DueIndexSelection, DueIndexUrl, EffectiveSnippetControl, EntityReadinessCheck, EntityReadinessReport, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, Ga4AccountSummary, Ga4DataStream, Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, GenerateLlmsTxtOptions, GeneratedLlmsTxt, GeoGap, GeoGapFilters, GeoGapResult, type GoogleAccessTokenClient, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INDEXNOW_ENDPOINT, INDEXNOW_KEYS_SECRET, INDEXNOW_KEY_ENV, INDEXNOW_MAX_URLS, INDEX_WATCH_ATTEMPT_RETENTION, INTERNAL_LINK_LEXICAL_TARGET_LIMIT, INTERNAL_LINK_MATCH_EVIDENCE_LIMIT, IndexCoverageBoundedSection, IndexCoverageCandidateItem, IndexCoverageControlReason, IndexCoverageControlledItem, IndexCoverageCrawlInput, IndexCoverageInput, IndexCoverageInventoryItem, IndexCoveragePlan, IndexCoveragePlanInput, IndexCoverageReport, IndexCoverageReportDependencies, IndexCoverageReportInput, IndexCoverageSearchConsoleInput, IndexCoverageSearchVisibilityItem, IndexCoverageSignalsReport, IndexCoverageSitemapInput, IndexCoverageSourceCompleteness, IndexCoverageSourceEvidence, IndexCoverageSourceMembership, IndexCoverageTemplateReview, IndexMonitorPropertyRun, IndexMonitorReport, IndexNowKey, IndexNowKeySource, IndexNowSubmission, IndexPlanProperty, IndexPlanSuggestion, IndexPropertyUrlAllocation, IndexWatchChange, IndexWatchChangeKind, IndexWatchDependencies, IndexWatchIssueCode, IndexWatchItem, IndexWatchPrevious, IndexWatchReport, IndexWatchRow, IndexWatchStore, type InternalLinkCandidate, type InternalLinkMatchKind, type InternalLinkOpportunity, type InternalLinkQueryMatch, InternalLinksAnalysis, InternalLinksAnalysisInput, InternalLinksDependencies, InternalLinksInput, type InternalLinksReport, type InternalLinksSelection, type InternalLinksWarning, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KeywordDataProvider, KeywordDiscoveryProvider, KeywordDiscoveryRequest, KeywordDiscoverySource, KeywordIdea, KeywordIdeaSource, KeywordMetric, KeywordMetricAnalysis, KeywordMetricFinding, KeywordMetricsProvider, KeywordMetricsReport, KeywordMetricsReportDependencies, KeywordMetricsRequest, KeywordMonthlySearch, KeywordOpportunitiesDependencies, KeywordOpportunitiesInput, KeywordOpportunitiesReport, KeywordOpportunityCluster, KeywordOpportunityCombined, KeywordOpportunityDataSourcePrompt, KeywordOpportunityExternal, KeywordOpportunityFinding, KeywordOpportunityFirstParty, KeywordOpportunitySource, KeywordOverview, KeywordResearchAnalysis, KeywordResearchFinding, KeywordResearchReport, KeywordResearchReportDependencies, KeywordRow, KeywordTrend, LINK_RECOVER_RUN_RETENTION, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LatestCrawlSummaryRow, LighthouseFailureCode, LinkEvidenceProvenance, LinkEvidenceProvider, LinkEvidenceRow, LinkRecoverItem, LinkRecoverReport, LinkRecoverSummary, LinkTargetCount, LlmsAuditIssue, LlmsAuditReport, type LlmsTxtLinkObservation, LocalCredentialsProvider, LogPruneResult, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, type MarkdownAlternateObservation, type MarkdownQualityObservation, MeasureChangeDependencies, MetricDelta, MonitoringStatusCheck, MonitoringStatusReport, NarrativeSection, type OAuthClientConfig, OKF_DEFAULT_CONCEPTS, OKF_MAX_CONCEPTS, OkfBundle, OkfExplainReport, OkfFile, OkfValidationIssue, OkfValidationReport, OpportunityBenchmarkRow, PROVIDER_SPEND_MAX_BYTES, PROVIDER_SPEND_MAX_ROWS, PROVIDER_SPEND_RETENTION_DAYS, PageFetchDiagnostics, PageFetchResult, type PageOpportunityAnalysis, type PageOpportunityAnalysisInput, type PageOpportunityBenchmark, PageOpportunityInput, type PageOpportunityItem, PageOpportunityReport, type PageOpportunitySelection, type PageOpportunityType, type PageOpportunityVerification, type PageRenderer, PageSearchMetrics, PageTopQuery, PartialDiagnosisReason, PerformanceAuditReport, PerformanceFieldData, PerformanceFieldMetric, PerformanceMetric, PerformanceRating, PositionBenchmark, Presentation, PresentationChart, PresentationScalar, PresentationTable, PresentationTableColumn, PriorityQueueItem, ProgressReporter, ProviderAdapter, ProviderCacheEvidence, ProviderCandidate, ProviderCapability, ProviderCapabilitySupport, ProviderCostEvidence, ProviderCoverage, ProviderError, ProviderErrorCode, ProviderEvidence, ProviderFetch, ProviderId, ProviderMarketSupport, ProviderOpts, ProviderRequestContext, ProviderRequestEvidence, ProviderRequestInput, ProviderResolution, ProviderResult, ProviderSecret, ProviderSecretSource, ProviderSpendFinalization, ProviderSpendLimits, ProviderSpendNotice, ProviderSpendReservation, ProviderSpendReservationInput, ProviderSpendState, ProviderSpendSummary, ProviderValue, ProviderWarning, PseoAuditAcquisition, PseoAuditInput, type PseoAuditReport, type PseoAuditTemplate, type PseoCompetitorPattern, type PseoCrawlSample, type PseoCrawlTechnicalStatus, type PseoDataSourceBrief, PseoDependencies, type PseoDiscoveryEvidence, type PseoEntityFit, type PseoExternalAcquisition, type PseoExternalCandidate, type PseoIndexStatus, type PseoInspectionSample, type PseoKnownCost, PseoOpportunitiesDependencies, type PseoOpportunitiesInput, type PseoOpportunitiesReport, type PseoOpportunityCluster, type PseoOpportunityFinding, type PseoOpportunityTemplate, type PseoPageRow, type PseoQueryCoverage, type PseoQueryPageRow, type PseoResearchSeed, type PseoSerpEvidence, type PseoSerpObservation, PseoTemplateCluster, type PseoTemplateMetrics, PseoTemplateShape, QueryCluster, type QueryClusterPage, QueryClusterReport, type QueryClusterRow, QueryClusterSourceRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, QuickWinsSection, REPORT_BASELINE_MAX_AGE_MS, REPORT_BASELINE_MAX_DEPTH, REPORT_BASELINE_MAX_PAGES, RawLinkEvidenceRow, ReadinessCheck, ReadinessSection, ReadinessStatus, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportHtmlInput, ReportHtmlSection, ReportHtmlView, ReportNarrative, ResolveTechnicalBaselineInput, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, SCORECARD_CHECK_WEIGHTS, SCORECARD_STATUS_CREDIT, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, ScorecardBand, ScorecardCheck, ScorecardCheckId, ScorecardObservation, ScorecardStatus, SearchAnalyticsRequest, SearchDateWindow, SearchMarket, SearchPageBatch, SearchStatusIncident, SearchUpdate, type SecondPageAnalysis, SecondPageDependencies, SecondPageInput, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, SecondPageSection, type SecondPageSelection, type SegmentDimension, SegmentImpactDependencies, SegmentImpactInput, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SemrushProvider, SeoChange, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoToAiQueryReport, SerpDomainSummary, SerpOrganicResult, SerpProvider, SerpResultFinding, SerpResultsReport, SerpResultsReportDependencies, SerpSnapshot, SerpSnapshotProvider, SerpSnapshotRequest, ServerLogEvidence, ServerLogFormat, ServerLogRecord, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StatusBreakdown, StorageAdapter, StoredDataForSeoCredentials, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, StrikingDistanceSection, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_NOTICE, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TechnicalBaseline, TechnicalBaselineDependencies, TechnicalBaselineStatus, TelemetryAgent, TelemetryDisableReason, TelemetryErrorCategory, TelemetryEvent, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TestMetrics, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyReport, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UrlInspectionRequest, UrlInspectionResult, WorkflowAction, WorkflowReport, WorkflowStep, acquirePseoAuditEvidence, addStatus, affectedUrls, agentReadiness, aiPromptsForQuery, aiReadiness, aiReferralSourceForValue, aiReferralsReport, aiSearchScorecard, allocateIndexUrlsToProperties, analyticsConnectionsSchema, analyzeAiReferralRows, analyzeBingCrawl, analyzeBingDimensions, analyzeBingTraffic, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzeInternalLinksFromRows, analyzeKeywordTrend, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, attachCrawlRecommendations, auditCrawlPages, auditCrawlRequests, auditLlmsTxt, auditPage, authStatus, bingAnalysisDefaults, bingWebmasterOverview, bingWebmasterSiteUrl, boundedSitemapInventory, buildOkfBundle, buildPseoAuditFromAcquisition, buildPseoAuditReportFromRows, buildQueryClusterReportFromRows, buildTelemetryPayload, cannibalReport, changeMeasurementCsvRows, checkDatabaseReadiness, classifyCommunityIntent, classifyCrawler, clearCache, clientProfileSchema, clusterPseoTemplates, clusterQueryRows, collectAgentDiscovery, collectBingLinkEvidence, combineRobotsValues, communityIntentReport, compareCrawlPages, compareCrawlReports, compareLinkEvidence, compareSegmentRows, configSchema, contentCoverageRecommendation, contentCoverageType, contentOptimizationFromPageOpportunities, contentOptimizationReport, countLabel, crawlConfigHash, crawlConfigSchema, crawlDefinitionId, crawlDiff, crawlFixToQueueItem, crawlImplementationQueueWorkflow, crawlIssueGroupSchema, crawlIssueSchema, crawlOne, crawlPageSnapshotSchema, crawlReportSchema, crawlReportStore, crawlReportSummarySchema, crawlRequestObservationSchema, crawlRunId, crawlSite, crawlSkipImpact, crawlSkipReasonCountsFromRecord, crawlStatusOnly, crawlTopFixSchema, crawlerJsonSchemas, crawlerRuleCategorySchema, crawlerRuleIdSchema, crawlerRuleInfoSchema, crawlerRuleRecommendationSchema, crawlerRuleSeveritySchema, crawlerSchemas, createAuthorizedClient, createBingWebmasterClient, createContentGroup, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createIndexNowKey, createIndexNowKeyRecord, createLogger, createPageRenderer, ctrUnderperformersReport, decayClusterDrafts, decayComparisonRange, decayingReport, deleteChange, deleteClient, deleteContentGroup, deleteCrawlReport, deleteDataForSeoCredentials, deleteProviderSecret, deleteTokens, deriveBrandTerms, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, emptyStatusBreakdown, ensurePrivateDatabaseFiles, ensureSeoCliDirs, entityReadiness, estimateSerpTitleWidth, expectedCtrForPosition, explainOkfValidation, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fetchText, fileSize, finalGscDateRange, finalizeProviderSpend, findOverlappingSearchUpdates, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, generateLlmsTxt, geoGaps, geoGapsReport, getAuthModeStatus, getCacheStats, getChange, getClient, getClientConfig, getContentGroup, getDb, getKeywordProvider, getPreviousRun, getPrivacySnapshot, getProviderSpendLimits, getProviderSpendSummary, getRepeatedLinkRecoverUrls, getRunPages, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleAnalyticsPropertyId, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, importLinkEvidence, importServerLog, indexCoveragePlan, indexCoverageSignals, indexMonitor, indexWatch, inferPseoTemplate, inferTemplateMovement, initializeTelemetry, insertCrawlRun, insertLinkRecoverRun, inspectUrl, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isCompatibleTechnicalBaseline, isCurrentTechnicalBaseline, isEntityEvidenceSchemaType, isSiteIdentitySchemaType, isSkippableReportError, isTelemetryCi, isTelemetryReport, isoDate, isoWeek, keywordDiscoverySourceSchema, keywordMetricsReport, keywordOpportunitiesReport, keywordResearchReport, latestCrawlReport, latestCrawlSummaries, latestFinalGscDate, latestIndexWatchSummary, latestLinkRecoverSummary, linkEntries, linkEvidenceKey, linkEvidenceReport, linkRecover, linkRecoverRecommendation, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listIndexNowKeys, listRules, listSearchUpdates, listSites, loadCrawlReport, localCredentialsProvider, loginWithLoopback, makeRunId, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, monthlyReport, monthlyReportWorkflow, narrativeCsvFiles, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLinkEvidenceRow, normalizeLoadedCrawlReport, noteCacheWrite, observedValue, okfConceptLimit, pageEvidenceRecommendation, pageOpportunitiesReport, parseCombinedLogLine, parseIndexNowSite, parseJsonLogLine, parseOlderThan, parsePseoPath, performanceAudit, performanceReportIsCacheable, planDueIndexUrls, planIndexCoverageFromUrls, plural, propertyMatchesUrl, providerCapabilitySchema, providerIdSchema, providerPreferenceSchema, providerRequestJson, providerRequestText, providerSpendLimitOverridesSchema, pruneIndexWatchSnapshots, pruneLogs, pseoAuditOptions, pseoAuditReport, pseoCsvFiles, pseoIndexStatus, pseoOpportunitiesReport, pseoPresentation, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, readBoundedResponseText, readConfig, readDataForSeoCredentials, readOauthClient, readProviderSecret, readTokens, recommendCrawlDiffItem, recommendationForRule, recordChange, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, removeIndexNowKey, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderPseoMarkdown, renderReportHtml, renderWorkflowMarkdown, reportNarrative, reportPresentation, requestHeaders, reserveProviderSpend, resolveIndexNowKey, resolveProvider, resolveSegmentRanges, resolveSeoCliPaths, resolveTechnicalBaseline, reviewObservations, roundedPosition, runDoctor, runGa4Report, safeError, saveClient, saveCrawlReport, saveIndexNowKey, searchMarketSchema, secondPage, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, seoErrorEnvelope, seoToAiQueryReport, serpResultsReport, serverLogReport, sessionSourceInListFilter, setClientBingSite, setDefaultClient, setProviderSpendLimits, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, strikingDistance, submitIndexNow, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, technicalWatchWorkflow, telemetryErrorCategory, templateForUrl, toSeoError, tokenSchema, topCrawlRecommendations, topFixes, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, unavailableSegmentImpactReport, unavailableValue, unicodeTokens, updateCorrelation, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateIndexNowKey, validateIndexNowKeyRecord, validateOkfFiles, verifyIndexNowKey, verifyQueryContent, workflowPresentation, writeConfig, writeDataForSeoCredentials, writeOauthClient, writeProviderSecret, writeTokens, xRobotsDirectives };
25314
26739
  //# sourceMappingURL=index.d.ts.map