import type { OAuth2Client } from 'google-auth-library'; export type GscAuth = OAuth2Client; export declare function listSites(auth: GscAuth): Promise; export declare function listSitemaps(auth: GscAuth, siteUrl: string, sitemapIndex?: string): Promise; export declare function getSitemap(auth: GscAuth, siteUrl: string, feedpath: string): Promise; /** 사이트맵 제출 — webmasters(read-write) 스코프 필요. 응답 본문은 없음(204). */ export declare function submitSitemap(auth: GscAuth, siteUrl: string, feedpath: string): Promise<{ submitted: string; siteUrl: string; }>; export declare function inspectUrl(auth: GscAuth, siteUrl: string, inspectionUrl: string, languageCode?: string): Promise; export interface SearchAnalyticsParams { startDate: string; endDate: string; dimensions?: string[]; rowLimit?: number; startRow?: number; type?: 'web' | 'image' | 'video' | 'news' | 'discover' | 'googleNews'; } export declare function searchAnalytics(auth: GscAuth, siteUrl: string, params: SearchAnalyticsParams): Promise; export interface SearchAnalyticsRow { keys?: string[] | null; clicks?: number | null; impressions?: number | null; ctr?: number | null; position?: number | null; } /** * Search Analytics rows 요약. * position 은 노출수(impressions) 가중 평균으로 집계한다 — 단순 산술평균은 * 노출이 1인 행과 1000인 행을 동등 취급해 실제 평균 순위를 왜곡한다. */ export declare function summarizeRows(rows: SearchAnalyticsRow[]): { rowCount: number; totalClicks: number; totalImpressions: number; avgCtr: number; avgPosition: number; };