seo 0.2.18 → 0.2.20

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
@@ -3,6 +3,19 @@ import { Headers, RequestInit as RequestInit$1, Response as Response$1, fetch as
3
3
  import { z } from "zod";
4
4
  import Libsql from "libsql";
5
5
  import pino from "pino";
6
+ //#region packages/core/src/ga4/account-summaries.d.ts
7
+ interface Ga4PropertySummary {
8
+ property: string;
9
+ displayName?: string;
10
+ propertyType?: string;
11
+ parent?: string;
12
+ }
13
+ interface Ga4AccountSummary {
14
+ account: string;
15
+ displayName?: string;
16
+ propertySummaries: Ga4PropertySummary[];
17
+ }
18
+ //#endregion
6
19
  //#region packages/core/src/ga4/client.d.ts
7
20
  interface Ga4ReportRequest {
8
21
  dateRanges: Array<{
@@ -51,17 +64,6 @@ interface Ga4RunReportResult {
51
64
  };
52
65
  propertyQuota?: unknown;
53
66
  }
54
- interface Ga4PropertySummary {
55
- property: string;
56
- displayName?: string;
57
- propertyType?: string;
58
- parent?: string;
59
- }
60
- interface Ga4AccountSummary {
61
- account: string;
62
- displayName?: string;
63
- propertySummaries: Ga4PropertySummary[];
64
- }
65
67
  interface Ga4DataStream {
66
68
  name: string;
67
69
  displayName?: string;
@@ -21841,85 +21843,835 @@ declare function diagnoseProperty(input: {
21841
21843
  progress?: ProgressReporter;
21842
21844
  }, dependencies?: Partial<DiagnosePropertyDependencies>): Promise<DiagnosePropertyReport>;
21843
21845
  //#endregion
21844
- //#region packages/core/src/analyze/experiments/change-log.d.ts
21845
- declare function recordChange(input: {
21846
- site: string;
21847
- scope: ChangeScope;
21848
- target: string;
21849
- title: string;
21850
- description?: string;
21851
- changedAt: string;
21852
- }): SeoChange;
21853
- declare function listChanges(input?: {
21854
- site?: string;
21855
- limit?: number;
21856
- }): SeoChange[];
21857
- declare function getChange(id: string): SeoChange | undefined;
21858
- declare function deleteChange(id: string): boolean;
21859
- //#endregion
21860
- //#region packages/core/src/analyze/experiments/content-groups.d.ts
21861
- declare function createContentGroup(input: {
21862
- site: string;
21863
- name: string;
21864
- dimension?: ContentGroupDimension;
21865
- matchType?: ContentGroupMatchType;
21866
- pattern: string;
21867
- }): ContentGroup;
21868
- declare function listContentGroups(site?: string): ContentGroup[];
21869
- declare function getContentGroup(id: string): ContentGroup | undefined;
21870
- declare function deleteContentGroup(id: string): boolean;
21871
- //#endregion
21872
- //#region packages/core/src/analyze/experiments/measure-change.d.ts
21873
- type MeasureChangeDependencies = {
21874
- searchAnalytics: typeof querySearchAnalytics;
21875
- googleAnalyticsReport: typeof runGa4Report;
21876
- contentGroup: typeof getContentGroup;
21877
- now: () => Date;
21846
+ //#region packages/core/src/providers/contracts.d.ts
21847
+ declare const providerIdSchema: z.ZodEnum<{
21848
+ dataforseo: "dataforseo";
21849
+ semrush: "semrush";
21850
+ ahrefs: "ahrefs";
21851
+ }>;
21852
+ type ProviderId = z.infer<typeof providerIdSchema>;
21853
+ declare const providerCapabilitySchema: z.ZodEnum<{
21854
+ "domain-overview": "domain-overview";
21855
+ "ranked-keywords": "ranked-keywords";
21856
+ "serp-competitors": "serp-competitors";
21857
+ "keyword-metrics": "keyword-metrics";
21858
+ "keyword-discovery": "keyword-discovery";
21859
+ "serp-snapshot": "serp-snapshot";
21860
+ "relevant-pages": "relevant-pages";
21861
+ "link-summary": "link-summary";
21862
+ "referring-domains": "referring-domains";
21863
+ backlinks: "backlinks";
21864
+ "domain-rating": "domain-rating";
21865
+ "local-search": "local-search";
21866
+ "ai-mentions": "ai-mentions";
21867
+ "ai-prompt-observation": "ai-prompt-observation";
21868
+ }>;
21869
+ type ProviderCapability = z.infer<typeof providerCapabilitySchema>;
21870
+ declare const searchMarketSchema: z.ZodObject<{
21871
+ searchEngine: z.ZodDefault<z.ZodEnum<{
21872
+ google: "google";
21873
+ bing: "bing";
21874
+ }>>;
21875
+ countryCode: z.ZodString;
21876
+ languageCode: z.ZodString;
21877
+ location: z.ZodOptional<z.ZodObject<{
21878
+ code: z.ZodOptional<z.ZodNumber>;
21879
+ name: z.ZodOptional<z.ZodString>;
21880
+ }, z.core.$strip>>;
21881
+ device: z.ZodOptional<z.ZodEnum<{
21882
+ mobile: "mobile";
21883
+ desktop: "desktop";
21884
+ }>>;
21885
+ }, z.core.$strict>;
21886
+ type SearchMarket = z.infer<typeof searchMarketSchema>;
21887
+ type ProviderValue<T> = {
21888
+ state: 'observed';
21889
+ value: T;
21890
+ } | {
21891
+ state: 'missing' | 'unavailable' | 'invalid';
21892
+ value: null;
21893
+ reason: string;
21878
21894
  };
21879
- declare function measureChange(input: {
21880
- id?: string;
21881
- site?: string;
21882
- scope?: ChangeScope;
21883
- target?: string;
21884
- title?: string;
21885
- changedAt?: string;
21886
- googleAnalyticsPropertyId?: string;
21887
- controlScope?: ChangeScope;
21888
- controlTarget?: string;
21889
- controlTitle?: string;
21890
- beforeDays?: number;
21891
- afterDays?: number;
21895
+ declare function observedValue<T>(value: T): ProviderValue<T>;
21896
+ declare function unavailableValue<T>(state: 'missing' | 'unavailable' | 'invalid', reason: string): ProviderValue<T>;
21897
+ type ProviderWarning = {
21898
+ code: string;
21899
+ message: string;
21900
+ field?: string;
21901
+ row?: number;
21902
+ };
21903
+ type ProviderCoverage = {
21904
+ requestedRows: number | null;
21905
+ returnedRows: number | null;
21906
+ retainedRows: number | null;
21907
+ invalidRows: number;
21908
+ providerTotalRows: number | null;
21909
+ completeness: 'complete' | 'partial' | 'capped' | 'filtered' | 'unavailable' | 'invalid' | 'unknown';
21910
+ nextCursor: string | null;
21911
+ };
21912
+ type ProviderCacheEvidence = {
21913
+ status: 'hit' | 'miss' | 'bypass';
21914
+ storedAt: string | null;
21915
+ expiresAt: string | null;
21916
+ };
21917
+ type ProviderCostEvidence = {
21918
+ currency: 'USD';
21919
+ estimatedMicros: number | null;
21920
+ actualMicros: number | null;
21921
+ taskIds: string[];
21922
+ };
21923
+ type ProviderRequestEvidence = {
21924
+ operation: string;
21925
+ endpoint: string;
21926
+ limit: number | null;
21927
+ filters: Record<string, string | number | boolean>;
21928
+ sort: string[];
21929
+ };
21930
+ type ProviderEvidence<T> = {
21931
+ schemaVersion: 1;
21932
+ provider: ProviderId;
21933
+ capability: ProviderCapability;
21934
+ data: T;
21935
+ observedAt: string;
21936
+ market: SearchMarket;
21937
+ coverage: ProviderCoverage;
21938
+ cache: ProviderCacheEvidence;
21939
+ cost: ProviderCostEvidence;
21940
+ request: ProviderRequestEvidence;
21941
+ warnings: ProviderWarning[];
21942
+ };
21943
+ type ProviderCapabilitySupport = {
21944
+ capability: ProviderCapability;
21945
+ status: 'available' | 'unavailable';
21946
+ reason?: string;
21947
+ markets: 'all' | readonly ProviderMarketSupport[];
21948
+ };
21949
+ type ProviderMarketSupport = {
21950
+ searchEngines?: readonly SearchMarket['searchEngine'][];
21951
+ countryCodes?: readonly string[];
21952
+ languageCodes?: readonly string[];
21953
+ devices?: readonly NonNullable<SearchMarket['device']>[];
21954
+ location?: 'any' | 'country-only' | 'canonical';
21955
+ };
21956
+ interface ProviderAdapter {
21957
+ readonly provider: ProviderId;
21958
+ readonly capabilitySupport: readonly ProviderCapabilitySupport[];
21959
+ }
21960
+ type KeywordMetric = {
21961
+ keyword: string;
21962
+ monthlySearchVolume: ProviderValue<number>;
21963
+ monthlySearches: ProviderValue<KeywordMonthlySearch[]>;
21964
+ searchVolumeUpdatedAt: ProviderValue<string>;
21965
+ cpcUsd: ProviderValue<number>;
21966
+ paidCompetition: ProviderValue<number>;
21967
+ keywordDifficulty: ProviderValue<number>;
21968
+ intent: ProviderValue<string>;
21969
+ resultCount: ProviderValue<number>;
21970
+ };
21971
+ type KeywordMonthlySearch = {
21972
+ year: number;
21973
+ month: number;
21974
+ searchVolume: number;
21975
+ };
21976
+ type ProviderRequestContext = {
21977
+ projectId?: string;
21978
+ reportId: string;
21979
+ reportRunId: string;
21980
+ };
21981
+ type KeywordMetricsRequest = {
21982
+ keywords: string[];
21983
+ market: SearchMarket;
21892
21984
  refresh?: boolean;
21893
- }, dependencies?: MeasureChangeDependencies): Promise<ChangeMeasurement>;
21894
- //#endregion
21895
- //#region packages/core/src/analyze/internal-links-types.d.ts
21896
- type InternalLinkMatchKind = 'exact-query' | 'lexical-review';
21897
- interface InternalLinkQueryMatch {
21898
- sourceQuery: string;
21899
- targetQuery: string;
21900
- kind: InternalLinkMatchKind;
21901
- relevanceScore: number;
21902
- impressions: number;
21903
- sharedTerms: string[];
21985
+ context?: ProviderRequestContext;
21986
+ };
21987
+ interface KeywordMetricsProvider extends ProviderAdapter {
21988
+ keywordMetrics(input: KeywordMetricsRequest): Promise<ProviderEvidence<KeywordMetric[]>>;
21904
21989
  }
21905
- interface InternalLinkCandidate {
21906
- sourceUrl: string;
21907
- matchedQueryImpressions: number;
21908
- matchedQueries: number;
21909
- exactQueryMatches: number;
21910
- bestRelevanceScore: number;
21911
- bestMatchKind: InternalLinkMatchKind;
21912
- matches: InternalLinkQueryMatch[];
21990
+ type KeywordMetricsCostEstimate = {
21991
+ schemaVersion: 1;
21992
+ provider: ProviderId;
21993
+ capability: 'keyword-metrics';
21994
+ currency: 'USD';
21995
+ requestedRows: number;
21996
+ requestCount: number;
21997
+ estimatedMicros: number | null;
21998
+ observedAt: string;
21999
+ completeness: 'complete' | 'unavailable';
22000
+ basis: string;
22001
+ };
22002
+ interface KeywordMetricsCostEstimator extends ProviderAdapter {
22003
+ estimateKeywordMetricsCost(input: {
22004
+ requestedRows: number;
22005
+ market: SearchMarket;
22006
+ }): Promise<KeywordMetricsCostEstimate>;
21913
22007
  }
21914
- interface InternalLinkOpportunity extends InternalLinkCandidate {
21915
- finalUrl: string;
21916
- status: number;
21917
- technicalSignals: PageTechnicalSignal[];
21918
- fetchDiagnostics: PageFetchDiagnostics;
21919
- pageWarnings: string[];
21920
- actionType: 'review-contextual-link' | 'review-alias-link';
21921
- linkEvidence: {
21922
- status: 'missing' | 'non-contextual-only' | 'alias-contextual';
22008
+ declare const keywordDiscoverySourceSchema: z.ZodEnum<{
22009
+ ideas: "ideas";
22010
+ related: "related";
22011
+ suggestions: "suggestions";
22012
+ }>;
22013
+ type KeywordDiscoverySource = z.infer<typeof keywordDiscoverySourceSchema>;
22014
+ type KeywordIdeaSource = {
22015
+ seed: string;
22016
+ source: KeywordDiscoverySource;
22017
+ };
22018
+ type KeywordIdea = KeywordMetric & {
22019
+ sources: KeywordIdeaSource[];
22020
+ };
22021
+ type KeywordDiscoveryRequest = {
22022
+ seeds: string[];
22023
+ sources: KeywordDiscoverySource[];
22024
+ market: SearchMarket;
22025
+ limit: number;
22026
+ refresh?: boolean;
22027
+ context?: ProviderRequestContext;
22028
+ };
22029
+ interface KeywordDiscoveryProvider extends ProviderAdapter {
22030
+ discoverKeywords(input: KeywordDiscoveryRequest): Promise<ProviderEvidence<KeywordIdea[]>>;
22031
+ }
22032
+ type SerpOrganicResult = {
22033
+ rankGroup: number;
22034
+ rankAbsolute: number;
22035
+ page: number;
22036
+ domain: string;
22037
+ url: string;
22038
+ title: string | null;
22039
+ description: string | null;
22040
+ isFeaturedSnippet: boolean | null;
22041
+ };
22042
+ type SerpSnapshot = {
22043
+ keyword: string;
22044
+ effectiveKeyword: string;
22045
+ searchEngineDomain: string | null;
22046
+ checkedAt: string;
22047
+ checkUrl: string | null;
22048
+ resultCount: number | null;
22049
+ pagesCount: number | null;
22050
+ features: string[];
22051
+ organicResults: SerpOrganicResult[];
22052
+ };
22053
+ type SerpSnapshotRequest = {
22054
+ keyword: string;
22055
+ market: SearchMarket;
22056
+ depth: number;
22057
+ refresh?: boolean;
22058
+ context?: ProviderRequestContext;
22059
+ };
22060
+ interface SerpSnapshotProvider extends ProviderAdapter {
22061
+ serpSnapshot(input: SerpSnapshotRequest): Promise<ProviderEvidence<SerpSnapshot>>;
22062
+ }
22063
+ //#endregion
22064
+ //#region packages/core/src/providers/domain-contracts.d.ts
22065
+ type RankingDistribution = {
22066
+ first: number;
22067
+ top3: number;
22068
+ top10: number;
22069
+ top20: number;
22070
+ top50: number;
22071
+ top100: number;
22072
+ };
22073
+ type OrganicFootprint = {
22074
+ estimatedMonthlyTraffic: ProviderValue<number>;
22075
+ rankedKeywords: ProviderValue<number>;
22076
+ estimatedMonthlyTrafficCostUsd: ProviderValue<number>;
22077
+ rankings: ProviderValue<RankingDistribution>;
22078
+ newRankings: ProviderValue<number>;
22079
+ improvedRankings: ProviderValue<number>;
22080
+ declinedRankings: ProviderValue<number>;
22081
+ lostRankings: ProviderValue<number>;
22082
+ };
22083
+ type DomainOverview = {
22084
+ domain: string;
22085
+ organic: OrganicFootprint;
22086
+ };
22087
+ type DomainOverviewRequest = {
22088
+ domain: string;
22089
+ market: SearchMarket;
22090
+ refresh?: boolean;
22091
+ context?: ProviderRequestContext;
22092
+ };
22093
+ interface DomainOverviewProvider extends ProviderAdapter {
22094
+ domainOverview(input: DomainOverviewRequest): Promise<ProviderEvidence<DomainOverview>>;
22095
+ }
22096
+ type RankedKeyword = KeywordMetric & {
22097
+ url: string;
22098
+ rankGroup: number;
22099
+ rankAbsolute: number;
22100
+ resultType: string;
22101
+ estimatedMonthlyTraffic: ProviderValue<number>;
22102
+ };
22103
+ type RankedKeywordPage = {
22104
+ target: string;
22105
+ rows: RankedKeyword[];
22106
+ totalRows: number | null;
22107
+ };
22108
+ type RankedKeywordsRequest = {
22109
+ target: string;
22110
+ market: SearchMarket;
22111
+ includeSubdomains?: boolean;
22112
+ resultTypes?: string[];
22113
+ minSearchVolume?: number;
22114
+ maxRank?: number;
22115
+ excludeTerms?: string[];
22116
+ limit: number;
22117
+ offset?: number;
22118
+ refresh?: boolean;
22119
+ context?: ProviderRequestContext;
22120
+ };
22121
+ interface RankedKeywordsProvider extends ProviderAdapter {
22122
+ rankedKeywords(input: RankedKeywordsRequest): Promise<ProviderEvidence<RankedKeywordPage>>;
22123
+ }
22124
+ type RankingPage = {
22125
+ url: string;
22126
+ organic: OrganicFootprint;
22127
+ };
22128
+ type RankingPagePage = {
22129
+ domain: string;
22130
+ rows: RankingPage[];
22131
+ totalRows: number | null;
22132
+ };
22133
+ type RankingPagesRequest = {
22134
+ domain: string;
22135
+ market: SearchMarket;
22136
+ minEstimatedTraffic?: number;
22137
+ minRankedKeywords?: number;
22138
+ limit: number;
22139
+ offset?: number;
22140
+ refresh?: boolean;
22141
+ context?: ProviderRequestContext;
22142
+ };
22143
+ interface RankingPagesProvider extends ProviderAdapter {
22144
+ rankingPages(input: RankingPagesRequest): Promise<ProviderEvidence<RankingPagePage>>;
22145
+ }
22146
+ type SerpCompetitorKeywordPosition = {
22147
+ keyword: string;
22148
+ positions: number[];
22149
+ };
22150
+ type SerpCompetitor = {
22151
+ domain: string;
22152
+ matchedKeywords: number;
22153
+ averagePosition: ProviderValue<number>;
22154
+ medianPosition: ProviderValue<number>;
22155
+ visibility: ProviderValue<number>;
22156
+ estimatedMonthlyTraffic: ProviderValue<number>;
22157
+ relevantResults: ProviderValue<number>;
22158
+ keywordPositions: SerpCompetitorKeywordPosition[];
22159
+ };
22160
+ type SerpCompetitorSet = {
22161
+ keywords: string[];
22162
+ rows: SerpCompetitor[];
22163
+ totalRows: number | null;
22164
+ };
22165
+ type SerpCompetitorsRequest = {
22166
+ keywords: string[];
22167
+ market: SearchMarket;
22168
+ includeSubdomains?: boolean;
22169
+ resultTypes?: string[];
22170
+ limit: number;
22171
+ offset?: number;
22172
+ refresh?: boolean;
22173
+ context?: ProviderRequestContext;
22174
+ };
22175
+ interface SerpCompetitorsProvider extends ProviderAdapter {
22176
+ serpCompetitors(input: SerpCompetitorsRequest): Promise<ProviderEvidence<SerpCompetitorSet>>;
22177
+ }
22178
+ interface DomainResearchProvider extends DomainOverviewProvider, RankedKeywordsProvider, RankingPagesProvider, SerpCompetitorsProvider {}
22179
+ //#endregion
22180
+ //#region packages/core/src/analyze/domain-research-contract.d.ts
22181
+ type DomainResearchDataStatus = 'complete' | 'partial' | 'empty' | 'filtered' | 'unavailable';
22182
+ type DomainReportInput = {
22183
+ domain: string;
22184
+ market: SearchMarket;
22185
+ provider?: ProviderId;
22186
+ projectId?: string;
22187
+ refresh?: boolean;
22188
+ };
22189
+ type DomainOverviewReportInput = DomainReportInput & {
22190
+ site?: string;
22191
+ days?: number;
22192
+ };
22193
+ type SearchConsoleAggregateEvidence = {
22194
+ requested: boolean;
22195
+ status: 'not-requested' | 'complete' | 'empty' | 'partial';
22196
+ provider: 'google-search-console';
22197
+ site: string | null;
22198
+ range: {
22199
+ startDate: string;
22200
+ endDate: string;
22201
+ } | null;
22202
+ clicks: number | null;
22203
+ impressions: number | null;
22204
+ averagePosition: number | null;
22205
+ rowsFetched: number;
22206
+ calls: number;
22207
+ maxRows: number;
22208
+ possiblyTruncated: boolean;
22209
+ };
22210
+ type DomainOverviewReport = {
22211
+ schemaVersion: 1;
22212
+ methodology: 'domain_overview_v1';
22213
+ generatedAt: string;
22214
+ dataStatus: DomainResearchDataStatus;
22215
+ market: SearchMarket;
22216
+ summary: {
22217
+ domain: string;
22218
+ estimatedMonthlyTraffic: number | null;
22219
+ rankedKeywords: number | null;
22220
+ top10Rankings: number | null;
22221
+ searchConsoleClicks: number | null;
22222
+ verdict: string;
22223
+ };
22224
+ evidence: ProviderEvidence<DomainOverview>;
22225
+ firstParty: SearchConsoleAggregateEvidence;
22226
+ findings: Array<{
22227
+ code: 'provider-and-first-party-context' | 'ranking-footprint-without-clicks';
22228
+ evidenceRefs: string[];
22229
+ detail: string;
22230
+ action: string;
22231
+ }>;
22232
+ caveats: string[];
22233
+ nextSteps: string[];
22234
+ };
22235
+ type RankedKeywordsReportInput = Omit<DomainReportInput, 'domain'> & {
22236
+ target: string;
22237
+ site?: string;
22238
+ days?: number;
22239
+ includeSubdomains?: boolean;
22240
+ resultTypes?: string[];
22241
+ minSearchVolume?: number;
22242
+ maxRank?: number;
22243
+ excludeTerms?: string[];
22244
+ limit?: number;
22245
+ offset?: number;
22246
+ };
22247
+ type RankedKeywordFirstPartyMatch = {
22248
+ keyword: string;
22249
+ providerRowRef: string;
22250
+ status: 'observed' | 'not-in-retained-rows' | 'not-requested';
22251
+ clicks: number | null;
22252
+ impressions: number | null;
22253
+ averagePosition: number | null;
22254
+ urls: string[];
22255
+ };
22256
+ type RankedKeywordsReport = {
22257
+ schemaVersion: 1;
22258
+ methodology: 'ranked_keywords_v1';
22259
+ generatedAt: string;
22260
+ dataStatus: DomainResearchDataStatus;
22261
+ market: SearchMarket;
22262
+ summary: {
22263
+ target: string;
22264
+ providerRows: number;
22265
+ providerTotalRows: number | null;
22266
+ matchedSearchConsoleQueries: number;
22267
+ unmatchedInRetainedSearchConsoleRows: number;
22268
+ verdict: string;
22269
+ };
22270
+ evidence: ProviderEvidence<RankedKeywordPage>;
22271
+ firstParty: {
22272
+ requested: boolean;
22273
+ status: 'not-requested' | 'complete' | 'empty' | 'partial';
22274
+ site: string | null;
22275
+ range: {
22276
+ startDate: string;
22277
+ endDate: string;
22278
+ } | null;
22279
+ rowsFetched: number;
22280
+ calls: number;
22281
+ maxRows: number;
22282
+ possiblyTruncated: boolean;
22283
+ matches: RankedKeywordFirstPartyMatch[];
22284
+ };
22285
+ findings: Array<{
22286
+ code: 'provider-zero-with-first-party-evidence' | 'provider-only-keyword';
22287
+ keyword: string;
22288
+ evidenceRefs: string[];
22289
+ detail: string;
22290
+ action: string;
22291
+ }>;
22292
+ caveats: string[];
22293
+ nextSteps: string[];
22294
+ };
22295
+ type RankingPagesReportInput = DomainReportInput & {
22296
+ site?: string;
22297
+ days?: number;
22298
+ minEstimatedTraffic?: number;
22299
+ minRankedKeywords?: number;
22300
+ limit?: number;
22301
+ offset?: number;
22302
+ };
22303
+ type RankingPageTemplatePattern = {
22304
+ signature: string;
22305
+ urlCount: number;
22306
+ sampleUrls: string[];
22307
+ evidenceRefs: string[];
22308
+ };
22309
+ type RankingPagesReport = {
22310
+ schemaVersion: 1;
22311
+ methodology: 'ranking_pages_v1';
22312
+ generatedAt: string;
22313
+ dataStatus: DomainResearchDataStatus;
22314
+ market: SearchMarket;
22315
+ summary: {
22316
+ domain: string;
22317
+ providerRows: number;
22318
+ providerTotalRows: number | null;
22319
+ repeatedPagePatterns: number;
22320
+ searchConsoleMatchedPages: number;
22321
+ verdict: string;
22322
+ };
22323
+ evidence: ProviderEvidence<RankingPagePage>;
22324
+ firstParty: {
22325
+ requested: boolean;
22326
+ status: 'not-requested' | 'complete' | 'empty' | 'partial';
22327
+ site: string | null;
22328
+ range: {
22329
+ startDate: string;
22330
+ endDate: string;
22331
+ } | null;
22332
+ rowsFetched: number;
22333
+ maxRows: number;
22334
+ possiblyTruncated: boolean;
22335
+ matches: Array<{
22336
+ pageRef: string;
22337
+ url: string;
22338
+ clicks: number;
22339
+ impressions: number;
22340
+ averagePosition: number;
22341
+ }>;
22342
+ };
22343
+ repeatedPatterns: RankingPageTemplatePattern[];
22344
+ findings: Array<{
22345
+ code: 'repeated-ranking-page-pattern' | 'provider-page-with-first-party-evidence';
22346
+ evidenceRefs: string[];
22347
+ detail: string;
22348
+ action: string;
22349
+ }>;
22350
+ caveats: string[];
22351
+ nextSteps: string[];
22352
+ };
22353
+ type CompetitorSiteType = 'business' | 'publisher' | 'directory' | 'community' | 'marketplace' | 'unknown';
22354
+ type DeclaredCompetitor = {
22355
+ domain: string;
22356
+ siteType: CompetitorSiteType;
22357
+ };
22358
+ type GapCompetitor = {
22359
+ domain: string;
22360
+ siteType: Exclude<CompetitorSiteType, 'unknown'>;
22361
+ };
22362
+ type SerpCompetitorsReportInput = {
22363
+ keywords: string[];
22364
+ market: SearchMarket;
22365
+ targetDomain?: string;
22366
+ declaredCompetitors?: DeclaredCompetitor[];
22367
+ resultTypes?: string[];
22368
+ limit?: number;
22369
+ offset?: number;
22370
+ provider?: ProviderId;
22371
+ projectId?: string;
22372
+ refresh?: boolean;
22373
+ };
22374
+ type ClassifiedSerpCompetitor = {
22375
+ evidenceRef: string;
22376
+ domain: string;
22377
+ relationship: 'self' | 'declared-competitor' | 'search-competitor';
22378
+ siteType: CompetitorSiteType;
22379
+ classificationSource: 'target' | 'declared' | 'unclassified';
22380
+ matchedKeywords: number;
22381
+ keywordCoverage: number;
22382
+ averagePosition: number | null;
22383
+ visibility: number | null;
22384
+ sampleKeywords: string[];
22385
+ };
22386
+ type SerpCompetitorsReport = {
22387
+ schemaVersion: 1;
22388
+ methodology: 'serp_competitors_v1';
22389
+ generatedAt: string;
22390
+ dataStatus: DomainResearchDataStatus;
22391
+ market: SearchMarket;
22392
+ summary: {
22393
+ querySetSize: number;
22394
+ providerRows: number;
22395
+ retainedCompetitors: number;
22396
+ declaredCompetitorsFound: number;
22397
+ unclassifiedSearchCompetitors: number;
22398
+ verdict: string;
22399
+ };
22400
+ evidence: ProviderEvidence<SerpCompetitorSet>;
22401
+ competitors: ClassifiedSerpCompetitor[];
22402
+ findings: Array<{
22403
+ code: 'repeated-search-competitor' | 'declared-competitor-observed';
22404
+ domain: string;
22405
+ evidenceRefs: string[];
22406
+ detail: string;
22407
+ action: string;
22408
+ }>;
22409
+ caveats: string[];
22410
+ nextSteps: string[];
22411
+ };
22412
+ type CompetitorKeywordGapReportInput = {
22413
+ site: string;
22414
+ competitors: GapCompetitor[];
22415
+ market: SearchMarket;
22416
+ days?: number;
22417
+ limitPerDomain?: number;
22418
+ candidateLimit?: number;
22419
+ minSearchVolume?: number;
22420
+ maxRank?: number;
22421
+ includeSubdomains?: boolean;
22422
+ provider?: ProviderId;
22423
+ projectId?: string;
22424
+ refresh?: boolean;
22425
+ };
22426
+ type CompetitorKeywordGapCandidate = {
22427
+ keyword: string;
22428
+ classification: 'already-observed-first-party' | 'already-ranked-provider' | 'relevant-gap-candidate' | 'unverified-competitor-term';
22429
+ competitorCount: number;
22430
+ competitors: Array<{
22431
+ domain: string;
22432
+ rank: number;
22433
+ url: string;
22434
+ evidenceRef: string;
22435
+ }>;
22436
+ firstParty: {
22437
+ observed: boolean;
22438
+ clicks: number | null;
22439
+ impressions: number | null;
22440
+ averagePosition: number | null;
22441
+ urls: string[];
22442
+ };
22443
+ ownProviderRank: number | null;
22444
+ monthlySearchVolume: RankedKeyword['monthlySearchVolume'];
22445
+ keywordDifficulty: RankedKeyword['keywordDifficulty'];
22446
+ intent: RankedKeyword['intent'];
22447
+ relevance: {
22448
+ state: 'observed-overlap' | 'weak-overlap' | 'unavailable';
22449
+ sharedTokens: string[];
22450
+ matchedFirstPartyQueries: string[];
22451
+ method: 'bounded-lexical-overlap-v1';
22452
+ };
22453
+ pseo: {
22454
+ repeatedCompetitorPagePatterns: string[];
22455
+ proposal: 'existing-template-review' | 'new-template-research' | 'none';
22456
+ };
22457
+ evidenceRefs: string[];
22458
+ };
22459
+ type CompetitorKeywordGapReport = {
22460
+ schemaVersion: 1;
22461
+ methodology: 'competitor_keyword_gap_v1';
22462
+ generatedAt: string;
22463
+ dataStatus: DomainResearchDataStatus;
22464
+ market: SearchMarket;
22465
+ summary: {
22466
+ competitorsRequested: number;
22467
+ competitorsCompleted: number;
22468
+ sourceRows: number;
22469
+ uniqueCompetitorKeywords: number;
22470
+ alreadyObservedFirstParty: number;
22471
+ alreadyRankedProvider: number;
22472
+ relevantGapCandidates: number;
22473
+ unverifiedCompetitorTerms: number;
22474
+ returnedCandidates: number;
22475
+ verdict: string;
22476
+ };
22477
+ source: {
22478
+ firstParty: {
22479
+ provider: 'google-search-console';
22480
+ site: string;
22481
+ range: {
22482
+ startDate: string;
22483
+ endDate: string;
22484
+ };
22485
+ rowsFetched: number;
22486
+ calls: number;
22487
+ maxRows: number;
22488
+ possiblyTruncated: boolean;
22489
+ };
22490
+ ownDomain: {
22491
+ status: 'complete' | 'filtered' | 'partial' | 'unavailable';
22492
+ evidence: ProviderEvidence<RankedKeywordPage> | null;
22493
+ error?: {
22494
+ code: string;
22495
+ message: string;
22496
+ };
22497
+ };
22498
+ competitors: Array<{
22499
+ domain: string;
22500
+ siteType: CompetitorSiteType;
22501
+ status: 'complete' | 'filtered' | 'partial' | 'unavailable';
22502
+ evidence: ProviderEvidence<RankedKeywordPage> | null;
22503
+ error?: {
22504
+ code: string;
22505
+ message: string;
22506
+ };
22507
+ }>;
22508
+ };
22509
+ selection: {
22510
+ limitPerDomain: number;
22511
+ candidateLimit: number;
22512
+ minSearchVolume: number;
22513
+ maxRank: number;
22514
+ sourceRowLimit: number;
22515
+ competitorLimit: number;
22516
+ tokenRowsPerTermLimit: number;
22517
+ firstPartyPatternUrlLimit: number;
22518
+ candidateOrder: 'classification-competitor-count-volume-rank-keyword-v1';
22519
+ };
22520
+ processing: {
22521
+ firstPartyRows: number;
22522
+ sourceTermVisits: number;
22523
+ uniqueSourceTerms: number;
22524
+ retainedTokenPostings: number;
22525
+ competitorRows: number;
22526
+ candidateKeywords: number;
22527
+ };
22528
+ candidates: CompetitorKeywordGapCandidate[];
22529
+ repeatedCompetitorPatterns: Array<{
22530
+ domain: string;
22531
+ signature: string;
22532
+ urlCount: number;
22533
+ sampleUrls: string[];
22534
+ evidenceRefs: string[];
22535
+ }>;
22536
+ dataSourceBriefs: Array<{
22537
+ candidateRef: string;
22538
+ instruction: string;
22539
+ requiredChecks: string[];
22540
+ evidenceBoundary: string;
22541
+ }>;
22542
+ findings: Array<{
22543
+ code: 'relevant-competitor-gap' | 'competitor-template-pattern' | 'first-party-query-already-covered';
22544
+ evidenceRefs: string[];
22545
+ detail: string;
22546
+ action: string;
22547
+ }>;
22548
+ caveats: string[];
22549
+ nextSteps: string[];
22550
+ };
22551
+ //#endregion
22552
+ //#region packages/core/src/providers/resolver.d.ts
22553
+ type ProviderCandidate = {
22554
+ adapter: ProviderAdapter;
22555
+ connected: boolean;
22556
+ priority: number;
22557
+ };
22558
+ type ProviderResolution = {
22559
+ status: 'available';
22560
+ provider: ProviderAdapter;
22561
+ considered: ProviderId[];
22562
+ } | {
22563
+ status: 'unavailable';
22564
+ reason: 'provider-not-registered' | 'provider-not-connected' | 'capability-not-supported' | 'market-not-supported';
22565
+ considered: ProviderId[];
22566
+ };
22567
+ declare function resolveProvider(input: {
22568
+ capability: ProviderCapability;
22569
+ market: SearchMarket;
22570
+ candidates: readonly ProviderCandidate[];
22571
+ provider?: ProviderId;
22572
+ }): ProviderResolution;
22573
+ //#endregion
22574
+ //#region packages/core/src/analyze/domain-research/shared.d.ts
22575
+ type DomainResearchDependencies = {
22576
+ candidates?: readonly ProviderCandidate[];
22577
+ searchAnalytics?: typeof querySearchAnalytics;
22578
+ now?: () => Date;
22579
+ };
22580
+ //#endregion
22581
+ //#region packages/core/src/analyze/domain-research/gap-report.d.ts
22582
+ declare function competitorKeywordGapReport(input: CompetitorKeywordGapReportInput, dependencies?: DomainResearchDependencies): Promise<CompetitorKeywordGapReport>;
22583
+ //#endregion
22584
+ //#region packages/core/src/analyze/domain-research/overview.d.ts
22585
+ declare function domainOverviewReport(input: DomainOverviewReportInput, dependencies?: DomainResearchDependencies): Promise<DomainOverviewReport>;
22586
+ //#endregion
22587
+ //#region packages/core/src/analyze/domain-research/ranked-keywords.d.ts
22588
+ declare function rankedKeywordsReport(input: RankedKeywordsReportInput, dependencies?: DomainResearchDependencies): Promise<RankedKeywordsReport>;
22589
+ //#endregion
22590
+ //#region packages/core/src/analyze/domain-research/ranking-pages.d.ts
22591
+ declare function rankingPagesReport(input: RankingPagesReportInput, dependencies?: DomainResearchDependencies): Promise<RankingPagesReport>;
22592
+ //#endregion
22593
+ //#region packages/core/src/analyze/domain-research/serp-competitors.d.ts
22594
+ declare function serpCompetitorsReport(input: SerpCompetitorsReportInput, dependencies?: DomainResearchDependencies): Promise<SerpCompetitorsReport>;
22595
+ //#endregion
22596
+ //#region packages/core/src/analyze/experiments/change-log.d.ts
22597
+ declare function recordChange(input: {
22598
+ site: string;
22599
+ scope: ChangeScope;
22600
+ target: string;
22601
+ title: string;
22602
+ description?: string;
22603
+ changedAt: string;
22604
+ }): SeoChange;
22605
+ declare function listChanges(input?: {
22606
+ site?: string;
22607
+ limit?: number;
22608
+ }): SeoChange[];
22609
+ declare function getChange(id: string): SeoChange | undefined;
22610
+ declare function deleteChange(id: string): boolean;
22611
+ //#endregion
22612
+ //#region packages/core/src/analyze/experiments/content-groups.d.ts
22613
+ declare function createContentGroup(input: {
22614
+ site: string;
22615
+ name: string;
22616
+ dimension?: ContentGroupDimension;
22617
+ matchType?: ContentGroupMatchType;
22618
+ pattern: string;
22619
+ }): ContentGroup;
22620
+ declare function listContentGroups(site?: string): ContentGroup[];
22621
+ declare function getContentGroup(id: string): ContentGroup | undefined;
22622
+ declare function deleteContentGroup(id: string): boolean;
22623
+ //#endregion
22624
+ //#region packages/core/src/analyze/experiments/measure-change.d.ts
22625
+ type MeasureChangeDependencies = {
22626
+ searchAnalytics: typeof querySearchAnalytics;
22627
+ googleAnalyticsReport: typeof runGa4Report;
22628
+ contentGroup: typeof getContentGroup;
22629
+ now: () => Date;
22630
+ };
22631
+ declare function measureChange(input: {
22632
+ id?: string;
22633
+ site?: string;
22634
+ scope?: ChangeScope;
22635
+ target?: string;
22636
+ title?: string;
22637
+ changedAt?: string;
22638
+ googleAnalyticsPropertyId?: string;
22639
+ controlScope?: ChangeScope;
22640
+ controlTarget?: string;
22641
+ controlTitle?: string;
22642
+ beforeDays?: number;
22643
+ afterDays?: number;
22644
+ refresh?: boolean;
22645
+ }, dependencies?: MeasureChangeDependencies): Promise<ChangeMeasurement>;
22646
+ //#endregion
22647
+ //#region packages/core/src/analyze/internal-links-types.d.ts
22648
+ type InternalLinkMatchKind = 'exact-query' | 'lexical-review';
22649
+ interface InternalLinkQueryMatch {
22650
+ sourceQuery: string;
22651
+ targetQuery: string;
22652
+ kind: InternalLinkMatchKind;
22653
+ relevanceScore: number;
22654
+ impressions: number;
22655
+ sharedTerms: string[];
22656
+ }
22657
+ interface InternalLinkCandidate {
22658
+ sourceUrl: string;
22659
+ matchedQueryImpressions: number;
22660
+ matchedQueries: number;
22661
+ exactQueryMatches: number;
22662
+ bestRelevanceScore: number;
22663
+ bestMatchKind: InternalLinkMatchKind;
22664
+ matches: InternalLinkQueryMatch[];
22665
+ }
22666
+ interface InternalLinkOpportunity extends InternalLinkCandidate {
22667
+ finalUrl: string;
22668
+ status: number;
22669
+ technicalSignals: PageTechnicalSignal[];
22670
+ fetchDiagnostics: PageFetchDiagnostics;
22671
+ pageWarnings: string[];
22672
+ actionType: 'review-contextual-link' | 'review-alias-link';
22673
+ linkEvidence: {
22674
+ status: 'missing' | 'non-contextual-only' | 'alias-contextual';
21923
22675
  observedCount: number;
21924
22676
  observedLimit: number;
21925
22677
  limitedCount: number;
@@ -22084,283 +22836,43 @@ interface InternalLinksAnalysisInput {
22084
22836
  targetAliases: string[];
22085
22837
  minImpressions: number;
22086
22838
  brandTerms?: string[];
22087
- includeBrand?: boolean;
22088
- }
22089
- interface InternalLinksAnalysis {
22090
- targetQueries: Array<{
22091
- query: string;
22092
- clicks: number;
22093
- impressions: number;
22094
- }>;
22095
- candidates: InternalLinkCandidate[];
22096
- selection: Omit<InternalLinksSelection, 'attemptedSources' | 'checkedSources' | 'returnedSources' | 'existingLinkExclusions' | 'technicalExclusions' | 'selfAliasExclusions' | 'failedChecks' | 'uncheckedCandidates'>;
22097
- }
22098
- declare function analyzeInternalLinksFromRows(input: InternalLinksAnalysisInput): InternalLinksAnalysis;
22099
- //#endregion
22100
- //#region packages/core/src/analyze/internal-links.d.ts
22101
- type SearchAnalytics$4 = typeof querySearchAnalytics;
22102
- type FetchPage$2 = typeof fetchPage;
22103
- type ExtractPage$1 = typeof extractPage;
22104
- interface InternalLinksInput {
22105
- site: string;
22106
- targetUrl: string;
22107
- days?: number;
22108
- limit?: number;
22109
- checkLimit?: number;
22110
- minImpressions?: number;
22111
- brandTerms?: string[];
22112
- includeBrand?: boolean;
22113
- js?: boolean | 'auto';
22114
- rate?: FetchRateControls;
22115
- refresh?: boolean;
22116
- }
22117
- interface InternalLinksDependencies {
22118
- searchAnalytics: SearchAnalytics$4;
22119
- fetch: FetchPage$2;
22120
- extract: ExtractPage$1;
22121
- now: () => Date;
22122
- }
22123
- declare function internalLinksReport(input: InternalLinksInput, dependencies?: InternalLinksDependencies): Promise<InternalLinksReport>;
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[]>>;
22839
+ includeBrand?: boolean;
22268
22840
  }
22269
- type KeywordMetricsCostEstimate = {
22270
- schemaVersion: 1;
22271
- provider: ProviderId;
22272
- capability: 'keyword-metrics';
22273
- currency: 'USD';
22274
- requestedRows: number;
22275
- requestCount: number;
22276
- estimatedMicros: number | null;
22277
- observedAt: string;
22278
- completeness: 'complete' | 'unavailable';
22279
- basis: string;
22280
- };
22281
- interface KeywordMetricsCostEstimator extends ProviderAdapter {
22282
- estimateKeywordMetricsCost(input: {
22283
- requestedRows: number;
22284
- market: SearchMarket;
22285
- }): Promise<KeywordMetricsCostEstimate>;
22841
+ interface InternalLinksAnalysis {
22842
+ targetQueries: Array<{
22843
+ query: string;
22844
+ clicks: number;
22845
+ impressions: number;
22846
+ }>;
22847
+ candidates: InternalLinkCandidate[];
22848
+ selection: Omit<InternalLinksSelection, 'attemptedSources' | 'checkedSources' | 'returnedSources' | 'existingLinkExclusions' | 'technicalExclusions' | 'selfAliasExclusions' | 'failedChecks' | 'uncheckedCandidates'>;
22286
22849
  }
22287
- declare const keywordDiscoverySourceSchema: z.ZodEnum<{
22288
- ideas: "ideas";
22289
- related: "related";
22290
- suggestions: "suggestions";
22291
- }>;
22292
- type KeywordDiscoverySource = z.infer<typeof keywordDiscoverySourceSchema>;
22293
- type KeywordIdeaSource = {
22294
- seed: string;
22295
- source: KeywordDiscoverySource;
22296
- };
22297
- type KeywordIdea = KeywordMetric & {
22298
- sources: KeywordIdeaSource[];
22299
- };
22300
- type KeywordDiscoveryRequest = {
22301
- seeds: string[];
22302
- sources: KeywordDiscoverySource[];
22303
- market: SearchMarket;
22304
- limit: number;
22850
+ declare function analyzeInternalLinksFromRows(input: InternalLinksAnalysisInput): InternalLinksAnalysis;
22851
+ //#endregion
22852
+ //#region packages/core/src/analyze/internal-links.d.ts
22853
+ type SearchAnalytics$4 = typeof querySearchAnalytics;
22854
+ type FetchPage$2 = typeof fetchPage;
22855
+ type ExtractPage$1 = typeof extractPage;
22856
+ interface InternalLinksInput {
22857
+ site: string;
22858
+ targetUrl: string;
22859
+ days?: number;
22860
+ limit?: number;
22861
+ checkLimit?: number;
22862
+ minImpressions?: number;
22863
+ brandTerms?: string[];
22864
+ includeBrand?: boolean;
22865
+ js?: boolean | 'auto';
22866
+ rate?: FetchRateControls;
22305
22867
  refresh?: boolean;
22306
- context?: ProviderRequestContext;
22307
- };
22308
- interface KeywordDiscoveryProvider extends ProviderAdapter {
22309
- discoverKeywords(input: KeywordDiscoveryRequest): Promise<ProviderEvidence<KeywordIdea[]>>;
22310
22868
  }
22311
- type SerpOrganicResult = {
22312
- rankGroup: number;
22313
- rankAbsolute: number;
22314
- page: number;
22315
- domain: string;
22316
- url: string;
22317
- title: string | null;
22318
- description: string | null;
22319
- isFeaturedSnippet: boolean | null;
22320
- };
22321
- type SerpSnapshot = {
22322
- keyword: string;
22323
- effectiveKeyword: string;
22324
- searchEngineDomain: string | null;
22325
- checkedAt: string;
22326
- checkUrl: string | null;
22327
- resultCount: number | null;
22328
- pagesCount: number | null;
22329
- features: string[];
22330
- organicResults: SerpOrganicResult[];
22331
- };
22332
- type SerpSnapshotRequest = {
22333
- keyword: string;
22334
- market: SearchMarket;
22335
- depth: number;
22336
- refresh?: boolean;
22337
- context?: ProviderRequestContext;
22338
- };
22339
- interface SerpSnapshotProvider extends ProviderAdapter {
22340
- serpSnapshot(input: SerpSnapshotRequest): Promise<ProviderEvidence<SerpSnapshot>>;
22869
+ interface InternalLinksDependencies {
22870
+ searchAnalytics: SearchAnalytics$4;
22871
+ fetch: FetchPage$2;
22872
+ extract: ExtractPage$1;
22873
+ now: () => Date;
22341
22874
  }
22342
- //#endregion
22343
- //#region packages/core/src/providers/resolver.d.ts
22344
- type ProviderCandidate = {
22345
- adapter: ProviderAdapter;
22346
- connected: boolean;
22347
- priority: number;
22348
- };
22349
- type ProviderResolution = {
22350
- status: 'available';
22351
- provider: ProviderAdapter;
22352
- considered: ProviderId[];
22353
- } | {
22354
- status: 'unavailable';
22355
- reason: 'provider-not-registered' | 'provider-not-connected' | 'capability-not-supported' | 'market-not-supported';
22356
- considered: ProviderId[];
22357
- };
22358
- declare function resolveProvider(input: {
22359
- capability: ProviderCapability;
22360
- market: SearchMarket;
22361
- candidates: readonly ProviderCandidate[];
22362
- provider?: ProviderId;
22363
- }): ProviderResolution;
22875
+ declare function internalLinksReport(input: InternalLinksInput, dependencies?: InternalLinksDependencies): Promise<InternalLinksReport>;
22364
22876
  //#endregion
22365
22877
  //#region packages/core/src/analyze/keyword-metrics.d.ts
22366
22878
  type KeywordTrend = {
@@ -26620,11 +27132,206 @@ declare const dataForSeoDiscoveryResponseSchema: z.ZodObject<{
26620
27132
  }, z.core.$loose>;
26621
27133
  type DataForSeoDiscoveryResponse = z.infer<typeof dataForSeoDiscoveryResponseSchema>;
26622
27134
  //#endregion
27135
+ //#region packages/core/src/providers/dataforseo/domain-schema.d.ts
27136
+ declare const dataForSeoDomainOverviewResponseSchema: z.ZodObject<{
27137
+ status_code: z.ZodNumber;
27138
+ status_message: z.ZodString;
27139
+ cost: z.ZodOptional<z.ZodNumber>;
27140
+ tasks_count: z.ZodNumber;
27141
+ tasks_error: z.ZodNumber;
27142
+ tasks: z.ZodArray<z.ZodObject<{
27143
+ result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
27144
+ target: z.ZodOptional<z.ZodString>;
27145
+ location_code: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27146
+ language_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27147
+ total_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27148
+ items_count: z.ZodOptional<z.ZodNumber>;
27149
+ items: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
27150
+ location_code: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27151
+ language_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27152
+ metrics: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27153
+ organic: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27154
+ pos_1: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27155
+ pos_2_3: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27156
+ pos_4_10: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27157
+ pos_11_20: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27158
+ pos_21_30: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27159
+ pos_31_40: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27160
+ pos_41_50: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27161
+ pos_51_60: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27162
+ pos_61_70: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27163
+ pos_71_80: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27164
+ pos_81_90: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27165
+ pos_91_100: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27166
+ etv: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27167
+ count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27168
+ estimated_paid_traffic_cost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27169
+ is_new: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27170
+ is_up: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27171
+ is_down: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27172
+ is_lost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27173
+ }, z.core.$loose>>>;
27174
+ }, z.core.$loose>>>;
27175
+ }, z.core.$loose>>>>;
27176
+ }, z.core.$loose>>>>;
27177
+ id: z.ZodOptional<z.ZodString>;
27178
+ status_code: z.ZodNumber;
27179
+ status_message: z.ZodString;
27180
+ cost: z.ZodOptional<z.ZodNumber>;
27181
+ result_count: z.ZodOptional<z.ZodNumber>;
27182
+ }, z.core.$loose>>;
27183
+ }, z.core.$loose>;
27184
+ declare const dataForSeoRankedKeywordsResponseSchema: z.ZodObject<{
27185
+ status_code: z.ZodNumber;
27186
+ status_message: z.ZodString;
27187
+ cost: z.ZodOptional<z.ZodNumber>;
27188
+ tasks_count: z.ZodNumber;
27189
+ tasks_error: z.ZodNumber;
27190
+ tasks: z.ZodArray<z.ZodObject<{
27191
+ result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
27192
+ target: z.ZodOptional<z.ZodString>;
27193
+ total_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27194
+ items_count: z.ZodOptional<z.ZodNumber>;
27195
+ items: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
27196
+ keyword_data: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27197
+ keyword: z.ZodString;
27198
+ keyword_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27199
+ search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27200
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27201
+ competition: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27202
+ monthly_searches: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
27203
+ year: z.ZodNumber;
27204
+ month: z.ZodNumber;
27205
+ search_volume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27206
+ }, z.core.$loose>>>>;
27207
+ last_updated_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27208
+ }, z.core.$strip>>>;
27209
+ keyword_properties: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27210
+ keyword_difficulty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27211
+ }, z.core.$strip>>>;
27212
+ serp_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27213
+ se_results_count: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
27214
+ }, z.core.$strip>>>;
27215
+ search_intent_info: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27216
+ main_intent: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
27217
+ informational: "informational";
27218
+ navigational: "navigational";
27219
+ commercial: "commercial";
27220
+ transactional: "transactional";
27221
+ }>>>;
27222
+ }, z.core.$strip>>>;
27223
+ }, z.core.$loose>>>;
27224
+ ranked_serp_element: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27225
+ serp_item: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27226
+ type: z.ZodOptional<z.ZodString>;
27227
+ rank_group: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27228
+ rank_absolute: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27229
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27230
+ etv: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27231
+ }, z.core.$loose>>>;
27232
+ }, z.core.$loose>>>;
27233
+ }, z.core.$loose>>>>;
27234
+ }, z.core.$loose>>>>;
27235
+ id: z.ZodOptional<z.ZodString>;
27236
+ status_code: z.ZodNumber;
27237
+ status_message: z.ZodString;
27238
+ cost: z.ZodOptional<z.ZodNumber>;
27239
+ result_count: z.ZodOptional<z.ZodNumber>;
27240
+ }, z.core.$loose>>;
27241
+ }, z.core.$loose>;
27242
+ declare const dataForSeoRankingPagesResponseSchema: z.ZodObject<{
27243
+ status_code: z.ZodNumber;
27244
+ status_message: z.ZodString;
27245
+ cost: z.ZodOptional<z.ZodNumber>;
27246
+ tasks_count: z.ZodNumber;
27247
+ tasks_error: z.ZodNumber;
27248
+ tasks: z.ZodArray<z.ZodObject<{
27249
+ result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
27250
+ target: z.ZodOptional<z.ZodString>;
27251
+ total_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27252
+ items_count: z.ZodOptional<z.ZodNumber>;
27253
+ items: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
27254
+ page_address: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27255
+ metrics: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27256
+ organic: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27257
+ pos_1: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27258
+ pos_2_3: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27259
+ pos_4_10: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27260
+ pos_11_20: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27261
+ pos_21_30: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27262
+ pos_31_40: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27263
+ pos_41_50: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27264
+ pos_51_60: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27265
+ pos_61_70: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27266
+ pos_71_80: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27267
+ pos_81_90: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27268
+ pos_91_100: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27269
+ etv: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27270
+ count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27271
+ estimated_paid_traffic_cost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27272
+ is_new: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27273
+ is_up: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27274
+ is_down: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27275
+ is_lost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27276
+ }, z.core.$loose>>>;
27277
+ }, z.core.$loose>>>;
27278
+ }, z.core.$loose>>>>;
27279
+ }, z.core.$loose>>>>;
27280
+ id: z.ZodOptional<z.ZodString>;
27281
+ status_code: z.ZodNumber;
27282
+ status_message: z.ZodString;
27283
+ cost: z.ZodOptional<z.ZodNumber>;
27284
+ result_count: z.ZodOptional<z.ZodNumber>;
27285
+ }, z.core.$loose>>;
27286
+ }, z.core.$loose>;
27287
+ declare const dataForSeoSerpCompetitorsResponseSchema: z.ZodObject<{
27288
+ status_code: z.ZodNumber;
27289
+ status_message: z.ZodString;
27290
+ cost: z.ZodOptional<z.ZodNumber>;
27291
+ tasks_count: z.ZodNumber;
27292
+ tasks_error: z.ZodNumber;
27293
+ tasks: z.ZodArray<z.ZodObject<{
27294
+ result: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
27295
+ seed_keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
27296
+ total_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27297
+ items_count: z.ZodOptional<z.ZodNumber>;
27298
+ items: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
27299
+ domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27300
+ avg_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27301
+ median_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27302
+ etv: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27303
+ keywords_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27304
+ visibility: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27305
+ relevant_serp_items: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27306
+ keywords_positions: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodNumber>>>>;
27307
+ }, z.core.$loose>>>>;
27308
+ }, z.core.$loose>>>>;
27309
+ id: z.ZodOptional<z.ZodString>;
27310
+ status_code: z.ZodNumber;
27311
+ status_message: z.ZodString;
27312
+ cost: z.ZodOptional<z.ZodNumber>;
27313
+ result_count: z.ZodOptional<z.ZodNumber>;
27314
+ }, z.core.$loose>>;
27315
+ }, z.core.$loose>;
27316
+ type DataForSeoDomainOverviewResponse = z.infer<typeof dataForSeoDomainOverviewResponseSchema>;
27317
+ type DataForSeoRankedKeywordsResponse = z.infer<typeof dataForSeoRankedKeywordsResponseSchema>;
27318
+ type DataForSeoRankingPagesResponse = z.infer<typeof dataForSeoRankingPagesResponseSchema>;
27319
+ type DataForSeoSerpCompetitorsResponse = z.infer<typeof dataForSeoSerpCompetitorsResponseSchema>;
27320
+ //#endregion
26623
27321
  //#region packages/core/src/providers/dataforseo/paid-request.d.ts
26624
27322
  type DataForSeoUnitPrice = {
26625
27323
  perRequestMicros: number | null;
26626
27324
  perResultMicros: number | null;
26627
27325
  };
27326
+ type DataForSeoPaidSnapshot<T> = {
27327
+ response: T;
27328
+ observedAt: string;
27329
+ returnedRows: number;
27330
+ cache: ProviderCacheEvidence;
27331
+ cost: ProviderCostEvidence;
27332
+ spendNotice: ProviderSpendNotice | null;
27333
+ warnings: ProviderWarning[];
27334
+ };
26628
27335
  //#endregion
26629
27336
  //#region packages/core/src/providers/dataforseo/schema.d.ts
26630
27337
  declare const dataForSeoKeywordOverviewResponseSchema: z.ZodObject<{
@@ -26728,6 +27435,12 @@ type DataForSeoAccountSnapshot = {
26728
27435
  accountDailyLimitMicros: number | null;
26729
27436
  keywordOverviewPrice: DataForSeoUnitPrice;
26730
27437
  keywordDiscoveryPrices: Record<KeywordDiscoverySource, DataForSeoUnitPrice>;
27438
+ domainResearchPrices: {
27439
+ domainOverview: DataForSeoUnitPrice;
27440
+ rankedKeywords: DataForSeoUnitPrice;
27441
+ rankingPages: DataForSeoUnitPrice;
27442
+ serpCompetitors: DataForSeoUnitPrice;
27443
+ };
26731
27444
  serpLiveAdvancedPrice: DataForSeoUnitPrice;
26732
27445
  serpTaskPostPrice: DataForSeoUnitPrice;
26733
27446
  backlinksSubscriptionExpiresAt: string | null;
@@ -26750,6 +27463,7 @@ type DataForSeoClientOptions = {
26750
27463
  serpTtlMs?: number;
26751
27464
  accountPricingTtlMs?: number;
26752
27465
  spendLimits?: ProviderSpendLimits;
27466
+ domainResearchTtlMs?: number;
26753
27467
  };
26754
27468
  type DataForSeoKeywordOverviewRequest = {
26755
27469
  keywords: string[];
@@ -26827,6 +27541,43 @@ type DataForSeoSerpTaskPostSnapshot = {
26827
27541
  warnings: ProviderWarning[];
26828
27542
  observedAt: string;
26829
27543
  };
27544
+ type DataForSeoDomainRequestBase = {
27545
+ languageCode: string;
27546
+ locationCode?: number;
27547
+ locationName?: string;
27548
+ limit?: number;
27549
+ offset?: number;
27550
+ refresh?: boolean;
27551
+ context: ProviderRequestContext;
27552
+ };
27553
+ type DataForSeoDomainOverviewRequest = DataForSeoDomainRequestBase & {
27554
+ target: string;
27555
+ };
27556
+ type DataForSeoRankedKeywordsRequest = DataForSeoDomainRequestBase & {
27557
+ target: string;
27558
+ includeSubdomains: boolean;
27559
+ resultTypes: string[];
27560
+ filters?: unknown[];
27561
+ orderBy: string[];
27562
+ limit: number;
27563
+ };
27564
+ type DataForSeoRankingPagesRequest = DataForSeoDomainRequestBase & {
27565
+ target: string;
27566
+ filters?: unknown[];
27567
+ orderBy: string[];
27568
+ limit: number;
27569
+ };
27570
+ type DataForSeoSerpCompetitorsRequest = DataForSeoDomainRequestBase & {
27571
+ keywords: string[];
27572
+ includeSubdomains: boolean;
27573
+ resultTypes: string[];
27574
+ orderBy: string[];
27575
+ limit: number;
27576
+ };
27577
+ type DataForSeoDomainOverviewSnapshot = DataForSeoPaidSnapshot<DataForSeoDomainOverviewResponse>;
27578
+ type DataForSeoRankedKeywordsSnapshot = DataForSeoPaidSnapshot<DataForSeoRankedKeywordsResponse>;
27579
+ type DataForSeoRankingPagesSnapshot = DataForSeoPaidSnapshot<DataForSeoRankingPagesResponse>;
27580
+ type DataForSeoSerpCompetitorsSnapshot = DataForSeoPaidSnapshot<DataForSeoSerpCompetitorsResponse>;
26830
27581
  type DataForSeoSerpReadyTask = {
26831
27582
  providerTaskId: string;
26832
27583
  tag: string | null;
@@ -26845,6 +27596,7 @@ declare class DataForSeoClient {
26845
27596
  private readonly keywordDiscoveryTtlMs;
26846
27597
  private readonly serpTtlMs;
26847
27598
  private readonly accountPricingTtlMs;
27599
+ private readonly domainResearchTtlMs;
26848
27600
  private readonly spendLimits;
26849
27601
  private accountPricing;
26850
27602
  private accountPricingRequest;
@@ -26856,6 +27608,10 @@ declare class DataForSeoClient {
26856
27608
  userData(): Promise<DataForSeoAccountSnapshot>;
26857
27609
  private pricingForCredentials;
26858
27610
  private paidPost;
27611
+ domainOverview(input: DataForSeoDomainOverviewRequest): Promise<DataForSeoDomainOverviewSnapshot>;
27612
+ rankedKeywords(input: DataForSeoRankedKeywordsRequest): Promise<DataForSeoRankedKeywordsSnapshot>;
27613
+ rankingPages(input: DataForSeoRankingPagesRequest): Promise<DataForSeoRankingPagesSnapshot>;
27614
+ serpCompetitors(input: DataForSeoSerpCompetitorsRequest): Promise<DataForSeoSerpCompetitorsSnapshot>;
26859
27615
  keywordOverview(input: DataForSeoKeywordOverviewRequest): Promise<DataForSeoKeywordOverviewSnapshot>;
26860
27616
  keywordDiscovery(input: DataForSeoKeywordDiscoveryRequest): Promise<DataForSeoKeywordDiscoverySnapshot>;
26861
27617
  serpLive(input: DataForSeoSerpRequest): Promise<DataForSeoSerpSnapshot>;
@@ -27289,7 +28045,7 @@ declare const TELEMETRY_TIMEOUT_MS = 2000;
27289
28045
  declare const TELEMETRY_EVENTS: readonly ["first_run", "setup_complete", "audit_start", "audit_complete", "audit_failed", "first_audit_complete", "active_d1", "active_d7", "active_d30"];
27290
28046
  declare const TELEMETRY_AGENTS: readonly ["claude-code", "cursor", "codex", "cli", "unknown"];
27291
28047
  declare const TELEMETRY_ERROR_CATEGORIES: readonly ["auth", "crawl_timeout", "network", "config", "unknown"];
27292
- 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", "saved-keywords", "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", "rank-tracking", "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"];
28048
+ 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", "competitor-keyword-gap", "content-optimization", "crawl-diff", "site-crawl", "ctr-underperformers", "decaying-pages", "domain-overview", "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", "saved-keywords", "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", "rank-tracking", "ranked-keywords", "ranking-pages", "redirect-trace", "narrative-report", "second-page", "segment-impact", "serp-results", "serp-competitors", "striking-distance", "seo-to-ai-query", "top-fixes", "traffic-anomaly", "update-correlation", "search-performance-overview", "monthly-action-plan", "refresh-priorities", "technical-watch", "update-postmortem"];
27293
28049
  type TelemetryEvent = (typeof TELEMETRY_EVENTS)[number];
27294
28050
  type TelemetryAgent = (typeof TELEMETRY_AGENTS)[number];
27295
28051
  type TelemetryErrorCategory = (typeof TELEMETRY_ERROR_CATEGORIES)[number];
@@ -27364,5 +28120,5 @@ declare function isoDate(daysAgo?: number): string;
27364
28120
  //#region packages/core/src/version.d.ts
27365
28121
  declare const SEO_VERSION: string;
27366
28122
  //#endregion
27367
- 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, DataForSeoRankTrackingCollector, 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, KEYWORD_SET_FIELD_LIMITS, KEYWORD_SET_LIMITS, KEYWORD_SET_SCHEMA_SQL, KeywordDataProvider, KeywordDiscoveryProvider, KeywordDiscoveryRequest, KeywordDiscoverySource, KeywordIdea, KeywordIdeaSource, KeywordMetric, KeywordMetricAnalysis, KeywordMetricFinding, KeywordMetricsCostEstimate, KeywordMetricsCostEstimator, KeywordMetricsProvider, KeywordMetricsReport, KeywordMetricsReportDependencies, KeywordMetricsRequest, KeywordMonthlySearch, KeywordOpportunitiesDependencies, KeywordOpportunitiesInput, KeywordOpportunitiesReport, KeywordOpportunityCluster, KeywordOpportunityCombined, KeywordOpportunityDataSourcePrompt, KeywordOpportunityExternal, KeywordOpportunityFinding, KeywordOpportunityFirstParty, KeywordOpportunitySource, KeywordOverview, KeywordResearchAnalysis, KeywordResearchFinding, KeywordResearchReport, KeywordResearchReportDependencies, KeywordRow, KeywordSet, KeywordSetDetail, KeywordSetItem, KeywordSetMutationItem, KeywordSetMutationResult, KeywordSetPageMapping, KeywordSetRefreshDependencies, KeywordSetRefreshReport, type KeywordSetStoreOptions, 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, QueuedSerpPostReceipt, QueuedSerpPostResult, QueuedSerpReadyTask, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, QuickWinsSection, RANK_TRACKING_LIMITS, RANK_TRACKING_SCHEMA_SQL, REPORT_BASELINE_MAX_AGE_MS, REPORT_BASELINE_MAX_DEPTH, REPORT_BASELINE_MAX_PAGES, RankChange, RankObservation, RankTrackingCadence, RankTrackingCollectionMethod, RankTrackingCollector, RankTrackingConfiguration, RankTrackingDevice, RankTrackingExecution, RankTrackingExecutionDependencies, RankTrackingExecutionInput, RankTrackingReport, RankTrackingReportInput, RankTrackingReportItem, RankTrackingRun, RankTrackingRunState, type RankTrackingStoreOptions, RankTrackingTask, 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, SavedKeywordMetric, SavedKeywordSetReport, 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, activeRankTrackingRun, addKeywordsToSet, 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, createKeywordSet, createLogger, createPageRenderer, ctrUnderperformersReport, decayClusterDrafts, decayComparisonRange, decayingReport, deleteChange, deleteClient, deleteContentGroup, deleteCrawlReport, deleteDataForSeoCredentials, deleteKeywordSet, deleteProviderSecret, deleteTokens, deriveBrandTerms, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, emptyStatusBreakdown, enforceRankTrackingLogicalBytes, ensurePrivateDatabaseFiles, ensureSeoCliDirs, entityReadiness, estimateSerpTitleWidth, executeRankTracking, expectedCtrForPosition, explainOkfValidation, explainRule, failRankTrackingTask, 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, getKeywordSet, getOrCreateRankTrackingConfiguration, getPreviousRun, getPrivacySnapshot, getProviderSpendLimits, getProviderSpendSummary, getRankTrackingRun, 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, keywordSetLogicalBytes, latestCrawlReport, latestCrawlSummaries, latestFinalGscDate, latestIndexWatchSummary, latestLinkRecoverSummary, latestRankTrackingRun, linkEntries, linkEvidenceKey, linkEvidenceReport, linkRecover, linkRecoverRecommendation, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listIndexNowKeys, listKeywordSets, listRules, listSearchUpdates, listSites, loadCrawlReport, localCredentialsProvider, loginWithLoopback, makeRunId, mapDataForSeoSerpSnapshot, markRankTasksPosted, markRankTasksPosting, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, monthlyReport, monthlyReportWorkflow, narrativeCsvFiles, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLinkEvidenceRow, normalizeLoadedCrawlReport, normalizeSavedKeyword, noteCacheWrite, observedValue, okfConceptLimit, pageEvidenceRecommendation, pageOpportunitiesReport, parseCombinedLogLine, parseIndexNowSite, parseJsonLogLine, parseOlderThan, parsePseoPath, performanceAudit, performanceReportIsCacheable, planDueIndexUrls, planIndexCoverageFromUrls, plural, priorComparableRankTrackingRun, 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, rankObservations, rankTrackingLogicalBytes, rankTrackingReport, rankTrackingTasks, readBoundedResponseText, readConfig, readDataForSeoCredentials, readOauthClient, readProviderSecret, readTokens, recommendCrawlDiffItem, recommendationForRule, recordChange, recoverRankTaskReceipt, redirectTrace, refreshAuthToken, refreshKeywordSet, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, refreshRankTrackingRun, removeIndexNowKey, removeKeywordsFromSet, 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, saveRankObservation, saveRankObservations, savedKeywordSetReport, searchMarketSchema, secondPage, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, seoErrorEnvelope, seoToAiQueryReport, serpResultsReport, serverLogReport, sessionSourceInListFilter, setClientBingSite, setDefaultClient, setKeywordSetRefreshTime, setProviderSpendLimits, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, startRankTrackingRun, strikingDistance, submitIndexNow, summarizeCrawlReport, targetMatchesDomain, 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 };
28123
+ 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, type ClassifiedSerpCompetitor, ClientProfile, ClientProfileInput, CollectedLinkEvidence, CommunityIntent, CommunityIntentClassification, CommunityIntentReport, type CompetitorKeywordGapCandidate, type CompetitorKeywordGapReport, type CompetitorKeywordGapReportInput, type CompetitorSiteType, 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, type DataForSeoDomainOverviewRequest, type DataForSeoDomainOverviewSnapshot, DataForSeoKeywordDiscoveryProvider, DataForSeoKeywordDiscoveryProviderOptions, type DataForSeoKeywordDiscoveryRequest, type DataForSeoKeywordDiscoverySnapshot, DataForSeoKeywordMetricsProvider, DataForSeoKeywordMetricsProviderOptions, type DataForSeoKeywordOverviewRequest, type DataForSeoKeywordOverviewSnapshot, DataForSeoProvider, DataForSeoRankTrackingCollector, type DataForSeoRankedKeywordsRequest, type DataForSeoRankedKeywordsSnapshot, type DataForSeoRankingPagesRequest, type DataForSeoRankingPagesSnapshot, type DataForSeoSerpCompetitorsRequest, type DataForSeoSerpCompetitorsSnapshot, 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, type DeclaredCompetitor, DiagnosePropertyDependencies, DiagnosePropertyReport, DiagnosisDataStatus, DiagnosisPriority, DoctorCheck, DomainOverview, DomainOverviewProvider, type DomainOverviewReport, type DomainOverviewReportInput, DomainOverviewRequest, type DomainReportInput, type DomainResearchDataStatus, DomainResearchProvider, DueIndexSelection, DueIndexUrl, EffectiveSnippetControl, EntityReadinessCheck, EntityReadinessReport, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, type Ga4AccountSummary, Ga4DataStream, type Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, type GapCompetitor, 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, KEYWORD_SET_FIELD_LIMITS, KEYWORD_SET_LIMITS, KEYWORD_SET_SCHEMA_SQL, KeywordDataProvider, KeywordDiscoveryProvider, KeywordDiscoveryRequest, KeywordDiscoverySource, KeywordIdea, KeywordIdeaSource, KeywordMetric, KeywordMetricAnalysis, KeywordMetricFinding, KeywordMetricsCostEstimate, KeywordMetricsCostEstimator, KeywordMetricsProvider, KeywordMetricsReport, KeywordMetricsReportDependencies, KeywordMetricsRequest, KeywordMonthlySearch, KeywordOpportunitiesDependencies, KeywordOpportunitiesInput, KeywordOpportunitiesReport, KeywordOpportunityCluster, KeywordOpportunityCombined, KeywordOpportunityDataSourcePrompt, KeywordOpportunityExternal, KeywordOpportunityFinding, KeywordOpportunityFirstParty, KeywordOpportunitySource, KeywordOverview, KeywordResearchAnalysis, KeywordResearchFinding, KeywordResearchReport, KeywordResearchReportDependencies, KeywordRow, KeywordSet, KeywordSetDetail, KeywordSetItem, KeywordSetMutationItem, KeywordSetMutationResult, KeywordSetPageMapping, KeywordSetRefreshDependencies, KeywordSetRefreshReport, type KeywordSetStoreOptions, 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, OrganicFootprint, 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, QueuedSerpPostReceipt, QueuedSerpPostResult, QueuedSerpReadyTask, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, QuickWinsSection, RANK_TRACKING_LIMITS, RANK_TRACKING_SCHEMA_SQL, REPORT_BASELINE_MAX_AGE_MS, REPORT_BASELINE_MAX_DEPTH, REPORT_BASELINE_MAX_PAGES, RankChange, RankObservation, RankTrackingCadence, RankTrackingCollectionMethod, RankTrackingCollector, RankTrackingConfiguration, RankTrackingDevice, RankTrackingExecution, RankTrackingExecutionDependencies, RankTrackingExecutionInput, RankTrackingReport, RankTrackingReportInput, RankTrackingReportItem, RankTrackingRun, RankTrackingRunState, type RankTrackingStoreOptions, RankTrackingTask, RankedKeyword, type RankedKeywordFirstPartyMatch, RankedKeywordPage, RankedKeywordsProvider, type RankedKeywordsReport, type RankedKeywordsReportInput, RankedKeywordsRequest, RankingDistribution, RankingPage, RankingPagePage, type RankingPageTemplatePattern, RankingPagesProvider, type RankingPagesReport, type RankingPagesReportInput, RankingPagesRequest, 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, SavedKeywordMetric, SavedKeywordSetReport, ScorecardBand, ScorecardCheck, ScorecardCheckId, ScorecardObservation, ScorecardStatus, SearchAnalyticsRequest, type SearchConsoleAggregateEvidence, 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, SerpCompetitor, SerpCompetitorKeywordPosition, SerpCompetitorSet, SerpCompetitorsProvider, type SerpCompetitorsReport, type SerpCompetitorsReportInput, SerpCompetitorsRequest, 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, activeRankTrackingRun, addKeywordsToSet, 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, competitorKeywordGapReport, 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, createKeywordSet, createLogger, createPageRenderer, ctrUnderperformersReport, decayClusterDrafts, decayComparisonRange, decayingReport, deleteChange, deleteClient, deleteContentGroup, deleteCrawlReport, deleteDataForSeoCredentials, deleteKeywordSet, deleteProviderSecret, deleteTokens, deriveBrandTerms, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, domainOverviewReport, effectiveRobotsDirectives, effectiveSnippetControl, emptyStatusBreakdown, enforceRankTrackingLogicalBytes, ensurePrivateDatabaseFiles, ensureSeoCliDirs, entityReadiness, estimateSerpTitleWidth, executeRankTracking, expectedCtrForPosition, explainOkfValidation, explainRule, failRankTrackingTask, 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, getKeywordSet, getOrCreateRankTrackingConfiguration, getPreviousRun, getPrivacySnapshot, getProviderSpendLimits, getProviderSpendSummary, getRankTrackingRun, 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, keywordSetLogicalBytes, latestCrawlReport, latestCrawlSummaries, latestFinalGscDate, latestIndexWatchSummary, latestLinkRecoverSummary, latestRankTrackingRun, linkEntries, linkEvidenceKey, linkEvidenceReport, linkRecover, linkRecoverRecommendation, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listIndexNowKeys, listKeywordSets, listRules, listSearchUpdates, listSites, loadCrawlReport, localCredentialsProvider, loginWithLoopback, makeRunId, mapDataForSeoSerpSnapshot, markRankTasksPosted, markRankTasksPosting, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, monthlyReport, monthlyReportWorkflow, narrativeCsvFiles, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLinkEvidenceRow, normalizeLoadedCrawlReport, normalizeSavedKeyword, noteCacheWrite, observedValue, okfConceptLimit, pageEvidenceRecommendation, pageOpportunitiesReport, parseCombinedLogLine, parseIndexNowSite, parseJsonLogLine, parseOlderThan, parsePseoPath, performanceAudit, performanceReportIsCacheable, planDueIndexUrls, planIndexCoverageFromUrls, plural, priorComparableRankTrackingRun, 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, rankObservations, rankTrackingLogicalBytes, rankTrackingReport, rankTrackingTasks, rankedKeywordsReport, rankingPagesReport, readBoundedResponseText, readConfig, readDataForSeoCredentials, readOauthClient, readProviderSecret, readTokens, recommendCrawlDiffItem, recommendationForRule, recordChange, recoverRankTaskReceipt, redirectTrace, refreshAuthToken, refreshKeywordSet, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, refreshRankTrackingRun, removeIndexNowKey, removeKeywordsFromSet, 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, saveRankObservation, saveRankObservations, savedKeywordSetReport, searchMarketSchema, secondPage, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, seoErrorEnvelope, seoToAiQueryReport, serpCompetitorsReport, serpResultsReport, serverLogReport, sessionSourceInListFilter, setClientBingSite, setDefaultClient, setKeywordSetRefreshTime, setProviderSpendLimits, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, startRankTrackingRun, strikingDistance, submitIndexNow, summarizeCrawlReport, targetMatchesDomain, 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 };
27368
28124
  //# sourceMappingURL=index.d.ts.map