@getanyapi/sdk 0.9.1 → 0.9.2

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/core/errors.ts","../src/core/account.ts","../src/core/client.ts","../src/core/types.ts","../src/core/pagination.ts","../src/generated/platforms/ahrefs.ts","../src/generated/platforms/airbnb.ts","../src/generated/platforms/alibaba.ts","../src/generated/platforms/amazon.ts","../src/generated/platforms/apollo.ts","../src/generated/platforms/appstore.ts","../src/generated/platforms/bluesky.ts","../src/generated/platforms/booking.ts","../src/generated/platforms/coinmarketcap.ts","../src/generated/platforms/congress.ts","../src/generated/platforms/dexscreener.ts","../src/generated/platforms/douyin.ts","../src/generated/platforms/ebay.ts","../src/generated/platforms/email.ts","../src/generated/platforms/facebook.ts","../src/generated/platforms/fiverr.ts","../src/generated/platforms/github.ts","../src/generated/platforms/glassdoor.ts","../src/generated/platforms/google.ts","../src/generated/platforms/google_ads.ts","../src/generated/platforms/google_finance.ts","../src/generated/platforms/google_shopping.ts","../src/generated/platforms/hackernews.ts","../src/generated/platforms/indeed.ts","../src/generated/platforms/instagram.ts","../src/generated/platforms/linkedin.ts","../src/generated/platforms/maps.ts","../src/generated/platforms/pandaexpress.ts","../src/generated/platforms/person.ts","../src/generated/platforms/pinterest.ts","../src/generated/platforms/playstore.ts","../src/generated/platforms/polymarket.ts","../src/generated/platforms/realtor.ts","../src/generated/platforms/reddit.ts","../src/generated/platforms/redfin.ts","../src/generated/platforms/rednote.ts","../src/generated/platforms/sec.ts","../src/generated/platforms/semrush.ts","../src/generated/platforms/seo.ts","../src/generated/platforms/snapchat.ts","../src/generated/platforms/social.ts","../src/generated/platforms/spotify.ts","../src/generated/platforms/substack.ts","../src/generated/platforms/threads.ts","../src/generated/platforms/tiktok.ts","../src/generated/platforms/tiktok_shop.ts","../src/generated/platforms/tripadvisor.ts","../src/generated/platforms/trustpilot.ts","../src/generated/platforms/truthsocial.ts","../src/generated/platforms/twitter.ts","../src/generated/platforms/upwork.ts","../src/generated/platforms/walmart.ts","../src/generated/platforms/web.ts","../src/generated/platforms/weibo.ts","../src/generated/platforms/whatsapp.ts","../src/generated/platforms/yahoo_finance.ts","../src/generated/platforms/yelp.ts","../src/generated/platforms/youtube.ts","../src/generated/platforms/zhihu.ts","../src/generated/platforms/zillow.ts","../src/generated/client.ts"],"sourcesContent":["// Public barrel for @getanyapi/sdk. Named exports only (SPEC 0.4).\n//\n// The generated barrel (src/generated/index.ts) is the composed surface: it exports the\n// generated AnyAPI (the base client with every platform namespace attached), the augmented\n// SkuMap, every platform's input/data/item types, and re-exports the handwritten core\n// public surface (RunResult, errors, unwrap, agentSignup, ...). This entry re-exports it\n// wholesale, then adds the two core symbols the generated barrel does not surface\n// (ClientCore, paginate). See SPEC.md section 2.\n\nexport * from \"./generated/index.js\";\n\nexport { paginate } from \"./core/index.js\";\nexport type { ClientCore } from \"./core/index.js\";\n","// Handwritten runtime core: the error hierarchy and status mapping. See SPEC.md 2.6.\n// Named exports only; zero runtime deps.\n\n/**\n * Base error for all AnyAPI SDK failures.\n */\nexport class AnyAPIError extends Error {\n /** HTTP status code, or 0 for transport-level failures (connection/timeout). */\n readonly status: number;\n /** The x-request-id response header when present, else undefined. */\n readonly requestId?: string;\n\n constructor(message: string, status: number, requestId?: string) {\n super(message);\n this.name = new.target.name;\n this.status = status;\n if (requestId !== undefined) {\n this.requestId = requestId;\n }\n // Restore prototype chain for downlevel targets / bundlers.\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n/** HTTP 400. */\nexport class BadRequestError extends AnyAPIError {}\n/** HTTP 401. */\nexport class AuthenticationError extends AnyAPIError {}\n/** HTTP 402. */\nexport class InsufficientBalanceError extends AnyAPIError {}\n/** HTTP 404. */\nexport class NotFoundError extends AnyAPIError {}\n/**\n * Thrown by {@link unwrap} when a found-data result carried `found: false` (the upstream\n * had no matching result). A subclass of NotFoundError so `catch (NotFoundError)` still\n * catches it; catch ResultNotFoundError specifically to handle only empty results (not\n * HTTP 404s). See SPEC 2.3 erratum.\n */\nexport class ResultNotFoundError extends NotFoundError {}\n/** HTTP 429. */\nexport class RateLimitedError extends AnyAPIError {}\n/** HTTP 502. */\nexport class UpstreamError extends AnyAPIError {}\n/** status 0, network failure. */\nexport class ConnectionError extends AnyAPIError {}\n/** status 0, request timed out. */\nexport class TimeoutError extends AnyAPIError {}\n\n/**\n * Map a non-2xx HTTP status to the corresponding error class and construct it.\n * See SPEC 2.6: 400/401/402/404/429/502 map to named classes; any other status maps\n * to the AnyAPIError base carrying that status.\n */\nexport function errorFromStatus(\n status: number,\n message: string,\n requestId?: string,\n): AnyAPIError {\n switch (status) {\n case 400:\n return new BadRequestError(message, status, requestId);\n case 401:\n return new AuthenticationError(message, status, requestId);\n case 402:\n return new InsufficientBalanceError(message, status, requestId);\n case 404:\n return new NotFoundError(message, status, requestId);\n case 429:\n return new RateLimitedError(message, status, requestId);\n case 502:\n return new UpstreamError(message, status, requestId);\n default:\n return new AnyAPIError(message, status, requestId);\n }\n}\n","// Handwritten runtime core: account/discovery response mapping and standalone agent\n// signup. See SPEC.md 2.7. Discovery is parsed strictly at this public Seam.\n\nimport { AnyAPIError, ConnectionError, errorFromStatus } from \"./errors.js\";\nimport type {\n AccountProfile,\n AgentSignupOptions,\n AgentSignupResult,\n CatalogEntry,\n CatalogSearchResult,\n CatalogSearchResults,\n DiscoveryLane,\n DiscoveryPricing,\n HighlightField,\n LaneHealth,\n PricingOffer,\n} from \"./types.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.getanyapi.com\";\n\n/** Raw /v1/me shape (superset; internal-only fields are dropped by mapProfile). */\nexport interface ProfileResponse {\n id: string;\n email?: string | null;\n status: string;\n createdAt: string;\n onboardingComplete: boolean;\n // dropped: clerkUserId, signupGrantApplied, and any other server-only fields.\n clerkUserId?: string;\n signupGrantApplied?: boolean;\n}\n\n/** Raw customer-safe discovery bodies are intentionally unknown until validated. */\nexport type CatalogEntryResponse = unknown;\n\n/** Raw /v1/apis list envelope. */\nexport interface CatalogListResponse {\n apis: unknown;\n}\n\nexport type CatalogSearchResponse = unknown;\n\nfunction malformed(path: string): never {\n throw new AnyAPIError(`malformed discovery response: ${path}`, 0);\n}\n\nfunction rejectInternalKeys(value: unknown, path: string): void {\n if (Array.isArray(value)) {\n value.forEach((item, index) =>\n rejectInternalKeys(item, `${path}[${index}]`),\n );\n return;\n }\n if (typeof value !== \"object\" || value === null) return;\n for (const [key, item] of Object.entries(value as Record<string, unknown>)) {\n if (key.toLowerCase().includes(\"credit\")) malformed(`${path}.${key}`);\n rejectInternalKeys(item, `${path}.${key}`);\n }\n}\n\nfunction record(value: unknown, path: string): Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return malformed(path);\n }\n return value as Record<string, unknown>;\n}\n\nfunction exactKeys(\n raw: Record<string, unknown>,\n allowed: readonly string[],\n path: string,\n): void {\n const keys = new Set(allowed);\n for (const key of Object.keys(raw)) {\n if (!keys.has(key)) malformed(`${path}.${key}`);\n }\n}\n\nfunction stringField(\n raw: Record<string, unknown>,\n key: string,\n path: string,\n): string {\n const value = raw[key];\n if (typeof value !== \"string\") return malformed(`${path}.${key}`);\n return value;\n}\n\nfunction numberField(\n raw: Record<string, unknown>,\n key: string,\n path: string,\n): number {\n const value = raw[key];\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n return malformed(`${path}.${key}`);\n }\n return value;\n}\n\nfunction integerField(\n raw: Record<string, unknown>,\n key: string,\n path: string,\n): number {\n const value = numberField(raw, key, path);\n if (!Number.isInteger(value)) return malformed(`${path}.${key}`);\n return value;\n}\n\nfunction boundedNumberField(\n raw: Record<string, unknown>,\n key: string,\n path: string,\n minimumExclusive: number | undefined,\n maximumInclusive: number,\n): number {\n const value = numberField(raw, key, path);\n if (\n (minimumExclusive !== undefined && value <= minimumExclusive) ||\n value > maximumInclusive\n ) {\n return malformed(`${path}.${key}`);\n }\n return value;\n}\n\nfunction parseOffer(value: unknown, path: string): PricingOffer {\n const raw = record(value, path);\n const model = stringField(raw, \"model\", path);\n const unit = stringField(raw, \"unit\", path);\n const maxUsd = numberField(raw, \"maxUsd\", path);\n if (model === \"flat\") {\n exactKeys(raw, [\"model\", \"unit\", \"maxUsd\"], path);\n if (unit !== \"request\" || \"baseUsd\" in raw || \"perUnitUsd\" in raw) {\n return malformed(path);\n }\n return { model, unit, maxUsd };\n }\n if (model === \"linear\") {\n exactKeys(raw, [\"model\", \"unit\", \"baseUsd\", \"perUnitUsd\", \"maxUsd\"], path);\n if (unit.length === 0) return malformed(`${path}.unit`);\n return {\n model,\n unit,\n baseUsd: numberField(raw, \"baseUsd\", path),\n perUnitUsd: numberField(raw, \"perUnitUsd\", path),\n maxUsd,\n };\n }\n return malformed(`${path}.model`);\n}\n\nfunction parsePricing(value: unknown, path: string): DiscoveryPricing {\n const raw = record(value, path);\n exactKeys(raw, [\"from\", \"failoverMaxUsd\"], path);\n return {\n from: parseOffer(raw[\"from\"], `${path}.from`),\n failoverMaxUsd: numberField(raw, \"failoverMaxUsd\", path),\n };\n}\n\nfunction parseHealth(value: unknown, path: string): LaneHealth {\n const raw = record(value, path);\n exactKeys(raw, [\"window\", \"uptimePct\", \"latencyP50Ms\", \"requests\"], path);\n if (raw[\"window\"] !== \"30d\") return malformed(`${path}.window`);\n return {\n window: \"30d\",\n uptimePct: boundedNumberField(raw, \"uptimePct\", path, undefined, 100),\n latencyP50Ms: integerField(raw, \"latencyP50Ms\", path),\n requests: integerField(raw, \"requests\", path),\n };\n}\n\nfunction parseLane(value: unknown, path: string): DiscoveryLane {\n const raw = record(value, path);\n exactKeys(raw, [\"pricing\", \"health\"], path);\n const lane: DiscoveryLane = {\n pricing: parseOffer(raw[\"pricing\"], `${path}.pricing`),\n };\n if (raw[\"health\"] !== undefined) {\n lane.health = parseHealth(raw[\"health\"], `${path}.health`);\n }\n return lane;\n}\n\nfunction parseProvider(raw: Record<string, unknown>, path: string): \"AnyAPI\" {\n if (raw[\"provider\"] !== \"AnyAPI\") return malformed(`${path}.provider`);\n return \"AnyAPI\";\n}\n\nfunction parseSchema(value: unknown, path: string): Record<string, unknown> {\n return record(value, path);\n}\n\nfunction parseHighlight(value: unknown, path: string): HighlightField {\n const raw = record(value, path);\n exactKeys(raw, [\"path\", \"type\", \"why\"], path);\n const field: HighlightField = {\n path: stringField(raw, \"path\", path),\n type: stringField(raw, \"type\", path),\n };\n if (raw[\"why\"] !== undefined) field.why = stringField(raw, \"why\", path);\n return field;\n}\n\n/** Map the raw /v1/me body to AccountProfile, dropping internal-only fields. */\nexport function mapProfile(raw: ProfileResponse): AccountProfile {\n const profile: AccountProfile = {\n id: raw.id,\n status: raw.status,\n createdAt: raw.createdAt,\n onboardingComplete: raw.onboardingComplete,\n };\n if (raw.email !== undefined && raw.email !== null) {\n profile.email = raw.email;\n }\n return profile;\n}\n\n/** Map one customer-safe browse/detail entry, rejecting partial or legacy contracts. */\nexport function mapCatalogEntry(raw: CatalogEntryResponse): CatalogEntry {\n rejectInternalKeys(raw, \"api\");\n const value = record(raw, \"api\");\n exactKeys(\n value,\n [\n \"id\",\n \"slug\",\n \"category\",\n \"name\",\n \"description\",\n \"provider\",\n \"pricing\",\n \"lanes\",\n \"heavy\",\n \"tryEligible\",\n \"inputSchema\",\n \"outputSchema\",\n ],\n \"api\",\n );\n const lanesRaw = value[\"lanes\"];\n if (!Array.isArray(lanesRaw) || lanesRaw.length === 0) {\n return malformed(\"api.lanes\");\n }\n const entry: CatalogEntry = {\n id: stringField(value, \"id\", \"api\"),\n slug: stringField(value, \"slug\", \"api\"),\n category: stringField(value, \"category\", \"api\"),\n name: stringField(value, \"name\", \"api\"),\n description: stringField(value, \"description\", \"api\"),\n provider: parseProvider(value, \"api\"),\n pricing: parsePricing(value[\"pricing\"], \"api.pricing\"),\n lanes: lanesRaw.map((lane, index) =>\n parseLane(lane, `api.lanes[${index}]`),\n ),\n heavy: value[\"heavy\"] === undefined ? false : value[\"heavy\"] === true,\n tryEligible: value[\"tryEligible\"] === true,\n };\n if (value[\"heavy\"] !== undefined && typeof value[\"heavy\"] !== \"boolean\") {\n return malformed(\"api.heavy\");\n }\n if (typeof value[\"tryEligible\"] !== \"boolean\")\n return malformed(\"api.tryEligible\");\n if (value[\"inputSchema\"] !== undefined) {\n entry.inputSchema = parseSchema(value[\"inputSchema\"], \"api.inputSchema\");\n }\n if (value[\"outputSchema\"] !== undefined) {\n entry.outputSchema = parseSchema(value[\"outputSchema\"], \"api.outputSchema\");\n }\n if (!offersEqual(entry.pricing.from, entry.lanes[0]!.pricing)) {\n return malformed(\"api.pricing.from\");\n }\n const failoverMaxUsd = Math.max(\n ...entry.lanes.map((lane) => lane.pricing.maxUsd),\n );\n if (entry.pricing.failoverMaxUsd !== failoverMaxUsd) {\n return malformed(\"api.pricing.failoverMaxUsd\");\n }\n return entry;\n}\n\nfunction offersEqual(left: PricingOffer, right: PricingOffer): boolean {\n if (\n left.model !== right.model ||\n left.unit !== right.unit ||\n left.maxUsd !== right.maxUsd\n ) {\n return false;\n }\n if (left.model === \"flat\" || right.model === \"flat\") {\n return left.model === right.model;\n }\n return left.baseUsd === right.baseUsd && left.perUnitUsd === right.perUnitUsd;\n}\n\n/** Detail responses must include both schemas; browse/search intentionally omit them. */\nexport function mapCatalogDetail(raw: CatalogEntryResponse): CatalogEntry {\n const entry = mapCatalogEntry(raw);\n if (entry.inputSchema === undefined) return malformed(\"api.inputSchema\");\n if (entry.outputSchema === undefined) return malformed(\"api.outputSchema\");\n return entry;\n}\n\n/** Map the raw /v1/apis list to CatalogEntry[]. */\nexport function mapCatalogList(raw: CatalogListResponse): CatalogEntry[] {\n const envelope = record(raw, \"catalog\");\n exactKeys(envelope, [\"apis\"], \"catalog\");\n if (!Array.isArray(envelope[\"apis\"])) return malformed(\"catalog.apis\");\n return envelope[\"apis\"].map(mapCatalogEntry);\n}\n\nfunction mapSearchResult(value: unknown, path: string): CatalogSearchResult {\n const raw = record(value, path);\n exactKeys(\n raw,\n [\n \"slug\",\n \"platformId\",\n \"name\",\n \"description\",\n \"category\",\n \"provider\",\n \"pricing\",\n \"relevance\",\n \"highlightFields\",\n ],\n path,\n );\n const result: CatalogSearchResult = {\n slug: stringField(raw, \"slug\", path),\n platformId: stringField(raw, \"platformId\", path),\n name: stringField(raw, \"name\", path),\n description: stringField(raw, \"description\", path),\n category: stringField(raw, \"category\", path),\n provider: parseProvider(raw, path),\n pricing: parsePricing(raw[\"pricing\"], `${path}.pricing`),\n relevance: boundedNumberField(raw, \"relevance\", path, 0, 1),\n };\n if (raw[\"highlightFields\"] !== undefined) {\n if (!Array.isArray(raw[\"highlightFields\"]))\n return malformed(`${path}.highlightFields`);\n result.highlightFields = raw[\"highlightFields\"].map((field, index) =>\n parseHighlight(field, `${path}.highlightFields[${index}]`),\n );\n }\n return result;\n}\n\nexport function mapCatalogSearch(\n raw: CatalogSearchResponse,\n): CatalogSearchResults {\n rejectInternalKeys(raw, \"search\");\n const envelope = record(raw, \"search\");\n exactKeys(envelope, [\"results\", \"total\", \"ranking\"], \"search\");\n if (!Array.isArray(envelope[\"results\"])) return malformed(\"search.results\");\n const ranking = envelope[\"ranking\"];\n if (ranking !== \"semantic\" && ranking !== \"keyword\")\n return malformed(\"search.ranking\");\n return {\n results: envelope[\"results\"].map((row, index) =>\n mapSearchResult(row, `search.results[${index}]`),\n ),\n total: integerField(envelope, \"total\", \"search\"),\n ranking,\n };\n}\n\n/** Raw /agent/signup body. */\ninterface AgentSignupResponse {\n secret: string;\n capUsd: number;\n claimToken: string;\n claimUrl: string;\n}\n\n/**\n * Agent self-signup. POST /agent/signup with NO auth header. Returns a one-time API key\n * plus its spend cap and claim details. See SPEC 2.7.\n */\nexport async function agentSignup(\n options: AgentSignupOptions = {},\n): Promise<AgentSignupResult> {\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (typeof fetchImpl !== \"function\") {\n throw new AnyAPIError(\n \"no fetch implementation available: pass options.fetch or run on a runtime with global fetch\",\n 0,\n );\n }\n const base = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, \"\");\n const body: Record<string, string> = {};\n if (options.sponsorEmail !== undefined) {\n body[\"sponsorEmail\"] = options.sponsorEmail;\n }\n if (options.label !== undefined) {\n body[\"label\"] = options.label;\n }\n\n let response: Response;\n try {\n response = await fetchImpl(`${base}/agent/signup`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(body),\n });\n } catch (err) {\n throw new ConnectionError(\n err instanceof Error ? err.message : \"connection failed\",\n 0,\n );\n }\n\n const requestId = response.headers.get(\"x-request-id\") ?? undefined;\n const text = await response.text().catch(() => \"\");\n if (response.status !== 200) {\n let message = `request failed with status ${response.status}`;\n try {\n const parsed = JSON.parse(text) as { error?: unknown };\n if (typeof parsed.error === \"string\" && parsed.error !== \"\") {\n message = parsed.error;\n }\n } catch {\n // not JSON\n }\n throw errorFromStatus(response.status, message, requestId);\n }\n\n const parsed = JSON.parse(text) as AgentSignupResponse;\n return {\n secret: parsed.secret,\n capUsd: parsed.capUsd,\n claimToken: parsed.claimToken,\n claimUrl: parsed.claimUrl,\n };\n}\n","// Handwritten runtime core: the single network seam plus the public AnyAPI base class.\n// See SPEC.md 2.1, 2.2, 2.8. Named exports only; zero runtime deps (global fetch).\n\nimport {\n AnyAPIError,\n ConnectionError,\n TimeoutError,\n errorFromStatus,\n} from \"./errors.js\";\nimport {\n mapCatalogDetail,\n mapCatalogList,\n mapCatalogSearch,\n mapProfile,\n type CatalogListResponse,\n type CatalogEntryResponse,\n type ProfileResponse,\n} from \"./account.js\";\nimport type {\n AccountProfile,\n CatalogEntry,\n CatalogOptions,\n CatalogSearchResults,\n ClientOptions,\n RequestOptions,\n RunResult,\n SearchOptions,\n} from \"./types.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.getanyapi.com\";\nconst DEFAULT_TIMEOUT_MS = 60_000;\nconst DEFAULT_MAX_RETRIES = 2;\nconst RETRY_BASE_DELAY_MS = 500;\nconst RETRY_MAX_DELAY_MS = 8_000;\n\n/**\n * The single network seam that generated per-SKU methods call. See SPEC 2.2. The generated\n * platform methods hand it a slug + input and cast the RunResult to their concrete data\n * type (found-data) or to a BareRunResult (bare SKUs); the seam itself stays untyped.\n */\nexport interface ClientCore {\n run<T>(\n slug: string,\n input: unknown,\n options?: RequestOptions,\n ): Promise<RunResult<T>>;\n}\n\n/**\n * Read the API key from the environment without crashing in browsers or edge runtimes\n * where `process` is undefined.\n */\nfunction envApiKey(): string | undefined {\n try {\n if (typeof process !== \"undefined\" && process?.env) {\n return process.env[\"ANYAPI_API_KEY\"];\n }\n } catch {\n // `process` may be a restricted proxy in some edge runtimes; ignore.\n }\n return undefined;\n}\n\n/**\n * Sleep for `ms` milliseconds, rejecting early if the signal aborts.\n */\nfunction sleep(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (signal?.aborted) {\n reject(new ConnectionError(\"request aborted\", 0));\n return;\n }\n const timer = setTimeout(() => {\n signal?.removeEventListener(\"abort\", onAbort);\n resolve();\n }, ms);\n const onAbort = () => {\n clearTimeout(timer);\n reject(new ConnectionError(\"request aborted\", 0));\n };\n signal?.addEventListener(\"abort\", onAbort, { once: true });\n });\n}\n\n/**\n * Compute the jittered exponential backoff delay for a given retry attempt. See SPEC 2.8.\n * `attempt` is 0 for the first retry.\n */\nfunction backoffDelay(attempt: number): number {\n const base = Math.min(RETRY_BASE_DELAY_MS * 2 ** attempt, RETRY_MAX_DELAY_MS);\n const factor = 0.5 + Math.random(); // random in [0.5, 1.5)\n return base * factor;\n}\n\n/**\n * Parse a Retry-After header (delta-seconds or HTTP-date) into a delay in ms, capped at\n * maxDelay. Returns undefined when the header is absent or unparseable.\n */\nfunction parseRetryAfter(header: string | null): number | undefined {\n if (header === null) {\n return undefined;\n }\n const trimmed = header.trim();\n if (trimmed === \"\") {\n return undefined;\n }\n const seconds = Number(trimmed);\n if (Number.isFinite(seconds)) {\n const ms = seconds * 1000;\n return Math.min(Math.max(ms, 0), RETRY_MAX_DELAY_MS);\n }\n const dateMs = Date.parse(trimmed);\n if (Number.isFinite(dateMs)) {\n const delta = dateMs - Date.now();\n return Math.min(Math.max(delta, 0), RETRY_MAX_DELAY_MS);\n }\n return undefined;\n}\n\n/**\n * Compose the caller's AbortSignal (if any) with a per-request timeout signal so the\n * request aborts on whichever fires first.\n */\nfunction composeSignal(\n timeoutMs: number,\n callerSignal: AbortSignal | undefined,\n): { signal: AbortSignal; timeoutSignal: AbortSignal } {\n const timeoutSignal = AbortSignal.timeout(timeoutMs);\n if (!callerSignal) {\n return { signal: timeoutSignal, timeoutSignal };\n }\n // AbortSignal.any composes multiple signals; available on Node >=20 / modern runtimes.\n const anyFn = (\n AbortSignal as { any?: (signals: AbortSignal[]) => AbortSignal }\n ).any;\n if (typeof anyFn === \"function\") {\n return { signal: anyFn([timeoutSignal, callerSignal]), timeoutSignal };\n }\n // Fallback: manually bridge both signals into a controller.\n const controller = new AbortController();\n const abort = (reason: unknown) => controller.abort(reason);\n if (callerSignal.aborted) {\n controller.abort(callerSignal.reason);\n } else {\n callerSignal.addEventListener(\"abort\", () => abort(callerSignal.reason), {\n once: true,\n });\n }\n if (timeoutSignal.aborted) {\n controller.abort(timeoutSignal.reason);\n } else {\n timeoutSignal.addEventListener(\"abort\", () => abort(timeoutSignal.reason), {\n once: true,\n });\n }\n return { signal: controller.signal, timeoutSignal };\n}\n\n/**\n * True when an abort reason denotes a timeout (TimeoutError DOMException from\n * AbortSignal.timeout) rather than a caller cancellation.\n */\nfunction isTimeoutSignal(\n timeoutSignal: AbortSignal,\n callerSignal?: AbortSignal,\n): boolean {\n if (!timeoutSignal.aborted) {\n return false;\n }\n // If the caller signal also aborted, prefer the caller's cancellation semantics only\n // when the timeout did not fire; here timeout did fire, so treat as timeout.\n return callerSignal?.aborted !== true || timeoutSignal.aborted;\n}\n\n/**\n * Build the request URL with response-shaping query params from options. See SPEC 2.2.\n */\nfunction buildUrl(\n baseUrl: string,\n slug: string,\n options?: RequestOptions,\n): string {\n const base = baseUrl.replace(/\\/+$/, \"\");\n const url = new URL(`${base}/v1/run/${slug}`);\n if (options?.fields && options.fields.length > 0) {\n url.searchParams.set(\"fields\", options.fields.join(\",\"));\n }\n if (options?.maxItems !== undefined) {\n url.searchParams.set(\"max_items\", String(options.maxItems));\n }\n if (options?.summary === true) {\n url.searchParams.set(\"summary\", \"true\");\n }\n return url.toString();\n}\n\n/**\n * Extract an error message from a non-200 body: the JSON `error` field when present,\n * else a generic status-derived fallback.\n */\nfunction messageFromBody(body: string, status: number): string {\n if (body) {\n try {\n const parsed = JSON.parse(body) as { error?: unknown };\n if (typeof parsed.error === \"string\" && parsed.error !== \"\") {\n return parsed.error;\n }\n } catch {\n // not JSON; fall through\n }\n }\n return `request failed with status ${status}`;\n}\n\n/**\n * The concrete network runtime. `AnyAPI` extends this and generated namespaces attach as\n * lazy getters on subclasses/augmentations. Handwritten; see SPEC 2.1/2.2.\n */\nexport class AnyAPI implements ClientCore {\n private readonly apiKey: string | undefined;\n private readonly baseUrl: string;\n private readonly fetchImpl: typeof fetch;\n private readonly maxRetries: number;\n private readonly timeoutMs: number;\n\n /**\n * The network seam the generated per-platform namespaces target. The base client IS a\n * ClientCore (it implements `run`), so the generated subclass hands `this._core` to each\n * namespace constructor. Kept protected so it is not part of the public surface.\n */\n protected readonly _core: ClientCore = this;\n\n constructor(options: ClientOptions = {}) {\n this.apiKey = options.apiKey ?? envApiKey();\n if (!this.apiKey) {\n throw new AnyAPIError(\"no API key: pass apiKey or set ANYAPI_API_KEY\", 0);\n }\n this.baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;\n const resolvedFetch = options.fetch ?? globalThis.fetch;\n if (typeof resolvedFetch !== \"function\") {\n throw new AnyAPIError(\n \"no fetch implementation available: pass options.fetch or run on a runtime with global fetch\",\n 0,\n );\n }\n this.fetchImpl = resolvedFetch;\n this.maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;\n this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n }\n\n /**\n * Generic run for any SKU by slug (the untyped network seam + the string fallback). The\n * generated `AnyAPI` subclass adds typed literal-slug overloads on top (SPEC 2.1); this\n * base signature is the fallback that returns RunResult<unknown> for an unknown slug.\n */\n run<T = unknown>(\n slug: string,\n input: unknown,\n options?: RequestOptions,\n ): Promise<RunResult<T>> {\n return this.request<RunResult<T>>(\n \"POST\",\n buildUrl(this.baseUrl, slug, options),\n {\n body: JSON.stringify(input ?? {}),\n timeoutMs: options?.timeoutMs ?? this.timeoutMs,\n maxRetries: options?.maxRetries ?? this.maxRetries,\n ...(options?.signal ? { signal: options.signal } : {}),\n },\n );\n }\n\n /** Current wallet balance in USD. GET /v1/balance. See SPEC 2.7. */\n balance(): Promise<{ usd: number }> {\n return this.httpGet<{ usd: number }>(\"/v1/balance\");\n }\n\n /** The authenticated account profile. GET /v1/me. See SPEC 2.7. */\n async me(): Promise<AccountProfile> {\n const raw = await this.httpGet<ProfileResponse>(\"/v1/me\");\n return mapProfile(raw);\n }\n\n /** Browse catalog SKUs, optionally scoped by category. GET /v1/apis. */\n async catalog(options: CatalogOptions = {}): Promise<CatalogEntry[]> {\n const search = new URLSearchParams();\n if (options.category) {\n search.set(\"category\", options.category);\n }\n const qs = search.toString();\n const raw = await this.httpGet<CatalogListResponse>(\n qs ? `/v1/apis?${qs}` : \"/v1/apis\",\n );\n return mapCatalogList(raw);\n }\n\n /** Ranked catalog search. GET /catalog/search. Browse never accepts a query. */\n async search(options: SearchOptions): Promise<CatalogSearchResults> {\n const search = new URLSearchParams({ q: options.query });\n if (options.category) search.set(\"category\", options.category);\n if (options.platform) search.set(\"platform\", options.platform);\n if (options.limit !== undefined) search.set(\"limit\", String(options.limit));\n const raw = await this.httpGet<unknown>(\n `/catalog/search?${search.toString()}`,\n );\n return mapCatalogSearch(raw);\n }\n\n /** Describe a single SKU by slug. GET /v1/apis/{slug}. 404 -> NotFoundError. See SPEC 2.7. */\n async describe(slug: string): Promise<CatalogEntry> {\n const raw = await this.httpGet<CatalogEntryResponse>(\n `/v1/apis/${encodeURIComponent(slug)}`,\n );\n return mapCatalogDetail(raw);\n }\n\n /** Internal GET against the gateway with the same auth/retry/error machinery. */\n private httpGet<T>(path: string): Promise<T> {\n return this.request<T>(\"GET\", `${this.gatewayBaseUrl}${path}`, {\n timeoutMs: this.timeoutMs,\n maxRetries: this.maxRetries,\n });\n }\n\n /**\n * Shared request machinery for run + account GET helpers. Owns auth headers, retry,\n * timeout, abort composition, JSON parse, and status->error mapping. See SPEC 2.2/2.8.\n */\n protected async request<T>(\n method: string,\n url: string,\n opts: {\n body?: string;\n timeoutMs: number;\n maxRetries: number;\n signal?: AbortSignal;\n },\n ): Promise<T> {\n const headers: Record<string, string> = {\n Accept: \"application/json\",\n };\n if (opts.body !== undefined) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n if (this.apiKey) {\n headers[\"Authorization\"] = `Bearer ${this.apiKey}`;\n }\n\n let attempt = 0;\n for (;;) {\n const { signal, timeoutSignal } = composeSignal(\n opts.timeoutMs,\n opts.signal,\n );\n let response: Response;\n try {\n response = await this.fetchImpl(url, {\n method,\n headers,\n ...(opts.body !== undefined ? { body: opts.body } : {}),\n signal,\n });\n } catch (err) {\n // Distinguish timeout from a genuine transport failure.\n if (isTimeoutSignal(timeoutSignal, opts.signal)) {\n throw new TimeoutError(\"request timed out\", 0);\n }\n if (opts.signal?.aborted) {\n throw new ConnectionError(\"request aborted\", 0);\n }\n // Network / DNS / connection reset: retryable.\n const connErr = new ConnectionError(\n err instanceof Error ? err.message : \"connection failed\",\n 0,\n );\n if (attempt < opts.maxRetries) {\n await sleep(backoffDelay(attempt), opts.signal);\n attempt += 1;\n continue;\n }\n throw connErr;\n }\n\n const requestId = response.headers.get(\"x-request-id\") ?? undefined;\n\n if (response.status === 200) {\n const text = await response.text();\n try {\n return JSON.parse(text) as T;\n } catch {\n throw new AnyAPIError(\n \"failed to parse response JSON\",\n 200,\n requestId,\n );\n }\n }\n\n // Non-200: read body for the error message, then map to a typed error.\n const body = await response.text().catch(() => \"\");\n const message = messageFromBody(body, response.status);\n\n if (response.status === 429 && attempt < opts.maxRetries) {\n const retryAfter = parseRetryAfter(response.headers.get(\"retry-after\"));\n const delay = retryAfter ?? backoffDelay(attempt);\n await sleep(delay, opts.signal);\n attempt += 1;\n continue;\n }\n\n throw errorFromStatus(response.status, message, requestId);\n }\n }\n\n /** Internal accessor for GET helpers in account.ts (same base URL / machinery). */\n protected get gatewayBaseUrl(): string {\n return this.baseUrl.replace(/\\/+$/, \"\");\n }\n\n protected get clientMaxRetries(): number {\n return this.maxRetries;\n }\n\n protected get clientTimeoutMs(): number {\n return this.timeoutMs;\n }\n}\n","// Handwritten runtime core: shared types for @getanyapi/sdk.\n// See SPEC.md sections 2.1, 2.3, 2.7. Named exports only; zero runtime deps.\n\n/**\n * The normalized run envelope returned by /v1/run/{slug}.\n */\nexport interface RunResult<T> {\n /** Discriminated on `found`. */\n output: Output<T>;\n /** Always the literal \"AnyAPI\". Upstream providers are never named. */\n provider: \"AnyAPI\";\n /** Amount charged in USD for this call. */\n costUsd: number;\n /** Number of result rows returned (present on per-result SKUs). */\n items?: number;\n /** Optional server nudge when a large result was returned untrimmed. */\n hint?: string;\n}\n\n/**\n * Discriminated union on `found`. When found is false, data is null.\n */\nexport type Output<T> = { found: true; data: T } | { found: false; data: null };\n\n/**\n * The conditional run envelope for an operation whose response has no `{ found, data }`\n * wrapper (SPEC 1.2 erratum). If a future generated operation uses this shape, its data\n * object is returned directly as `output`; there is no not-found branch to discriminate.\n */\nexport interface BareRunResult<T> {\n /** The data payload directly (no found/data wrapper). */\n output: T;\n /** Always the literal \"AnyAPI\". Upstream providers are never named. */\n provider: \"AnyAPI\";\n /** Amount charged in USD for this call. */\n costUsd: number;\n /** Number of result rows returned (present on per-result SKUs). */\n items?: number;\n /** Optional server nudge when a large result was returned untrimmed. */\n hint?: string;\n}\n\n/**\n * Return the data payload when found, or throw ResultNotFoundError when the upstream had no\n * matching entity. Narrows Output<T> to T.\n *\n * Two overloads: a found-data RunResult may be empty (throws when found is false); a bare\n * result always carries its data (returns output directly, never throws).\n */\nexport function unwrap<T>(result: BareRunResult<T>): T;\nexport function unwrap<T>(result: RunResult<T>): T;\nexport function unwrap<T>(result: RunResult<T> | BareRunResult<T>): T {\n const output = (result as { output: unknown }).output;\n // Found-data envelope: an object carrying a boolean `found` discriminator.\n if (\n output !== null &&\n typeof output === \"object\" &&\n \"found\" in (output as Record<string, unknown>)\n ) {\n const env = output as { found: boolean; data: T };\n if (env.found) {\n return env.data;\n }\n // Imported lazily-shaped through the errors module to keep this file dependency-light.\n throw new ResultNotFoundError(\"no matching result was found\", 404);\n }\n // Bare result: output IS the data payload.\n return output as T;\n}\n\n/**\n * Per-request options shaping the response and controlling retry/timeout. See SPEC 2.7.\n */\nexport interface RequestOptions {\n /** Keep only these keys on each result item (dotted paths descend). Shrinks the response, not the cost. */\n fields?: string[];\n /** Cap result rows returned (wire max_items). Does not change cost. On iterators, caps total items yielded. */\n maxItems?: number;\n /** Return only a structural outline instead of full data. Does not change cost. */\n summary?: boolean;\n /** Override the client per-request timeout (ms) for this call. */\n timeoutMs?: number;\n /** AbortSignal to cancel this request. */\n signal?: AbortSignal;\n /** Override the client maxRetries for this call. */\n maxRetries?: number;\n}\n\n/**\n * Client construction options. See SPEC 2.1.\n */\nexport interface ClientOptions {\n /** Your AnyAPI key. Falls back to process.env.ANYAPI_API_KEY when omitted. */\n apiKey?: string;\n /** Gateway base URL. Defaults to \"https://api.getanyapi.com\". */\n baseUrl?: string;\n /** Custom fetch implementation. Defaults to globalThis.fetch. */\n fetch?: typeof fetch;\n /** Max retry attempts for retryable failures (429 + network). Default 2. */\n maxRetries?: number;\n /** Per-request timeout in milliseconds. Default 60000. */\n timeoutMs?: number;\n}\n\n/**\n * Account profile returned by /v1/me (internal-only fields dropped). See SPEC 2.7.\n */\nexport interface AccountProfile {\n id: string;\n email?: string;\n status: string;\n createdAt: string;\n onboardingComplete: boolean;\n}\n\n/** Category-only browse options. Ranked queries belong to search(). See SPEC 2.7. */\nexport interface CatalogOptions {\n category?: string;\n}\n\n/** A fixed per-request discovery offer. */\nexport interface FlatPricingOffer {\n model: \"flat\";\n unit: \"request\";\n maxUsd: number;\n}\n\n/** A capped base-plus-unit discovery offer. */\nexport interface LinearPricingOffer {\n model: \"linear\";\n unit: string;\n baseUsd: number;\n perUnitUsd: number;\n maxUsd: number;\n}\n\nexport type PricingOffer = FlatPricingOffer | LinearPricingOffer;\n\nexport interface DiscoveryPricing {\n from: PricingOffer;\n failoverMaxUsd: number;\n}\n\nexport interface LaneHealth {\n window: \"30d\";\n uptimePct: number;\n latencyP50Ms: number;\n requests: number;\n}\n\nexport interface DiscoveryLane {\n pricing: PricingOffer;\n health?: LaneHealth;\n}\n\n/** One customer-safe API returned by catalog() or describe(). */\nexport interface CatalogEntry {\n id: string;\n slug: string;\n name: string;\n category: string;\n description: string;\n provider: \"AnyAPI\";\n pricing: DiscoveryPricing;\n lanes: DiscoveryLane[];\n heavy: boolean;\n tryEligible: boolean;\n inputSchema?: Record<string, unknown>;\n outputSchema?: Record<string, unknown>;\n}\n\nexport interface SearchOptions {\n query: string;\n category?: string;\n platform?: string;\n limit?: number;\n}\n\nexport interface HighlightField {\n path: string;\n type: string;\n why?: string;\n}\n\nexport interface CatalogSearchResult {\n slug: string;\n platformId: string;\n name: string;\n description: string;\n category: string;\n provider: \"AnyAPI\";\n pricing: DiscoveryPricing;\n relevance: number;\n highlightFields?: HighlightField[];\n}\n\nexport interface CatalogSearchResults {\n results: CatalogSearchResult[];\n total: number;\n ranking: \"semantic\" | \"keyword\";\n}\n\n/**\n * Options for standalone agent self-signup (no key required). See SPEC 2.7.\n */\nexport interface AgentSignupOptions {\n /** Gateway base URL. Defaults to \"https://api.getanyapi.com\". */\n baseUrl?: string;\n /** Custom fetch implementation. Defaults to globalThis.fetch. */\n fetch?: typeof fetch;\n /** Optional human verification channel. */\n sponsorEmail?: string;\n /** Optional key label. */\n label?: string;\n}\n\n/**\n * Result of a successful agent self-signup. See SPEC 2.7.\n */\nexport interface AgentSignupResult {\n /** The API key, returned once. */\n secret: string;\n /** Per-key spend cap in USD. */\n capUsd: number;\n claimToken: string;\n claimUrl: string;\n}\n\nimport { ResultNotFoundError } from \"./errors.js\";\n","// Handwritten runtime core: cursor pagination. See SPEC.md 2.5. The emitter targets\n// `paginate(core, slug, input, itemsField, bare, options)`. Named exports only; zero deps.\n\nimport type { ClientCore } from \"./client.js\";\nimport type { BareRunResult, RequestOptions, RunResult } from \"./types.js\";\n\n/**\n * An async-iterable of flattened items that also exposes whole pages. See SPEC 2.5. `Page`\n * is the page result type: `RunResult<Data>` for found-data SKUs, `BareRunResult<Data>` for\n * bare SKUs (SPEC 1.2 erratum).\n */\nexport interface Paginator<Item, Page> extends AsyncIterable<Item> {\n /** Iterate whole pages (each a run result) instead of flattened items. */\n pages(): AsyncIterable<Page>;\n}\n\n/** Read the page data object from either envelope, or null when a found-data page is empty. */\nfunction pageData(result: { output: unknown }, bare: boolean): Record<string, unknown> | null {\n if (bare) {\n const out = result.output;\n return out !== null && typeof out === \"object\"\n ? (out as Record<string, unknown>)\n : null;\n }\n const env = result.output as { found?: boolean; data?: unknown };\n if (!env || env.found !== true || env.data === null || env.data === undefined) {\n return null;\n }\n return env.data as Record<string, unknown>;\n}\n\n/**\n * Walk a paginated SKU: run page 1, then follow `nextCursor` until it is null/empty.\n * `itemsField` is the array property on the page data holding the page items. `bare`\n * selects the envelope: found-data (`output.data`) or bare (`output` is the data).\n *\n * Walk semantics (SPEC 2.5):\n * - Stop when the page data is null (found:false / null data, or a non-object bare output).\n * - Yield each item from `itemsField`, then follow a non-empty string `nextCursor` by\n * setting `input.cursor` and repeating.\n * - `options.maxItems` caps the TOTAL items yielded across all pages. It is NOT sent as\n * the wire `max_items` shaping param (the iterator manages paging itself).\n * - `.pages()` yields each run result (including the last) and stops on null nextCursor.\n */\nexport function paginate<Item, Page extends RunResult<unknown> | BareRunResult<unknown>>(\n core: ClientCore,\n slug: string,\n input: Record<string, unknown>,\n itemsField: string,\n bare: boolean,\n options?: RequestOptions,\n): Paginator<Item, Page> {\n // The iterator manages max_items itself; never forward it to the wire.\n const wireOptions: RequestOptions | undefined = stripMaxItems(options);\n const maxItems = options?.maxItems;\n\n async function* walkPages(): AsyncGenerator<Page, void, unknown> {\n let cursor: string | undefined;\n for (;;) {\n const pageInput: Record<string, unknown> = { ...input };\n if (cursor !== undefined) {\n pageInput[\"cursor\"] = cursor;\n }\n const result = (await core.run<unknown>(slug, pageInput, wireOptions)) as Page;\n yield result;\n\n const data = pageData(result, bare);\n if (data === null) {\n return;\n }\n const next = data[\"nextCursor\"];\n if (typeof next !== \"string\" || next === \"\") {\n return;\n }\n cursor = next;\n }\n }\n\n async function* walkItems(): AsyncGenerator<Item, void, unknown> {\n let yielded = 0;\n for await (const page of walkPages()) {\n const data = pageData(page, bare);\n if (data === null) {\n return;\n }\n const items = data[itemsField];\n if (!Array.isArray(items)) {\n continue;\n }\n for (const item of items) {\n if (maxItems !== undefined && yielded >= maxItems) {\n return;\n }\n yield item as Item;\n yielded += 1;\n }\n if (maxItems !== undefined && yielded >= maxItems) {\n return;\n }\n }\n }\n\n const paginator: Paginator<Item, Page> = {\n [Symbol.asyncIterator]: () => walkItems(),\n pages: () => ({ [Symbol.asyncIterator]: () => walkPages() }),\n };\n return paginator;\n}\n\n/** Return options without the maxItems key (iterator caps totals client-side). */\nfunction stripMaxItems(options?: RequestOptions): RequestOptions | undefined {\n if (!options) {\n return undefined;\n }\n const { maxItems: _maxItems, ...rest } = options;\n void _maxItems;\n return rest;\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Ahrefs Backlinks (ahrefs.backlinks).\n */\nexport interface AhrefsBacklinksInput {\n /**\n * Match scope: \"exact\" for the given URL only, or \"subdomains\" to include the domain and its subdomains.\n * One of: exact, subdomains.\n * Default: subdomains.\n */\n mode?: \"exact\" | \"subdomains\";\n /**\n * The domain or page URL to find backlinks for (e.g. \"ahrefs.com\").\n */\n url: string;\n}\n\nexport interface AhrefsBacklinksItem {\n /**\n * Anchor text of the link.\n */\n anchor?: string;\n /**\n * Text immediately after the anchor on the referring page.\n */\n contextAfter?: string;\n /**\n * Text immediately before the anchor on the referring page.\n */\n contextBefore?: string;\n /**\n * Ahrefs Domain Rating (0-100) of the linking domain.\n */\n domainRating?: number;\n /**\n * Title of the referring page.\n */\n title?: string;\n /**\n * URL of the referring page that contains the link. Populated whenever the provider has data for the entity.\n */\n urlFrom: string;\n /**\n * Target URL the link points to.\n */\n urlTo?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Ahrefs Backlinks (ahrefs.backlinks).\n */\nexport interface AhrefsBacklinksData {\n /**\n * Referring pages that link to the domain or URL. Populated whenever the provider has data for the entity.\n */\n items: AhrefsBacklinksItem[];\n}\n\n/**\n * Input for Ahrefs Keyword Ideas (ahrefs.keyword_ideas).\n */\nexport interface AhrefsKeywordIdeasInput {\n /**\n * Two-letter country code that scopes the suggestions (e.g. us, gb, de).\n * Default: us.\n */\n country?: string;\n /**\n * The seed keyword to expand into related suggestions (e.g. \"coffee\").\n */\n keyword: string;\n}\n\nexport interface AhrefsKeywordIdeasItem {\n /**\n * Two-letter country code the suggestions are scoped to.\n */\n country?: string;\n /**\n * Related keyword suggestions for the seed term. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n ideas?: AhrefsKeywordIdeasIdea[];\n /**\n * Search engine the suggestions are drawn from (e.g. Google).\n */\n searchEngine?: string;\n /**\n * The seed keyword the suggestions were expanded from. Populated whenever the provider has data for the entity.\n */\n sourceKeyword: string;\n [extra: string]: unknown;\n}\n\nexport interface AhrefsKeywordIdeasIdea {\n /**\n * Relative Ahrefs difficulty bucket (a letter such as E, M, or H), not an exact number.\n */\n difficulty?: string;\n /**\n * The suggested related keyword. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Timestamp the suggestion metrics were last updated.\n */\n updatedAt?: string;\n /**\n * Relative search-volume bucket (a letter grade), not an exact number.\n */\n volume?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Ahrefs Keyword Ideas (ahrefs.keyword_ideas).\n */\nexport interface AhrefsKeywordIdeasData {\n /**\n * Keyword-idea records: the seed keyword and its related keyword suggestions, each with an Ahrefs difficulty and search-volume bucket. Populated whenever the provider has data for the entity.\n */\n items: AhrefsKeywordIdeasItem[];\n}\n\n/**\n * Input for Ahrefs Keyword Difficulty (ahrefs.keywords).\n */\nexport interface AhrefsKeywordsInput {\n /**\n * Two-letter country code that scopes volume and difficulty (e.g. us, gb, de).\n * Default: us.\n */\n country?: string;\n /**\n * The search term to analyze (e.g. \"seo tools\").\n */\n keyword: string;\n}\n\nexport interface AhrefsKeywordsItem {\n /**\n * Two-letter country code the metrics are scoped to.\n */\n country?: string;\n /**\n * Ahrefs Keyword Difficulty, 0-100.\n */\n difficulty?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated number of referring domains a page needs to rank in the top 10 for this keyword.\n */\n referringDomainsToRank?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Ahrefs Keyword Difficulty (ahrefs.keywords).\n */\nexport interface AhrefsKeywordsData {\n /**\n * Keyword-difficulty records: the difficulty score and the referring-domain gap needed to rank in the top 10. Populated whenever the provider has data for the entity.\n */\n items: AhrefsKeywordsItem[];\n}\n\n/**\n * Input for Ahrefs Domain Overview (ahrefs.overview).\n */\nexport interface AhrefsOverviewInput {\n /**\n * Analysis scope: subdomains covers the whole domain, exact matches only the given URL.\n * One of: exact, subdomains.\n * Default: subdomains.\n */\n mode?: \"exact\" | \"subdomains\";\n /**\n * The domain or page URL to analyze (e.g. ahrefs.com).\n */\n url: string;\n}\n\nexport interface AhrefsOverviewItem {\n /**\n * Total number of backlinks pointing to the domain.\n */\n backlinks?: number;\n /**\n * Percentage (0-100) of backlinks that are dofollow.\n */\n dofollowBacklinksPct?: number;\n /**\n * Percentage (0-100) of referring domains that provide a dofollow link.\n */\n dofollowReferringDomainsPct?: number;\n /**\n * The domain or URL the metrics are scoped to. Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Ahrefs Domain Rating, 0-100, measuring backlink-profile strength.\n */\n domainRating?: number;\n /**\n * Analysis scope used: subdomains (whole domain) or exact (the given URL only).\n */\n mode?: string;\n /**\n * Number of unique referring domains linking to the domain.\n */\n referringDomains?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Ahrefs Domain Overview (ahrefs.overview).\n */\nexport interface AhrefsOverviewData {\n /**\n * Domain authority records: the requested domain plus its Domain Rating, total backlinks, and referring-domain counts. Populated whenever the provider has data for the entity.\n */\n items: AhrefsOverviewItem[];\n}\n\n/**\n * Typed methods for the ahrefs platform. Attached to the AnyAPI client as\n * `client.ahrefs`.\n */\nexport class AhrefsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Ahrefs Backlinks\n *\n * Get the referring pages linking to a domain or URL, each with the source page, anchor text, linking domain rating, and page title.\n *\n * Price: $0.0195 per request plus $0 per result (maximum $0.0195).\n *\n * @example\n * const res = await client.ahrefs.backlinks({ url: \"ahrefs.com\", mode: \"exact\" });\n */\n backlinks(\n input: AhrefsBacklinksInput,\n options?: RequestOptions,\n ): Promise<RunResult<AhrefsBacklinksData>> {\n return this._core.run(\"ahrefs.backlinks\", input, options);\n }\n\n /**\n * Ahrefs Keyword Ideas\n *\n * Get related keyword suggestions for any seed term, each with an Ahrefs difficulty and search-volume bucket.\n *\n * Price: $0.0015 per request plus $0.018 per result (maximum $0.0195).\n *\n * @example\n * const res = await client.ahrefs.keywordIdeas({ keyword: \"coffee\", country: \"us\" });\n */\n keywordIdeas(\n input: AhrefsKeywordIdeasInput,\n options?: RequestOptions,\n ): Promise<RunResult<AhrefsKeywordIdeasData>> {\n return this._core.run(\"ahrefs.keyword_ideas\", input, options);\n }\n\n /**\n * Ahrefs Keyword Difficulty\n *\n * Get the Ahrefs keyword-difficulty metrics for any search term: the difficulty score (0-100) and the number of referring domains a page needs to rank in the top 10 - as normalized JSON.\n *\n * Price: $0.0015 per request plus $0.018 per result (maximum $0.0195).\n *\n * @example\n * const res = await client.ahrefs.keywords({ keyword: \"seo tools\", country: \"us\" });\n */\n keywords(\n input: AhrefsKeywordsInput,\n options?: RequestOptions,\n ): Promise<RunResult<AhrefsKeywordsData>> {\n return this._core.run(\"ahrefs.keywords\", input, options);\n }\n\n /**\n * Ahrefs Domain Overview\n *\n * Get an SEO authority overview for any domain or URL: Domain Rating, total backlinks, and referring domains - as normalized JSON.\n *\n * Price: $0.0015 per request plus $0.018 per result (maximum $0.0195).\n *\n * @example\n * const res = await client.ahrefs.overview({ url: \"ahrefs.com\", mode: \"subdomains\" });\n */\n overview(\n input: AhrefsOverviewInput,\n options?: RequestOptions,\n ): Promise<RunResult<AhrefsOverviewData>> {\n return this._core.run(\"ahrefs.overview\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Airbnb Search (airbnb.search).\n */\nexport interface AirbnbSearchInput {\n /**\n * Number of adult guests (e.g. 2).\n * Range: minimum 1.\n */\n adults?: number;\n /**\n * Check-in date in YYYY-MM-DD format (e.g. 2026-07-01).\n * Format: date.\n */\n checkIn?: string;\n /**\n * Check-out date in YYYY-MM-DD format (e.g. 2026-07-05).\n * Format: date.\n */\n checkOut?: string;\n /**\n * Number of child guests (e.g. 1).\n * Range: minimum 0.\n */\n children?: number;\n /**\n * Currency code for prices (e.g. EUR).\n * One of: USD, CZK, AUD, BRL, BGN, CAD, CLP, CNY, COP, CRC, HRK, DKK, EGP, AED, EUR, GHS, HKD, HUF, INR, IDR, ILS, JPY, KZT, KES, MYR, MXN, MAD, TWD, NZD, NOK, PEN, PHP, PLN, GBP, QAR, RON, SAR, SGD, ZAR, KRW, SEK, CHF, THB, TRY, UGX, UAH, UYU, VND.\n * Default: USD.\n */\n currency?:\n | \"USD\"\n | \"CZK\"\n | \"AUD\"\n | \"BRL\"\n | \"BGN\"\n | \"CAD\"\n | \"CLP\"\n | \"CNY\"\n | \"COP\"\n | \"CRC\"\n | \"HRK\"\n | \"DKK\"\n | \"EGP\"\n | \"AED\"\n | \"EUR\"\n | \"GHS\"\n | \"HKD\"\n | \"HUF\"\n | \"INR\"\n | \"IDR\"\n | \"ILS\"\n | \"JPY\"\n | \"KZT\"\n | \"KES\"\n | \"MYR\"\n | \"MXN\"\n | \"MAD\"\n | \"TWD\"\n | \"NZD\"\n | \"NOK\"\n | \"PEN\"\n | \"PHP\"\n | \"PLN\"\n | \"GBP\"\n | \"QAR\"\n | \"RON\"\n | \"SAR\"\n | \"SGD\"\n | \"ZAR\"\n | \"KRW\"\n | \"SEK\"\n | \"CHF\"\n | \"THB\"\n | \"TRY\"\n | \"UGX\"\n | \"UAH\"\n | \"UYU\"\n | \"VND\";\n /**\n * Number of infant guests (e.g. 1).\n * Range: minimum 0.\n */\n infants?: number;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Location to search listings in (e.g. London).\n */\n location: string;\n /**\n * Minimum number of bathrooms (e.g. 2).\n * Range: minimum 0.\n */\n minBathrooms?: number;\n /**\n * Minimum number of bedrooms (e.g. 2).\n * Range: minimum 0.\n */\n minBedrooms?: number;\n /**\n * Minimum number of beds (e.g. 2).\n * Range: minimum 0.\n */\n minBeds?: number;\n /**\n * Number of pets; only pet-friendly listings are returned when set (e.g. 1).\n * Range: minimum 0.\n */\n pets?: number;\n /**\n * Maximum search price in the selected currency (e.g. 300).\n * Range: minimum 0.\n */\n priceMax?: number;\n /**\n * Minimum search price in the selected currency (e.g. 50).\n * Range: minimum 0.\n */\n priceMin?: number;\n}\n\nexport interface AirbnbSearchItem {\n hostName?: string;\n /**\n * Airbnb listing identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Primary listing image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n isAvailable?: boolean;\n isSuperhost?: boolean;\n latitude?: number;\n /**\n * Location subtitle.\n */\n location?: string;\n longitude?: number;\n personCapacity?: number;\n /**\n * Total-stay price label returned by Airbnb (e.g. $3,149 total).\n */\n price?: string;\n propertyType?: string;\n /**\n * Guest satisfaction rating (0-5).\n */\n rating?: number;\n reviewsCount?: number;\n roomType?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Airbnb Search (airbnb.search).\n */\nexport interface AirbnbSearchData {\n /**\n * Listing records: name, total-stay price label, rating, location, host info, and availability details. Populated whenever the provider has data for the entity.\n */\n items: AirbnbSearchItem[];\n}\n\n/**\n * Typed methods for the airbnb platform. Attached to the AnyAPI client as\n * `client.airbnb`.\n */\nexport class AirbnbNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Airbnb Search\n *\n * Search Airbnb listings by location and dates with optional price, beds/bedrooms/bathrooms, and guest-party filters and get results (name, total-stay price label, rating, host) as normalized JSON.\n *\n * Price: $0.00008 per request plus $0.0015 per result (maximum $0.03008).\n *\n * @example\n * const res = await client.airbnb.search({ location: \"San Diego\", adults: 2, limit: 3, minBedrooms: 3 });\n */\n search(\n input: AirbnbSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<AirbnbSearchData>> {\n return this._core.run(\"airbnb.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Alibaba Search (alibaba.search).\n */\nexport interface AlibabaSearchInput {\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Keywords to search for on Alibaba (e.g. \"bluetooth speaker wholesale\").\n */\n query: string;\n}\n\nexport interface AlibabaSearchItem {\n /**\n * Supplier country ISO code, e.g. \"CN\".\n */\n countryCode?: string;\n /**\n * Primary product image URL.\n */\n image?: string;\n /**\n * Minimum order quantity text, e.g. \"Min. order: 1 piece\".\n */\n moq?: string;\n /**\n * Price or price range as displayed, e.g. \"$40.80-45.80\" (Alibaba lists ranges, not a single numeric value).\n */\n priceText?: string;\n /**\n * Discounted promotional price when the listing is on sale; empty otherwise.\n */\n promotionPrice?: string;\n /**\n * Average buyer review score, 0-5; 0 when the listing has no reviews.\n */\n rating?: number;\n /**\n * Number of buyer reviews; 0 when none.\n */\n reviewCount?: number;\n /**\n * Supplier / company name.\n */\n supplierName?: string;\n /**\n * Gold Supplier tenure text, e.g. \"3 yrs\"; empty when not a Gold Supplier.\n */\n supplierYears?: string;\n /**\n * Listing title as shown on Alibaba (may contain the supplier's inline markup). Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical product detail page URL (tracking query params stripped). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Alibaba Search (alibaba.search).\n */\nexport interface AlibabaSearchData {\n /**\n * Matching Alibaba wholesale listings. Populated whenever the provider has data for the entity.\n */\n items: AlibabaSearchItem[];\n}\n\n/**\n * Typed methods for the alibaba platform. Attached to the AnyAPI client as\n * `client.alibaba`.\n */\nexport class AlibabaNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Alibaba Search\n *\n * Search Alibaba by keyword and get up to 25 wholesale listings (title, price range, minimum order, and supplier) in one normalized response.\n *\n * Price: $0 per request plus $0.0012 per result (maximum $0.03).\n *\n * @example\n * const res = await client.alibaba.search({ query: \"bluetooth speaker\", limit: 3 });\n */\n search(\n input: AlibabaSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<AlibabaSearchData>> {\n return this._core.run(\"alibaba.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Amazon Products by ASIN (amazon.asins).\n */\nexport interface AmazonAsinsInput {\n /**\n * Amazon marketplace domain to fetch products from (e.g. amazon.com, amazon.de, amazon.co.uk).\n * Default: amazon.com.\n */\n amazonDomain?: string;\n /**\n * Up to 10 Amazon ASINs to look up (e.g. [\"B0CHX1W1XY\", \"B09G9FPHY6\"]).\n */\n asins: string[];\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n}\n\nexport interface AmazonAsinsItem {\n /**\n * Amazon Standard Identification Number. Populated whenever the provider has data for the entity.\n */\n asin: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n brand?: string;\n condition?: string;\n currency?: string;\n /**\n * Primary product image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n inStock?: boolean;\n /**\n * Buy-box price; 0 when no offer is available.\n */\n price?: number;\n /**\n * Average star rating, 0-5.\n */\n rating?: number;\n reviewsCount?: number;\n sellerName?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Products by ASIN (amazon.asins).\n */\nexport interface AmazonAsinsData {\n /**\n * Product records: ASIN, title, brand, price, ratings, images, and attributes. Populated whenever the provider has data for the entity.\n */\n items: AmazonAsinsItem[];\n}\n\n/**\n * Input for Amazon Bestsellers (amazon.bestsellers).\n */\nexport interface AmazonBestsellersInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Amazon Best Sellers category URL (e.g. https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics).\n */\n url: string;\n}\n\nexport interface AmazonBestsellersItem {\n /**\n * Amazon Standard Identification Number. Populated whenever the provider has data for the entity.\n */\n asin: string;\n /**\n * Best Sellers category name the product ranks in.\n */\n categoryName?: string;\n /**\n * Price currency symbol or code, e.g. \"$\".\n */\n currency?: string;\n /**\n * Primary product thumbnail image URL.\n */\n image?: string;\n /**\n * Number of available offers; 0 when unknown.\n */\n offersCount?: number;\n /**\n * Listed price; 0 when no offer is available.\n */\n price?: number;\n /**\n * Best-seller rank within the category (1 = top).\n */\n rank?: number;\n /**\n * Average star rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Number of customer reviews; 0 when none.\n */\n reviewsCount?: number;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical product detail page URL (tracking query params stripped). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Bestsellers (amazon.bestsellers).\n */\nexport interface AmazonBestsellersData {\n /**\n * Best-seller product records ordered by category rank. Populated whenever the provider has data for the entity.\n */\n items: AmazonBestsellersItem[];\n}\n\n/**\n * Input for Amazon Product (amazon.product).\n */\nexport interface AmazonProductInput {\n /**\n * Full Amazon product URL (e.g. https://www.amazon.com/dp/B0CX23V2ZK).\n */\n url: string;\n}\n\nexport interface AmazonProductItem {\n /**\n * Amazon Standard Identification Number. Populated whenever the provider has data for the entity.\n */\n asin: string;\n /**\n * Manufacturer or brand name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n brand?: string;\n /**\n * Category breadcrumb path, e.g. \"Health & Household > Household Supplies\".\n */\n category?: string;\n /**\n * Item condition, e.g. \"New\"; empty when not reported.\n */\n condition?: string;\n /**\n * Price currency symbol or code, e.g. \"$\".\n */\n currency?: string;\n /**\n * Product description text; empty when the listing has none.\n */\n description?: string;\n /**\n * Bullet-point feature list from the listing.\n */\n features?: string[];\n /**\n * Primary product image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * High-resolution product image URLs.\n */\n images?: string[];\n /**\n * True when the product is purchasable.\n */\n inStock?: boolean;\n /**\n * Current buy-box price as a numeric amount; 0 when the listing has no buyable price (out of stock).\n */\n price?: number;\n /**\n * Average customer star rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Total number of customer reviews; 0 when none.\n */\n reviewsCount?: number;\n /**\n * Name of the seller fulfilling the buy box.\n */\n sellerName?: string;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical product detail page URL (tracking query params stripped). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Product (amazon.product).\n */\nexport interface AmazonProductData {\n /**\n * Product detail records (one per requested product URL). Populated whenever the provider has data for the entity.\n */\n items: AmazonProductItem[];\n}\n\n/**\n * Input for Amazon Reviews (amazon.reviews).\n */\nexport interface AmazonReviewsInput {\n /**\n * Only return reviews on or before this date, inclusive, in YYYY-MM-DD format (e.g. 2026-06-30).\n */\n endDate?: string;\n /**\n * Only return reviews whose text contains one of these keywords (e.g. [\"battery\", \"screen\"]).\n */\n keywords?: string[];\n /**\n * Maximum number of results to return (1-50, default 50). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 50.\n */\n limit?: number;\n /**\n * Amazon product ASIN or full product URL (e.g. B07CMS5Q6P).\n */\n product: string;\n /**\n * Only return reviews whose star rating is in this set (e.g. [\"5\", \"4\"] for 4 and 5 star reviews); omit for all ratings.\n */\n ratings?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n /**\n * Amazon marketplace domain the product ASIN belongs to (e.g. amazon.co.uk).\n * One of: amazon.com, amazon.ca, amazon.de, amazon.fr, amazon.co.uk, amazon.it, amazon.es, amazon.com.au, amazon.co.jp, amazon.com.br, amazon.com.mx, amazon.nl, amazon.ie, amazon.se, amazon.com.tr, amazon.ae, amazon.sg, amazon.sa, amazon.pl, amazon.com.be, amazon.eg, amazon.in.\n * Default: amazon.com.\n */\n region?:\n | \"amazon.com\"\n | \"amazon.ca\"\n | \"amazon.de\"\n | \"amazon.fr\"\n | \"amazon.co.uk\"\n | \"amazon.it\"\n | \"amazon.es\"\n | \"amazon.com.au\"\n | \"amazon.co.jp\"\n | \"amazon.com.br\"\n | \"amazon.com.mx\"\n | \"amazon.nl\"\n | \"amazon.ie\"\n | \"amazon.se\"\n | \"amazon.com.tr\"\n | \"amazon.ae\"\n | \"amazon.sg\"\n | \"amazon.sa\"\n | \"amazon.pl\"\n | \"amazon.com.be\"\n | \"amazon.eg\"\n | \"amazon.in\";\n /**\n * Review sort order: most helpful first or most recent first (e.g. recent).\n * One of: helpful, recent.\n * Default: helpful.\n */\n sort?: \"helpful\" | \"recent\";\n /**\n * Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).\n */\n startDate?: string;\n /**\n * Set true to return only verified-purchase reviews (e.g. true).\n * Default: false.\n */\n verifiedOnly?: boolean;\n}\n\nexport interface AmazonReviewsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. 0 when the review date is not reported in a parseable form.\n */\n createdUtc?: number;\n /**\n * Number of \"helpful\" votes the review received; 0 when none.\n */\n helpfulVotes?: number;\n /**\n * Star rating the reviewer gave, 1-5; 0 when not reported.\n */\n rating: number;\n /**\n * Reviewer display name; empty when withheld.\n */\n reviewer?: string;\n /**\n * Full review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review headline / title; empty when the review has none.\n */\n title?: string;\n /**\n * True when Amazon marks the review a verified purchase.\n */\n verifiedPurchase?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Reviews (amazon.reviews).\n */\nexport interface AmazonReviewsData {\n /**\n * Customer review records. Populated whenever the provider has data for the entity.\n */\n items: AmazonReviewsItem[];\n}\n\n/**\n * Input for Amazon Search (amazon.search).\n */\nexport interface AmazonSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Amazon search or category URL to pull results from (e.g. https://www.amazon.com/s?k=gaming+mouse).\n */\n url: string;\n}\n\nexport interface AmazonSearchItem {\n /**\n * Amazon Standard Identification Number; use it with the Amazon Products by ASIN SKU for full detail. Populated whenever the provider has data for the entity.\n */\n asin: string;\n /**\n * Price currency symbol or code, e.g. \"$\".\n */\n currency?: string;\n /**\n * Primary product thumbnail image URL.\n */\n image?: string;\n /**\n * True when the result is a sponsored placement.\n */\n isSponsored?: boolean;\n /**\n * Pre-discount list price when on sale; 0 when not discounted.\n */\n listPrice?: number;\n /**\n * Number of available offers; 0 when unknown.\n */\n offersCount?: number;\n /**\n * 1-based position of the result on the search page.\n */\n position?: number;\n /**\n * Current price as a numeric amount; 0 when no offer is available.\n */\n price?: number;\n /**\n * Average star rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Number of customer reviews; 0 when none.\n */\n reviewsCount?: number;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Search (amazon.search).\n */\nexport interface AmazonSearchData {\n /**\n * Matching Amazon product records. Populated whenever the provider has data for the entity.\n */\n items: AmazonSearchItem[];\n}\n\n/**\n * Typed methods for the amazon platform. Attached to the AnyAPI client as\n * `client.amazon`.\n */\nexport class AmazonNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Amazon Products by ASIN\n *\n * Look up to 10 Amazon products in one call by ASIN (title, brand, price, ratings, images, and attributes) as normalized JSON.\n *\n * Price: $0 per request plus $0.0035 per asin (maximum $0.035).\n *\n * @example\n * const res = await client.amazon.asins({ asins: [\"B09G9FPHY6\"], limit: 3 });\n */\n asins(\n input: AmazonAsinsInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonAsinsData>> {\n return this._core.run(\"amazon.asins\", input, options);\n }\n\n /**\n * Amazon Bestsellers\n *\n * List the top-ranked products of any Amazon Best Sellers category (rank, title, price, and rating) in one normalized request.\n *\n * Price: $0 per request plus $0.0041 per result (maximum $0.082).\n *\n * @example\n * const res = await client.amazon.bestsellers({ url: \"https://www.amazon.com/gp/bestsellers/electronics\", limit: 3 });\n */\n bestsellers(\n input: AmazonBestsellersInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonBestsellersData>> {\n return this._core.run(\"amazon.bestsellers\", input, options);\n }\n\n /**\n * Amazon Product\n *\n * Fetch full Amazon product details (title, brand, price when in stock, images, ratings, review count, variants, and attributes) from a product URL.\n *\n * Price: $0.001 per request plus $0.0081 per result (maximum $0.0091).\n *\n * @example\n * const res = await client.amazon.product({ url: \"https://www.amazon.com/dp/B00NTCH52W\" });\n */\n product(\n input: AmazonProductInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonProductData>> {\n return this._core.run(\"amazon.product\", input, options);\n }\n\n /**\n * Amazon Reviews\n *\n * Pull up to 50 customer reviews for any Amazon product by ASIN or URL: rating, title, text, date, and verified-purchase badge.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.amazon.reviews({ product: \"B07PXGQC1Q\", limit: 3 });\n */\n reviews(\n input: AmazonReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonReviewsData>> {\n return this._core.run(\"amazon.reviews\", input, options);\n }\n\n /**\n * Amazon Search\n *\n * Search Amazon from any search or category URL and get up to 20 matching products (title, price, rating, and thumbnail) in one normalized response.\n *\n * Price: $0 per request plus $0.0035 per result (maximum $0.07).\n *\n * @example\n * const res = await client.amazon.search({ url: \"https://www.amazon.com/s?k=laptop\", limit: 3 });\n */\n search(\n input: AmazonSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonSearchData>> {\n return this._core.run(\"amazon.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Apollo Organization (apollo.organization).\n */\nexport interface ApolloOrganizationInput {\n /**\n * Organization identifier returned by an Apollo organization endpoint.\n */\n organizationId: string;\n}\n\n/**\n * The `data` payload of Apollo Organization (apollo.organization).\n */\nexport interface ApolloOrganizationData {\n /**\n * Estimated annual revenue in USD.\n * Range: minimum 0.\n */\n annualRevenue?: number;\n /**\n * Human-readable estimated annual revenue.\n */\n annualRevenueDisplay?: string;\n /**\n * Headquarters city.\n */\n city?: string;\n /**\n * Headquarters country.\n */\n country?: string;\n /**\n * Organization summary.\n */\n description?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Estimated employee count.\n * Range: minimum 0.\n */\n employeeCount?: number;\n /**\n * Canonical Facebook page URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Year the organization was founded.\n */\n foundedYear?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Industries associated with the organization.\n */\n industries?: string[];\n /**\n * Primary industry.\n */\n industry?: string;\n /**\n * Keywords associated with the organization.\n */\n keywords?: string[];\n /**\n * Latest disclosed funding stage.\n */\n latestFundingStage?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n latestFundingUtc?: number;\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * NAICS industry codes.\n */\n naicsCodes?: string[];\n /**\n * Organization name.\n */\n name: string;\n /**\n * Headquarters postal code.\n */\n postalCode?: string;\n /**\n * SIC industry codes.\n */\n sicCodes?: string[];\n /**\n * Headquarters state or region.\n */\n state?: string;\n /**\n * Street address.\n */\n streetAddress?: string;\n /**\n * Technologies detected at the organization.\n */\n technologyNames?: string[];\n /**\n * Total disclosed funding in USD.\n * Range: minimum 0.\n */\n totalFunding?: number;\n /**\n * Human-readable total disclosed funding.\n */\n totalFundingDisplay?: string;\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Apollo Organization Enrichment (apollo.organization_enrich).\n */\nexport interface ApolloOrganizationEnrichInput {\n /**\n * Organization domain without a path, such as apollo.io.\n */\n domain: string;\n}\n\n/**\n * The `data` payload of Apollo Organization Enrichment (apollo.organization_enrich).\n */\nexport interface ApolloOrganizationEnrichData {\n /**\n * Estimated annual revenue in USD.\n * Range: minimum 0.\n */\n annualRevenue?: number;\n /**\n * Human-readable estimated annual revenue.\n */\n annualRevenueDisplay?: string;\n /**\n * Headquarters city.\n */\n city?: string;\n /**\n * Headquarters country.\n */\n country?: string;\n /**\n * Organization summary.\n */\n description?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Estimated employee count.\n * Range: minimum 0.\n */\n employeeCount?: number;\n /**\n * Canonical Facebook page URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Year the organization was founded.\n */\n foundedYear?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Industries associated with the organization.\n */\n industries?: string[];\n /**\n * Primary industry.\n */\n industry?: string;\n /**\n * Keywords associated with the organization.\n */\n keywords?: string[];\n /**\n * Latest disclosed funding stage.\n */\n latestFundingStage?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n latestFundingUtc?: number;\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * NAICS industry codes.\n */\n naicsCodes?: string[];\n /**\n * Organization name.\n */\n name: string;\n /**\n * Headquarters postal code.\n */\n postalCode?: string;\n /**\n * SIC industry codes.\n */\n sicCodes?: string[];\n /**\n * Headquarters state or region.\n */\n state?: string;\n /**\n * Street address.\n */\n streetAddress?: string;\n /**\n * Technologies detected at the organization.\n */\n technologyNames?: string[];\n /**\n * Total disclosed funding in USD.\n * Range: minimum 0.\n */\n totalFunding?: number;\n /**\n * Human-readable total disclosed funding.\n */\n totalFundingDisplay?: string;\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Apollo Organization Jobs (apollo.organization_jobs).\n */\nexport interface ApolloOrganizationJobsInput {\n /**\n * Organization identifier returned by an Apollo organization endpoint.\n */\n organizationId: string;\n}\n\nexport interface ApolloOrganizationJobsJob {\n /**\n * Job city.\n */\n city?: string;\n /**\n * Job country.\n */\n country?: string;\n /**\n * Stable job posting identifier.\n */\n id: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n lastSeenUtc?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n postedUtc?: number;\n /**\n * Job state or region.\n */\n state?: string;\n /**\n * Job title.\n */\n title: string;\n /**\n * Canonical job posting URL.\n * Format: uri.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Organization Jobs (apollo.organization_jobs).\n */\nexport interface ApolloOrganizationJobsData {\n /**\n * Current job postings.\n */\n jobs: ApolloOrganizationJobsJob[];\n /**\n * Page size returned.\n * Range: minimum 0.\n */\n limit: number;\n /**\n * One-based page returned.\n * Range: minimum 1.\n */\n page: number;\n /**\n * Total current job postings.\n * Range: minimum 0.\n */\n total: number;\n /**\n * Total available pages.\n * Range: minimum 0.\n */\n totalPages: number;\n}\n\n/**\n * Input for Apollo Organization News (apollo.organization_news).\n */\nexport interface ApolloOrganizationNewsInput {\n /**\n * Optional keywords to match in related articles.\n */\n keywords?: string;\n /**\n * Maximum articles returned on this page.\n * Range: minimum 1, maximum 100.\n * Default: 25.\n */\n limit?: number;\n /**\n * Organization identifiers whose related news should be returned.\n */\n organizationIds: string[];\n /**\n * One-based result page.\n * Range: minimum 1.\n * Default: 1.\n */\n page?: number;\n}\n\nexport interface ApolloOrganizationNewsArticle {\n /**\n * Publishing domain.\n */\n domain?: string;\n /**\n * Detected business event categories.\n */\n eventCategories?: string[];\n /**\n * Stable article identifier.\n */\n id: string;\n /**\n * Organization identifiers associated with the article.\n */\n organizationIds?: string[];\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n publishedUtc?: number;\n /**\n * Article summary or excerpt.\n */\n snippet?: string;\n /**\n * Article title.\n */\n title: string;\n /**\n * Canonical article URL.\n * Format: uri.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Organization News (apollo.organization_news).\n */\nexport interface ApolloOrganizationNewsData {\n /**\n * Related news articles on this page.\n */\n articles: ApolloOrganizationNewsArticle[];\n /**\n * Page size returned.\n * Range: minimum 0.\n */\n limit: number;\n /**\n * One-based page returned.\n * Range: minimum 1.\n */\n page: number;\n /**\n * Total matching articles.\n * Range: minimum 0.\n */\n total: number;\n /**\n * Total available pages.\n * Range: minimum 0.\n */\n totalPages: number;\n}\n\n/**\n * Input for Apollo Bulk Organization Enrichment (apollo.organizations_bulk_enrich).\n */\nexport interface ApolloOrganizationsBulkEnrichInput {\n /**\n * Organization domains to enrich, with at most 10 domains per request.\n */\n domains: string[];\n}\n\nexport interface ApolloOrganizationsBulkEnrichOrganization {\n /**\n * Estimated annual revenue in USD.\n * Range: minimum 0.\n */\n annualRevenue?: number;\n /**\n * Human-readable estimated annual revenue.\n */\n annualRevenueDisplay?: string;\n /**\n * Headquarters city.\n */\n city?: string;\n /**\n * Headquarters country.\n */\n country?: string;\n /**\n * Organization summary.\n */\n description?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Estimated employee count.\n * Range: minimum 0.\n */\n employeeCount?: number;\n /**\n * Canonical Facebook page URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Year the organization was founded.\n */\n foundedYear?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Industries associated with the organization.\n */\n industries?: string[];\n /**\n * Primary industry.\n */\n industry?: string;\n /**\n * Keywords associated with the organization.\n */\n keywords?: string[];\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * NAICS industry codes.\n */\n naicsCodes?: string[];\n /**\n * Organization name.\n */\n name: string;\n /**\n * Headquarters postal code.\n */\n postalCode?: string;\n /**\n * SIC industry codes.\n */\n sicCodes?: string[];\n /**\n * Headquarters state or region.\n */\n state?: string;\n /**\n * Street address.\n */\n streetAddress?: string;\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Bulk Organization Enrichment (apollo.organizations_bulk_enrich).\n */\nexport interface ApolloOrganizationsBulkEnrichData {\n /**\n * Number of uniquely enriched organizations.\n * Range: minimum 0.\n */\n enriched: number;\n /**\n * Number of requested domains without a match.\n * Range: minimum 0.\n */\n missing: number;\n /**\n * Enriched organizations.\n */\n organizations: ApolloOrganizationsBulkEnrichOrganization[];\n /**\n * Number of requested domains.\n * Range: minimum 0.\n */\n requested: number;\n}\n\n/**\n * Input for Apollo Organization Search (apollo.organizations_search).\n */\nexport interface ApolloOrganizationsSearchInput {\n /**\n * Employee-count ranges in Apollo notation, such as 51,200.\n */\n employeeRanges?: string[];\n /**\n * Apollo industry tag identifiers to match.\n */\n industryIds?: string[];\n /**\n * Keywords to match across organization records.\n */\n keywords?: string;\n /**\n * Maximum organizations returned on this page.\n * Range: minimum 1, maximum 100.\n * Default: 25.\n */\n limit?: number;\n /**\n * Headquarters locations to match.\n */\n locations?: string[];\n /**\n * One-based result page.\n * Range: minimum 1, maximum 500.\n * Default: 1.\n */\n page?: number;\n}\n\nexport interface ApolloOrganizationsSearchOrganization {\n /**\n * Estimated annual revenue in USD.\n * Range: minimum 0.\n */\n annualRevenue?: number;\n /**\n * Human-readable estimated annual revenue.\n */\n annualRevenueDisplay?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Canonical Facebook page URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Year the organization was founded.\n */\n foundedYear?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * NAICS industry codes.\n */\n naicsCodes?: string[];\n /**\n * Organization name.\n */\n name: string;\n /**\n * SIC industry codes.\n */\n sicCodes?: string[];\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Organization Search (apollo.organizations_search).\n */\nexport interface ApolloOrganizationsSearchData {\n /**\n * Page size returned by the upstream database.\n * Range: minimum 0.\n */\n limit: number;\n /**\n * Organizations on this page.\n */\n organizations: ApolloOrganizationsSearchOrganization[];\n /**\n * One-based page returned.\n * Range: minimum 1.\n */\n page: number;\n /**\n * Total matching organizations.\n * Range: minimum 0.\n */\n total: number;\n /**\n * Total available pages.\n * Range: minimum 0.\n */\n totalPages: number;\n}\n\n/**\n * Input for Apollo People Search (apollo.people_search).\n */\nexport interface ApolloPeopleSearchInput {\n /**\n * Organization employee-count ranges in Apollo notation, such as 51,200.\n */\n employeeRanges?: string[];\n /**\n * Keywords to match across people records.\n */\n keywords?: string;\n /**\n * Maximum people returned on this page.\n * Range: minimum 1, maximum 100.\n * Default: 25.\n */\n limit?: number;\n /**\n * Organization headquarters locations to match.\n */\n organizationLocations?: string[];\n /**\n * One-based result page.\n * Range: minimum 1, maximum 500.\n * Default: 1.\n */\n page?: number;\n /**\n * Person locations to match.\n */\n personLocations?: string[];\n /**\n * Seniority levels to match.\n */\n seniorities?: (\n | \"owner\"\n | \"founder\"\n | \"c_suite\"\n | \"partner\"\n | \"vp\"\n | \"head\"\n | \"director\"\n | \"manager\"\n | \"senior\"\n | \"entry\"\n )[];\n /**\n * Job titles to match.\n */\n titles?: string[];\n}\n\nexport interface ApolloPeopleSearchPeople {\n /**\n * Person first name.\n */\n firstName: string;\n /**\n * Whether city data is available through enrichment.\n */\n hasCity?: boolean;\n /**\n * Whether country data is available through enrichment.\n */\n hasCountry?: boolean;\n /**\n * Whether direct phone data is available through asynchronous enrichment.\n */\n hasDirectPhone?: boolean;\n /**\n * Whether an email is available through enrichment.\n */\n hasEmail?: boolean;\n /**\n * Whether state or region data is available through enrichment.\n */\n hasState?: boolean;\n /**\n * Stable person identifier.\n */\n id: string;\n /**\n * Obfuscated last-name initial.\n */\n lastNameInitial?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n lastRefreshedUtc?: number;\n /**\n * Availability summary for the current organization.\n */\n organization?: {\n /**\n * Whether organization city data is available.\n */\n hasCity?: boolean;\n /**\n * Whether organization country data is available.\n */\n hasCountry?: boolean;\n /**\n * Whether organization employee-count data is available.\n */\n hasEmployeeCount?: boolean;\n /**\n * Whether industry data is available.\n */\n hasIndustry?: boolean;\n /**\n * Whether an organization phone is available.\n */\n hasPhone?: boolean;\n /**\n * Whether organization postal-code data is available.\n */\n hasPostalCode?: boolean;\n /**\n * Whether organization revenue data is available.\n */\n hasRevenue?: boolean;\n /**\n * Whether organization state data is available.\n */\n hasState?: boolean;\n /**\n * Current organization name.\n */\n name?: string;\n };\n /**\n * Current job title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo People Search (apollo.people_search).\n */\nexport interface ApolloPeopleSearchData {\n /**\n * People on this result page.\n */\n people: ApolloPeopleSearchPeople[];\n /**\n * Total matching people.\n * Range: minimum 0.\n */\n total: number;\n}\n\n/**\n * Input for Apollo Person Enrichment (apollo.person_enrich).\n */\nexport interface ApolloPersonEnrichInput {\n /**\n * Organization domain used with the person's name.\n */\n domain?: string;\n /**\n * Work or personal email used to identify the person.\n * Format: email.\n */\n email?: string;\n /**\n * Person first name, used with lastName and an organization identifier.\n */\n firstName?: string;\n /**\n * Person last name, used with firstName and an organization identifier.\n */\n lastName?: string;\n /**\n * LinkedIn profile URL used to identify the person.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * Organization name used with the person's name.\n */\n organizationName?: string;\n}\n\nexport interface ApolloPersonEnrichEmploymentHistory {\n /**\n * Whether this is a current role.\n */\n current?: boolean;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n endUtc?: number;\n /**\n * Stable employment record identifier.\n */\n id: string;\n /**\n * Organization identifier.\n */\n organizationId?: string;\n /**\n * Organization name.\n */\n organizationName?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n startUtc?: number;\n /**\n * Role title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Person Enrichment (apollo.person_enrich).\n */\nexport interface ApolloPersonEnrichData {\n /**\n * City.\n */\n city?: string;\n /**\n * Country.\n */\n country?: string;\n /**\n * Current departments.\n */\n departments?: string[];\n /**\n * Available work email.\n * Format: email.\n */\n email?: string;\n /**\n * Verification status of the work email.\n */\n emailStatus?: string;\n /**\n * Known employment history.\n */\n employmentHistory?: ApolloPersonEnrichEmploymentHistory[];\n /**\n * Canonical Facebook profile URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Person first name.\n */\n firstName: string;\n /**\n * Current business functions.\n */\n functions?: string[];\n /**\n * Canonical GitHub profile URL.\n * Format: uri.\n */\n githubUrl?: string;\n /**\n * Professional headline.\n */\n headline?: string;\n /**\n * Stable person identifier.\n */\n id: string;\n /**\n * Profile image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Person last name.\n */\n lastName: string;\n /**\n * Canonical LinkedIn profile URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * Full person name.\n */\n name: string;\n /**\n * Current organization summary.\n */\n organization?: {\n /**\n * Headquarters city.\n */\n city?: string;\n /**\n * Headquarters country.\n */\n country?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Estimated employee count.\n * Range: minimum 0.\n */\n employeeCount?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Primary industry.\n */\n industry?: string;\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * Organization name.\n */\n name: string;\n /**\n * Headquarters state or region.\n */\n state?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n };\n /**\n * Available personal email addresses, included automatically.\n */\n personalEmails?: string[];\n /**\n * Postal code.\n */\n postalCode?: string;\n /**\n * Current seniority classification.\n */\n seniority?: string;\n /**\n * State or region.\n */\n state?: string;\n /**\n * Street address.\n */\n streetAddress?: string;\n /**\n * Current subdepartments.\n */\n subdepartments?: string[];\n /**\n * IANA time-zone identifier.\n */\n timeZone?: string;\n /**\n * Current job title.\n */\n title?: string;\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the apollo platform. Attached to the AnyAPI client as\n * `client.apollo`.\n */\nexport class ApolloNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Apollo Organization\n *\n * Get a complete organization profile by ID including company, industry, employee, revenue, funding, location, and technology data.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organization({ organizationId: \"5e66b6381e05b4008c8331b8\" });\n */\n organization(\n input: ApolloOrganizationInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationData>> {\n return this._core.run(\"apollo.organization\", input, options);\n }\n\n /**\n * Apollo Organization Enrichment\n *\n * Enrich an organization by domain with company profile, industry, employee, revenue, funding, location, and technology data.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organizationEnrich({ domain: \"apollo.io\" });\n */\n organizationEnrich(\n input: ApolloOrganizationEnrichInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationEnrichData>> {\n return this._core.run(\"apollo.organization_enrich\", input, options);\n }\n\n /**\n * Apollo Organization Jobs\n *\n * Get current job postings for an organization by ID with title, location, source URL, and timestamps.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organizationJobs({ organizationId: \"5e66b6381e05b4008c8331b8\" });\n */\n organizationJobs(\n input: ApolloOrganizationJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationJobsData>> {\n return this._core.run(\"apollo.organization_jobs\", input, options);\n }\n\n /**\n * Apollo Organization News\n *\n * Search news related to one or more organizations with article details, categories, and pagination totals.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organizationNews({ organizationIds: [\"5e66b6381e05b4008c8331b8\"], limit: 3, page: 1 });\n */\n organizationNews(\n input: ApolloOrganizationNewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationNewsData>> {\n return this._core.run(\"apollo.organization_news\", input, options);\n }\n\n /**\n * Apollo Bulk Organization Enrichment\n *\n * Enrich up to 10 organization domains in one request with normalized company profile, industry, employee, revenue, funding, and location data.\n *\n * Price: $0.06 per request.\n *\n * @example\n * const res = await client.apollo.organizationsBulkEnrich({ domains: [\"apollo.io\", \"openai.com\"] });\n */\n organizationsBulkEnrich(\n input: ApolloOrganizationsBulkEnrichInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationsBulkEnrichData>> {\n return this._core.run(\"apollo.organizations_bulk_enrich\", input, options);\n }\n\n /**\n * Apollo Organization Search\n *\n * Search organizations by location, employee range, industry, and keywords with normalized company records and pagination totals.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organizationsSearch({ keywords: \"Apollo\", limit: 3, page: 1 });\n */\n organizationsSearch(\n input: ApolloOrganizationsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationsSearchData>> {\n return this._core.run(\"apollo.organizations_search\", input, options);\n }\n\n /**\n * Apollo People Search\n *\n * Search people by title, seniority, person or organization location, employee range, and keywords with normalized profile summaries.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.apollo.peopleSearch({ limit: 3, page: 1, titles: [\"CEO\"] });\n */\n peopleSearch(\n input: ApolloPeopleSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloPeopleSearchData>> {\n return this._core.run(\"apollo.people_search\", input, options);\n }\n\n /**\n * Apollo Person Enrichment\n *\n * Enrich a person by email, LinkedIn URL, or name and organization with contact, role, location, and company data.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.personEnrich({ domain: \"apollo.io\", firstName: \"Tim\", lastName: \"Zheng\" });\n */\n personEnrich(\n input: ApolloPersonEnrichInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloPersonEnrichData>> {\n return this._core.run(\"apollo.person_enrich\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for App Store Reviews (appstore.reviews).\n */\nexport interface AppstoreReviewsInput {\n /**\n * Numeric App Store app ID, the digits at the end of the app's store URL without the 'id' prefix (e.g. 310633997).\n */\n appId: string;\n /**\n * Two-letter App Store storefront country code to read reviews from.\n * Default: us.\n */\n country?: string;\n /**\n * Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n}\n\nexport interface AppstoreReviewsItem {\n /**\n * Reviewer nickname. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n author?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the review was posted. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Number of helpful votes on the review.\n */\n helpfulVotes?: number;\n /**\n * Review identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n id?: string;\n /**\n * Star rating, 1 to 5. Populated whenever the provider has data for the entity.\n */\n rating: number;\n /**\n * Review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review title.\n */\n title?: string;\n /**\n * App version the review was left on.\n */\n version?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of App Store Reviews (appstore.reviews).\n */\nexport interface AppstoreReviewsData {\n /**\n * Review records: star rating, review title and text, reviewer nickname, app version, and review date. Populated whenever the provider has data for the entity.\n */\n items: AppstoreReviewsItem[];\n}\n\n/**\n * Typed methods for the appstore platform. Attached to the AnyAPI client as\n * `client.appstore`.\n */\nexport class AppstoreNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * App Store Reviews\n *\n * Get App Store reviews for any iOS app by app ID, in any storefront country: ratings, titles, and review text.\n *\n * Price: $0 per request plus $0.0001 per result (maximum $0.01).\n *\n * @example\n * const res = await client.appstore.reviews({ appId: \"389801252\", country: \"us\", limit: 3 });\n */\n reviews(\n input: AppstoreReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<AppstoreReviewsData>> {\n return this._core.run(\"appstore.reviews\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Bluesky Post (bluesky.post).\n */\nexport interface BlueskyPostInput {\n /**\n * Bluesky post URL, e.g. \"https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l\".\n */\n url: string;\n}\n\n/**\n * The `data` payload of Bluesky Post (bluesky.post).\n */\nexport interface BlueskyPostData {\n /**\n * Handle of the account that authored the post. Populated whenever the provider has data for the entity.\n */\n authorHandle: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Number of replies to the post.\n */\n replies: number;\n /**\n * Number of reposts of the post.\n */\n reposts: number;\n /**\n * The post's text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Bluesky Profile (bluesky.profile).\n */\nexport interface BlueskyProfileInput {\n /**\n * Bluesky handle, e.g. \"bsky.app\" or \"jay.bsky.team\".\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Bluesky Profile (bluesky.profile).\n */\nexport interface BlueskyProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n postsCount: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Bluesky User Posts (bluesky.user_posts).\n */\nexport interface BlueskyUserPostsInput {\n /**\n * Bluesky handle, e.g. \"bsky.app\" or \"jay.bsky.team\".\n */\n handle: string;\n}\n\nexport interface BlueskyUserPostsPost {\n /**\n * Handle of the account that authored the post. Populated whenever the provider has data for the entity.\n */\n authorHandle: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Number of replies to the post.\n */\n replies: number;\n /**\n * Number of reposts of the post.\n */\n reposts: number;\n /**\n * The post's text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Bluesky User Posts (bluesky.user_posts).\n */\nexport interface BlueskyUserPostsData {\n /**\n * The account's recent posts. Populated whenever the provider has data for the entity.\n */\n posts: BlueskyUserPostsPost[];\n}\n\n/**\n * Typed methods for the bluesky platform. Attached to the AnyAPI client as\n * `client.bluesky`.\n */\nexport class BlueskyNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Bluesky Post\n *\n * Get a single Bluesky post by URL - text, author handle, like, reply, and repost counts as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.bluesky.post({ url: \"https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l\" });\n */\n post(\n input: BlueskyPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<BlueskyPostData>> {\n return this._core.run(\"bluesky.post\", input, options);\n }\n\n /**\n * Bluesky Profile\n *\n * Get a Bluesky user's public profile by handle - display name, bio, follower and post counts as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.bluesky.profile({ handle: \"bsky.app\" });\n */\n profile(\n input: BlueskyProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<BlueskyProfileData>> {\n return this._core.run(\"bluesky.profile\", input, options);\n }\n\n /**\n * Bluesky User Posts\n *\n * List a Bluesky account's recent posts (text, author handle, like, reply, and repost counts) by handle as clean JSON, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.bluesky.userPosts({ handle: \"bsky.app\" });\n */\n userPosts(\n input: BlueskyUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<BlueskyUserPostsData>> {\n return this._core.run(\"bluesky.user_posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Booking.com Search (booking.search).\n */\nexport interface BookingSearchInput {\n /**\n * Number of adult guests (e.g. 2).\n * Range: minimum 1.\n */\n adults?: number;\n /**\n * Check-in date in YYYY-MM-DD format (e.g. 2026-07-01). Defaults to tomorrow.\n */\n checkIn?: string;\n /**\n * Check-out date in YYYY-MM-DD format (e.g. 2026-07-05). Defaults to the day after check-in.\n */\n checkOut?: string;\n /**\n * Number of child guests (e.g. 1).\n * Range: minimum 0.\n */\n children?: number;\n /**\n * Currency code for prices (e.g. EUR).\n * Default: USD.\n */\n currency?: string;\n /**\n * Maximum number of hotels to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Destination city to search for stays in (e.g. Paris).\n */\n query: string;\n /**\n * Number of rooms to book (e.g. 1).\n * Range: minimum 1.\n */\n rooms?: number;\n}\n\nexport interface BookingSearchItem {\n address?: string;\n city?: string;\n /**\n * ISO country code.\n */\n country?: string;\n currency?: string;\n /**\n * Booking.com hotel identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n id?: string;\n /**\n * Primary hotel photo URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n latitude?: number;\n /**\n * Neighborhood or area label.\n */\n location?: string;\n longitude?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Total stay price in the requested currency.\n */\n price?: number;\n pricePerNight?: number;\n /**\n * Guest review score (0-10).\n */\n rating?: number;\n /**\n * Guest review score (0-10).\n */\n reviewScore?: number;\n reviewsCount?: number;\n /**\n * Star rating class (1-5).\n */\n stars?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Booking.com Search (booking.search).\n */\nexport interface BookingSearchData {\n /**\n * Hotel result records: name, price, review score, star rating, address, and location. Populated whenever the provider has data for the entity.\n */\n items: BookingSearchItem[];\n}\n\n/**\n * Typed methods for the booking platform. Attached to the AnyAPI client as\n * `client.booking`.\n */\nexport class BookingNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Booking.com Search\n *\n * Search Booking.com stays by destination and dates with optional guest and room occupancy and get hotel results (name, price, review score, location) as normalized JSON.\n *\n * Price: $0.002 per request plus $0.0045 per result (maximum $0.092).\n *\n * @example\n * const res = await client.booking.search({ query: \"New York\", adults: 2, checkIn: \"2026-09-01\", checkOut: \"2026-09-03\", limit: 3 });\n */\n search(\n input: BookingSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<BookingSearchData>> {\n return this._core.run(\"booking.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for CoinMarketCap Listings (coinmarketcap.listings).\n */\nexport interface CoinmarketcapListingsInput {\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n}\n\nexport interface CoinmarketcapListingsItem {\n /**\n * All-time high price in USD.\n */\n ath?: number;\n /**\n * All-time low price in USD.\n */\n atl?: number;\n /**\n * Circulating supply (coin count).\n */\n circulatingSupply?: number;\n /**\n * 24h high price in USD.\n */\n high24h?: number;\n /**\n * CoinMarketCap identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n lastUpdated?: string;\n /**\n * 24h low price in USD.\n */\n low24h?: number;\n /**\n * Market capitalization in USD.\n */\n marketCap?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Latest price in USD.\n */\n price?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n slug?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n symbol: string;\n /**\n * Total supply (coin count).\n */\n totalSupply?: number;\n /**\n * 24h trading volume in USD.\n */\n volume24h?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of CoinMarketCap Listings (coinmarketcap.listings).\n */\nexport interface CoinmarketcapListingsData {\n /**\n * Cryptocurrency listing records: rank, name, symbol, price, market cap, trading volume, and 24h price change. Populated whenever the provider has data for the entity.\n */\n items: CoinmarketcapListingsItem[];\n}\n\n/**\n * Typed methods for the coinmarketcap platform. Attached to the AnyAPI client as\n * `client.coinmarketcap`.\n */\nexport class CoinmarketcapNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * CoinMarketCap Listings\n *\n * Get the current top cryptocurrencies from CoinMarketCap (rank, price, market cap, volume, and 24h change) as normalized JSON.\n *\n * Price: $0 per request plus $0.0018 per result (maximum $0.045).\n *\n * @example\n * const res = await client.coinmarketcap.listings({ limit: 5 });\n */\n listings(\n input: CoinmarketcapListingsInput,\n options?: RequestOptions,\n ): Promise<RunResult<CoinmarketcapListingsData>> {\n return this._core.run(\"coinmarketcap.listings\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Congress Stock Trades (congress.trades).\n */\nexport interface CongressTradesInput {\n /**\n * Latest transaction date to include, inclusive, in YYYY-MM-DD format (e.g. 2026-06-01).\n */\n endDate?: string;\n /**\n * Filter by the congressional member's first name, case-insensitive partial match (e.g. Nancy).\n */\n firstName?: string;\n /**\n * Filter by the congressional member's last name, case-insensitive partial match (e.g. Pelosi).\n */\n lastName?: string;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Earliest transaction date to include, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).\n */\n startDate?: string;\n /**\n * Filter to transactions involving this stock ticker symbol (e.g. NVDA).\n */\n ticker?: string;\n}\n\nexport interface CongressTradesItem {\n /**\n * Disclosed dollar amount range for the transaction.\n */\n amountRange?: string;\n /**\n * Full name of the traded asset. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n assetName?: string;\n /**\n * Congressional chamber, e.g. House or Senate.\n */\n chamber?: string;\n /**\n * Member's first name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n firstName?: string;\n /**\n * Stable disclosure record identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Member's last name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n lastName?: string;\n /**\n * Trade owner code, e.g. SP (spouse), JT (joint), DC (dependent child).\n */\n owner?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Date the transaction was reported/disclosed.\n */\n reportedUtc?: number;\n /**\n * Member's state and district, e.g. PA11.\n */\n stateDistrict?: string;\n /**\n * Stock ticker symbol of the traded asset. Populated whenever the provider has data for the entity.\n */\n symbol: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Date the transaction occurred.\n */\n tradedUtc?: number;\n /**\n * Transaction type code, e.g. P (purchase), S (sale).\n */\n transactionType?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Congress Stock Trades (congress.trades).\n */\nexport interface CongressTradesData {\n /**\n * Disclosure records: member name and chamber, stock ticker, transaction type, amount range, and transaction/report dates. Populated whenever the provider has data for the entity.\n */\n items: CongressTradesItem[];\n}\n\n/**\n * Typed methods for the congress platform. Attached to the AnyAPI client as\n * `client.congress`.\n */\nexport class CongressNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Congress Stock Trades\n *\n * Get US Congress members' financial disclosures and stock trades (member, ticker, transaction type, amount range, and dates), filterable by member, ticker, or date range.\n *\n * Price: $0.001 per request plus $0.0019 per result (maximum $0.0485).\n *\n * @example\n * const res = await client.congress.trades({ limit: 5 });\n */\n trades(\n input: CongressTradesInput,\n options?: RequestOptions,\n ): Promise<RunResult<CongressTradesData>> {\n return this._core.run(\"congress.trades\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for DEX Screener Tokens (dexscreener.tokens).\n */\nexport interface DexscreenerTokensInput {\n /**\n * Blockchain network to list tokens for, optionally scoped to a DEX as chain/dex (e.g. solana or ethereum/uniswap).\n */\n chain: string;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Only include tokens whose 24-hour price change is at most this many percent (e.g. -20 means -20%). Negative values allowed. Omit to skip this filter.\n */\n max24HChg?: number;\n /**\n * Only include tokens with at most this many 24-hour transactions (buys plus sells). Omit to skip this filter.\n * Range: minimum 0.\n */\n max24HTxns?: number;\n /**\n * Only include tokens with at most this much 24-hour trading volume, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n max24HVol?: number;\n /**\n * Only include token pairs at most this old, in hours. Omit to skip this filter.\n * Range: minimum 0.\n */\n maxAge?: number;\n /**\n * Only include tokens with at most this fully diluted valuation (FDV), in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n maxFdv?: number;\n /**\n * Only include tokens with at most this much pool liquidity, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n maxLiq?: number;\n /**\n * Only include tokens with at most this market capitalization, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n maxMarketCap?: number;\n /**\n * Only include tokens with at least this many 24-hour buy transactions. Omit to skip this filter.\n * Range: minimum 0.\n */\n min24HBuys?: number;\n /**\n * Only include tokens whose 24-hour price change is at least this many percent (e.g. 10 means +10%). Negative values allowed. Omit to skip this filter.\n */\n min24HChg?: number;\n /**\n * Only include tokens with at least this many 24-hour sell transactions. Omit to skip this filter.\n * Range: minimum 0.\n */\n min24HSells?: number;\n /**\n * Only include tokens with at least this many 24-hour transactions (buys plus sells). Omit to skip this filter.\n * Range: minimum 0.\n */\n min24HTxns?: number;\n /**\n * Only include tokens with at least this much 24-hour trading volume, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n min24HVol?: number;\n /**\n * Only include token pairs at least this old, in hours. Omit to skip this filter.\n * Range: minimum 0.\n */\n minAge?: number;\n /**\n * Only include tokens with at least this fully diluted valuation (FDV), in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n minFdv?: number;\n /**\n * Only include tokens with at least this much pool liquidity, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n minLiq?: number;\n /**\n * Only include tokens with at least this market capitalization, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n minMarketCap?: number;\n /**\n * Sort direction: desc or asc (e.g. desc).\n */\n order?: string;\n /**\n * Field to sort tokens by (e.g. volume, txns, liquidity, marketCap, trendingScoreH24).\n */\n rankBy?: string;\n /**\n * Stats timeframe: 24h, 6h, 1h, or 5m (e.g. 24h).\n * Default: 24h.\n */\n timeframe?: string;\n}\n\nexport interface DexscreenerTokensItem {\n /**\n * Age of the token pair in hours.\n */\n ageHours?: number;\n /**\n * Token logo image URL.\n */\n image?: string;\n /**\n * Total pool liquidity in USD.\n */\n liquidityUsd?: number;\n /**\n * Number of distinct makers over the selected timeframe.\n */\n makerCount?: number;\n /**\n * Token market capitalization in USD.\n */\n marketCapUsd?: number;\n /**\n * Token full name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * On-chain address of the liquidity pool.\n */\n poolAddress?: string;\n /**\n * Current token price in USD. Populated whenever the provider has data for the entity.\n */\n price: number;\n /**\n * Fractional price change over the past hour.\n */\n priceChange1h?: number;\n /**\n * Fractional price change over the past 24 hours.\n */\n priceChange24h?: number;\n /**\n * Token ticker symbol. Populated whenever the provider has data for the entity.\n */\n symbol: string;\n /**\n * Number of transactions over the selected timeframe.\n */\n transactionCount?: number;\n /**\n * DEX Screener URL for the trading pair. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Trading volume in USD over the selected timeframe.\n */\n volumeUsd?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of DEX Screener Tokens (dexscreener.tokens).\n */\nexport interface DexscreenerTokensData {\n /**\n * Token listing records: token name and symbol, price, liquidity, volume, transaction/maker counts, price change, market cap, and the DEX Screener pair URL. Populated whenever the provider has data for the entity.\n */\n items: DexscreenerTokensItem[];\n}\n\n/**\n * Typed methods for the dexscreener platform. Attached to the AnyAPI client as\n * `client.dexscreener`.\n */\nexport class DexscreenerNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * DEX Screener Tokens\n *\n * List trending tokens on any blockchain from DEX Screener (price, liquidity, volume, transactions, and market cap), sorted how you want, as normalized JSON.\n *\n * Price: $0.02 per request plus $0.0015 per result (maximum $0.0575).\n *\n * @example\n * const res = await client.dexscreener.tokens({ chain: \"solana\", limit: 5, min24HVol: 100000 });\n */\n tokens(\n input: DexscreenerTokensInput,\n options?: RequestOptions,\n ): Promise<RunResult<DexscreenerTokensData>> {\n return this._core.run(\"dexscreener.tokens\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Douyin Profile (douyin.profile).\n */\nexport interface DouyinProfileInput {\n /**\n * Douyin sec_user_id for the public account.\n */\n secUserId: string;\n}\n\n/**\n * The `data` payload of Douyin Profile (douyin.profile).\n */\nexport interface DouyinProfileData {\n /**\n * Profile biography.\n */\n bio?: string;\n /**\n * Follower count.\n */\n followers?: number;\n /**\n * Following count.\n */\n following?: number;\n /**\n * Profile image URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Total likes received.\n */\n likes?: number;\n /**\n * Display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n nickname?: string;\n /**\n * Published post count.\n */\n posts?: number;\n /**\n * Douyin sec_user_id. Populated whenever the provider has data for the entity.\n */\n secUserId: string;\n /**\n * Legacy numeric short ID.\n */\n shortId?: string;\n /**\n * Public Douyin handle when configured. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n uniqueId?: string;\n /**\n * Douyin user identifier. Populated whenever the provider has data for the entity.\n */\n userId: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Douyin Video Search (douyin.search_videos).\n */\nexport interface DouyinSearchVideosInput {\n /**\n * Backtrace token returned by the previous page.\n */\n backtrace?: string;\n /**\n * Pagination cursor from the previous response; omit for the first page.\n * Range: minimum 0.\n */\n cursor?: number;\n /**\n * Duration filter in minutes: any, under 1, 1 to 5, or over 5.\n * One of: 0, 0-1, 1-5, 5-10000.\n * Default: 0.\n */\n duration?: \"0\" | \"0-1\" | \"1-5\" | \"5-10000\";\n /**\n * Publication window in days: 0 any time, 1 day, 7 days, or 180 days.\n * One of: 0, 1, 7, 180.\n * Default: 0.\n */\n publishedWithin?: \"0\" | \"1\" | \"7\" | \"180\";\n /**\n * Keyword to search for.\n */\n query: string;\n /**\n * Search ID returned by the previous page.\n */\n searchId?: string;\n /**\n * Sort order: 0 comprehensive, 1 most liked, or 2 newest.\n * One of: 0, 1, 2.\n * Default: 0.\n */\n sort?: \"0\" | \"1\" | \"2\";\n}\n\nexport interface DouyinSearchVideosVideo {\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Video caption. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n caption?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Video identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Cover image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Save count.\n */\n saves?: number;\n /**\n * Share count.\n */\n shares?: number;\n /**\n * Canonical video URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Play count.\n */\n views?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Douyin Video Search (douyin.search_videos).\n */\nexport interface DouyinSearchVideosData {\n /**\n * Backtrace token required for the next page.\n */\n backtrace: string;\n /**\n * Whether another page is available.\n */\n hasMore: boolean;\n /**\n * Cursor for the next page.\n */\n nextCursor: string;\n /**\n * Search ID required for the next page.\n */\n searchId: string;\n /**\n * Normalized matching videos. Populated whenever the provider has data for the entity.\n */\n videos: DouyinSearchVideosVideo[];\n}\n\n/**\n * Input for Douyin User Posts (douyin.user_posts).\n */\nexport interface DouyinUserPostsInput {\n /**\n * Pagination cursor from the previous response; omit for the first page.\n */\n cursor?: number;\n /**\n * Requested page size. Values up to 20 are recommended.\n * Default: 20.\n */\n limit?: number;\n /**\n * Douyin sec_user_id for the public account.\n */\n secUserId: string;\n /**\n * Post order: 0 for newest or 1 for most popular.\n * Default: 0.\n */\n sort?: number;\n}\n\nexport interface DouyinUserPostsPost {\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author sec_user_id. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorSecUserId?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Post caption. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n caption?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Cover image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Save count.\n */\n saves?: number;\n /**\n * Share count.\n */\n shares?: number;\n /**\n * Canonical post URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Play count.\n */\n views?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Douyin User Posts (douyin.user_posts).\n */\nexport interface DouyinUserPostsData {\n /**\n * Whether another page is available.\n */\n hasMore: boolean;\n /**\n * Cursor for the next page; empty when unavailable.\n */\n nextCursor: string;\n /**\n * Normalized Douyin posts. Populated whenever the provider has data for the entity.\n */\n posts: DouyinUserPostsPost[];\n}\n\n/**\n * Input for Douyin Video (douyin.video).\n */\nexport interface DouyinVideoInput {\n /**\n * Public Douyin video share URL.\n * Format: uri.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Douyin Video (douyin.video).\n */\nexport interface DouyinVideoData {\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author sec_user_id. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorSecUserId?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Video caption. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n caption?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Video duration in milliseconds.\n */\n durationMs?: number;\n /**\n * Video identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Video cover image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Save count.\n */\n saves?: number;\n /**\n * Share count.\n */\n shares?: number;\n /**\n * Canonical Douyin video URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Play count.\n */\n views?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Douyin Video Comments (douyin.video_comments).\n */\nexport interface DouyinVideoCommentsInput {\n /**\n * Pagination cursor from the previous response; omit for the first page.\n * Range: minimum 0.\n */\n cursor?: number;\n /**\n * Douyin aweme_id for the video.\n */\n videoId: string;\n}\n\nexport interface DouyinVideoCommentsComment {\n /**\n * Author profile image URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author sec_user_id. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorSecUserId?: string;\n /**\n * Author public handle.\n */\n authorUniqueId?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Comment identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Approximate location label shown by Douyin.\n */\n ipLabel?: string;\n /**\n * Comment like count.\n */\n likes?: number;\n /**\n * Direct reply count.\n */\n replyCount?: number;\n /**\n * Comment text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n /**\n * Commented video identifier. Populated whenever the provider has data for the entity.\n */\n videoId: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Douyin Video Comments (douyin.video_comments).\n */\nexport interface DouyinVideoCommentsData {\n /**\n * Normalized video comments. Populated whenever the provider has data for the entity.\n */\n comments: DouyinVideoCommentsComment[];\n /**\n * Whether another page is available.\n */\n hasMore: boolean;\n /**\n * Cursor for the next page.\n */\n nextCursor: string;\n /**\n * Total comment count reported by Douyin.\n */\n total: number;\n}\n\n/**\n * Typed methods for the douyin platform. Attached to the AnyAPI client as\n * `client.douyin`.\n */\nexport class DouyinNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Douyin Profile\n *\n * Look up a public Douyin profile by sec_user_id and return normalized profile statistics.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.douyin.profile({ secUserId: \"MS4wLjABAAAAW9FWcqS7RdQAWPd2AA5fL_ilmqsIFUCQ_Iym6Yh9_cUa6ZRqVLjVQSUjlHrfXY1Y\" });\n */\n profile(\n input: DouyinProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinProfileData>> {\n return this._core.run(\"douyin.profile\", input, options);\n }\n\n /**\n * Douyin Video Search\n *\n * Search public Douyin videos by keyword with sorting, time, duration, and content filters.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.douyin.searchVideos({ query: \"机器人\", duration: \"0\", publishedWithin: \"0\", sort: \"0\" });\n */\n searchVideos(\n input: DouyinSearchVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinSearchVideosData>> {\n return this._core.run(\"douyin.search_videos\", input, options);\n }\n\n /**\n * Douyin User Posts\n *\n * List public posts from a Douyin user with normalized engagement data and pagination.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.douyin.userPosts({ secUserId: \"MS4wLjABAAAANXSltcLCzDGmdNFI2Q_QixVTr67NiYzjKOIP5s03CAE\", limit: 20, sort: 0 });\n */\n userPosts(\n input: DouyinUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinUserPostsData>> {\n return this._core.run(\"douyin.user_posts\", input, options);\n }\n\n /**\n * Douyin Video\n *\n * Fetch a public Douyin video by share URL with normalized author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.douyin.video({ url: \"https://www.douyin.com/video/6894784055775071503\" });\n */\n video(\n input: DouyinVideoInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinVideoData>> {\n return this._core.run(\"douyin.video\", input, options);\n }\n\n /**\n * Douyin Video Comments\n *\n * List public comments on a Douyin video with author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.douyin.videoComments({ videoId: \"7448118827402972455\" });\n */\n videoComments(\n input: DouyinVideoCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinVideoCommentsData>> {\n return this._core.run(\"douyin.video_comments\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for eBay Search (ebay.search).\n */\nexport interface EbaySearchInput {\n /**\n * Filter by one or more item conditions; omit for all conditions (e.g. [\"new\", \"open_box\"]).\n */\n condition?: (\"new\" | \"open_box\" | \"refurbished\" | \"used\" | \"for_parts\")[];\n /**\n * Maximum number of results to return (1 to 25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Restrict to a listing format; omit or use all for both (e.g. buy_it_now for fixed-price only).\n * One of: all, auction, buy_it_now.\n */\n listingType?: \"all\" | \"auction\" | \"buy_it_now\";\n /**\n * Optional maximum item price in USD.\n * Range: minimum 0.\n */\n maxPrice?: number;\n /**\n * Optional minimum item price in USD.\n * Range: minimum 0.\n */\n minPrice?: number;\n /**\n * Search keywords, e.g. \"nintendo switch\" or \"vintage levis 501\".\n */\n query: string;\n /**\n * Result sort order; omit for eBay's Best Match (e.g. price_low sorts by lowest price plus shipping first).\n * One of: best_match, ending_soonest, newly_listed, price_low, price_high.\n */\n sort?:\n | \"best_match\"\n | \"ending_soonest\"\n | \"newly_listed\"\n | \"price_low\"\n | \"price_high\";\n}\n\nexport interface EbaySearchItem {\n condition?: string;\n /**\n * Primary listing image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * eBay item identifier. Populated whenever the provider has data for the entity.\n */\n itemId: string;\n /**\n * Auction, FixedPrice, etc.\n */\n listingType?: string;\n /**\n * Listing price.\n */\n price?: number;\n /**\n * Seller positive-feedback percentage.\n */\n sellerFeedbackPercent?: number;\n sellerName?: string;\n /**\n * Shipping cost or free-delivery label.\n */\n shippingCost?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of eBay Search (ebay.search).\n */\nexport interface EbaySearchData {\n /**\n * Listing records: title, price, condition, shipping cost, seller info, image, and item URL. Populated whenever the provider has data for the entity.\n */\n items: EbaySearchItem[];\n}\n\n/**\n * Input for eBay Sold Listings (ebay.sold_listings).\n */\nexport interface EbaySoldListingsInput {\n /**\n * Item condition filter (e.g. used).\n * One of: any, new, used.\n * Default: any.\n */\n condition?: \"any\" | \"new\" | \"used\";\n /**\n * How many days back to include sold listings, 1-90 (e.g. 30).\n * Default: 30.\n */\n daysBack?: number;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Optional maximum sold price in the site currency (e.g. 500).\n * Range: minimum 0.\n */\n maxPrice?: number;\n /**\n * Optional minimum sold price in the site currency (e.g. 200).\n * Range: minimum 0.\n */\n minPrice?: number;\n /**\n * Search keyword for sold items (e.g. iphone 13 pro).\n */\n query: string;\n /**\n * eBay country site to search (e.g. ebay.co.uk).\n * One of: ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au.\n * Default: ebay.com.\n */\n site?:\n | \"ebay.com\"\n | \"ebay.co.uk\"\n | \"ebay.de\"\n | \"ebay.fr\"\n | \"ebay.it\"\n | \"ebay.es\"\n | \"ebay.ca\"\n | \"ebay.com.au\";\n /**\n * Result sort order; omit for eBay's default ended-recently (e.g. price_high sorts by highest total price first).\n * One of: ended_recently, newly_listed, price_low, price_high, distance_nearest.\n */\n sort?:\n | \"ended_recently\"\n | \"newly_listed\"\n | \"price_low\"\n | \"price_high\"\n | \"distance_nearest\";\n}\n\nexport interface EbaySoldListingsItem {\n condition?: string;\n /**\n * Sale date (ISO 8601).\n */\n endedAt?: string;\n /**\n * Primary listing image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * eBay item identifier. Populated whenever the provider has data for the entity.\n */\n itemId: string;\n listingType?: string;\n sellerUsername?: string;\n soldCurrency?: string;\n /**\n * Final sold price.\n */\n soldPrice?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Sold price plus shipping.\n */\n totalPrice?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of eBay Sold Listings (ebay.sold_listings).\n */\nexport interface EbaySoldListingsData {\n /**\n * Sold listing records: title, sold price, sale date, condition, shipping, and item URL. Populated whenever the provider has data for the entity.\n */\n items: EbaySoldListingsItem[];\n}\n\n/**\n * Typed methods for the ebay platform. Attached to the AnyAPI client as\n * `client.ebay`.\n */\nexport class EbayNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * eBay Search\n *\n * Search eBay active listings by keyword with optional price-range, item-condition, listing-type, and sort filters and get title, price, condition, shipping, and seller in one normalized response.\n *\n * Price: $0.001 per request plus $0.00234 per result (maximum $0.0595).\n *\n * @example\n * const res = await client.ebay.search({ query: \"nintendo switch\", limit: 3, sort: \"price_low\" });\n */\n search(\n input: EbaySearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<EbaySearchData>> {\n return this._core.run(\"ebay.search\", input, options);\n }\n\n /**\n * eBay Sold Listings\n *\n * Retrieve recently sold eBay listings for any keyword with optional price-range and sort filters (sold price, sale date, condition, item details); ideal for pricing research.\n *\n * Price: $0.00005 per request plus $0.004 per result (maximum $0.10005).\n *\n * @example\n * const res = await client.ebay.soldListings({ query: \"nintendo switch\", limit: 3, sort: \"price_high\" });\n */\n soldListings(\n input: EbaySoldListingsInput,\n options?: RequestOptions,\n ): Promise<RunResult<EbaySoldListingsData>> {\n return this._core.run(\"ebay.sold_listings\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Email Finder (email.find).\n */\nexport interface EmailFindInput {\n /**\n * The person to find an email for, e.g. {\"firstName\": \"Jane\", \"surname\": \"Doe\", \"domain\": \"acme.com\"} (domain also accepts a company name).\n */\n person?: {\n /**\n * Company domain (e.g. acme.com) or company name (e.g. Acme Inc), resolved automatically.\n */\n domain: string;\n /**\n * The person's first name (e.g. Jane).\n */\n firstName: string;\n /**\n * The person's last name (e.g. Doe).\n */\n surname: string;\n };\n}\n\nexport interface EmailFindItem {\n domain?: string;\n /**\n * Discovered email address, or empty when none was found. Populated whenever the provider has data for the entity.\n */\n email: string;\n firstName?: string;\n isDeliverable?: boolean;\n lastName?: string;\n /**\n * Lookup status (e.g. found, not_found). Populated whenever the provider has data for the entity.\n */\n status: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Email Finder (email.find).\n */\nexport interface EmailFindData {\n /**\n * Email lookup records: the discovered email address, verification status, and the matched person and company details. Populated whenever the provider has data for the entity.\n */\n items: EmailFindItem[];\n}\n\n/**\n * Input for Email Verifier (email.verify).\n */\nexport interface EmailVerifyInput {\n /**\n * The email address to verify (e.g. jane.doe@acme.com).\n */\n email: string;\n}\n\nexport interface EmailVerifyItem {\n /**\n * Domain accepts all addresses.\n */\n catchAll?: boolean;\n disposable?: boolean;\n domain?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n email: string;\n /**\n * Free email provider.\n */\n free?: boolean;\n reason?: string;\n /**\n * Role-based address (e.g. info@).\n */\n role?: boolean;\n /**\n * Confidence score (0-100).\n */\n score?: number;\n /**\n * Deliverability verdict (e.g. valid, risky, invalid). Populated whenever the provider has data for the entity.\n */\n status: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Email Verifier (email.verify).\n */\nexport interface EmailVerifyData {\n /**\n * Verification records: the email address with its deliverability verdict and syntax, domain, and mailbox check details. Populated whenever the provider has data for the entity.\n */\n items: EmailVerifyItem[];\n}\n\n/**\n * Typed methods for the email platform. Attached to the AnyAPI client as\n * `client.email`.\n */\nexport class EmailNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Email Finder\n *\n * Find a person's work email address from their name and company domain.\n *\n * Price: $0.005 per request plus $0.008 per result (maximum $0.013).\n *\n * @example\n * const res = await client.email.find({ person: { domain: \"stripe.com\", firstName: \"Patrick\", surname: \"Collison\" } });\n */\n find(\n input: EmailFindInput,\n options?: RequestOptions,\n ): Promise<RunResult<EmailFindData>> {\n return this._core.run(\"email.find\", input, options);\n }\n\n /**\n * Email Verifier\n *\n * Verify any email address for deliverability: syntax, domain, and mailbox checks in one normalized response.\n *\n * Price: $0 per request plus $0.0008 per result (maximum $0.0008).\n *\n * @example\n * const res = await client.email.verify({ email: \"patrick@stripe.com\" });\n */\n verify(\n input: EmailVerifyInput,\n options?: RequestOptions,\n ): Promise<RunResult<EmailVerifyData>> {\n return this._core.run(\"email.verify\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Facebook Ad Details (facebook.ad_details).\n */\nexport interface FacebookAdDetailsInput {\n /**\n * Meta Ad Library ad ID (e.g. \"702369045530963\"). Provide either id or url.\n */\n id?: string;\n /**\n * Meta Ad Library ad URL (e.g. \"https://www.facebook.com/ads/library?id=1185617869915074\"). Provide either id or url.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Ad Details (facebook.ad_details).\n */\nexport interface FacebookAdDetailsData {\n /**\n * Whether the ad is currently running.\n */\n active?: boolean;\n /**\n * Ad Library archive ID (stable identity). Populated whenever the provider has data for the entity.\n */\n adArchiveId: string;\n /**\n * Call-to-action label. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n ctaText?: string;\n /**\n * Spend currency, may be empty.\n */\n currency?: string;\n /**\n * Ad creative format. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n displayFormat?: string;\n /**\n * Run end, epoch seconds.\n */\n endDate?: number;\n /**\n * Creative destination URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n linkUrl?: string;\n /**\n * Advertiser page ID (stable identity). Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Advertiser page name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n pageName?: string;\n /**\n * Publisher platforms the ad runs on. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n platforms?: string[];\n /**\n * Run start, epoch seconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n startDate?: number;\n /**\n * Ad body text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n /**\n * Creative title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Ad Transcript (facebook.ad_transcript).\n */\nexport interface FacebookAdTranscriptInput {\n /**\n * Meta Ad Library ad ID (e.g. \"1020359190509080\"). Provide either id or url.\n */\n id?: string;\n /**\n * Meta Ad Library ad URL (e.g. \"https://www.facebook.com/ads/library?id=1020359190509080\"). Provide either id or url.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Ad Transcript (facebook.ad_transcript).\n */\nexport interface FacebookAdTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adId: string;\n /**\n * Transcribed ad audio text.\n */\n transcript: string;\n transcriptAvailable: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Ad Search (facebook.ads_search).\n */\nexport interface FacebookAdsSearchInput {\n /**\n * Restrict to all ads (default) or only political and issue ads.\n * One of: all, political_and_issue_ads.\n */\n adType?: \"all\" | \"political_and_issue_ads\";\n /**\n * Two-letter country code to scope results. Omit for all countries.\n */\n country?: string;\n /**\n * Opaque pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Filter to ads with impressions on or before this date, in YYYY-MM-DD format.\n */\n endDate?: string;\n /**\n * Creative media type filter.\n * One of: ALL, IMAGE, VIDEO, MEME, IMAGE_AND_MEME, NONE.\n */\n mediaType?: \"ALL\" | \"IMAGE\" | \"VIDEO\" | \"MEME\" | \"IMAGE_AND_MEME\" | \"NONE\";\n /**\n * Keyword to search the Meta Ad Library for (e.g. \"protein powder\").\n */\n query: string;\n /**\n * Match mode for the query: loose keyword match (keyword_unordered, the default) or exact phrase (keyword_exact_phrase).\n * One of: keyword_unordered, keyword_exact_phrase.\n */\n searchType?: \"keyword_unordered\" | \"keyword_exact_phrase\";\n /**\n * Sort order: impressions (highest first, the default) or recent (most recent).\n * One of: impressions, recent.\n */\n sortBy?: \"impressions\" | \"recent\";\n /**\n * Filter to ads with impressions on or after this date, in YYYY-MM-DD format.\n */\n startDate?: string;\n /**\n * Ad status filter.\n * One of: ALL, ACTIVE, INACTIVE.\n * Default: ACTIVE.\n */\n status?: \"ALL\" | \"ACTIVE\" | \"INACTIVE\";\n}\n\nexport interface FacebookAdsSearchAd {\n active: boolean;\n /**\n * Number of ads in this campaign (collation count).\n */\n adCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n ctaText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n ctaType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayFormat: string;\n /**\n * Epoch seconds.\n */\n endDate: number;\n /**\n * Ad Library archive ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n linkUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n platforms: string[];\n /**\n * Epoch seconds. Populated whenever the provider has data for the entity.\n */\n startDate: number;\n /**\n * Ad body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Ad Search (facebook.ads_search).\n */\nexport interface FacebookAdsSearchData {\n ads: FacebookAdsSearchAd[];\n nextCursor: string;\n totalResults: number;\n}\n\n/**\n * Input for Facebook Comment Replies (facebook.comment_replies).\n */\nexport interface FacebookCommentRepliesInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * The expansion_token of the comment, from the post comments endpoint.\n */\n expansionToken: string;\n /**\n * The feedback_id of the comment (not the comment id).\n */\n feedbackId: string;\n}\n\nexport interface FacebookCommentRepliesReplie {\n /**\n * Identifier of the reply author. Populated whenever the provider has data for the entity.\n */\n authorId: string;\n /**\n * Display name of the reply author. Populated whenever the provider has data for the entity.\n */\n authorName: string;\n /**\n * URL of the author's profile picture.\n */\n authorProfilePicture: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Token used to expand nested replies, when present.\n */\n expansionToken?: string;\n /**\n * Facebook feedback identifier for the reply. Populated whenever the provider has data for the entity.\n */\n feedbackId: string;\n /**\n * Reply identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of reactions on the reply.\n */\n reactionCount: number;\n /**\n * Number of replies nested under this reply.\n */\n replyCount: number;\n /**\n * Reply text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Comment Replies (facebook.comment_replies).\n */\nexport interface FacebookCommentRepliesData {\n /**\n * True when more replies are available beyond this page.\n */\n hasNextPage: boolean;\n /**\n * Cursor for the next page of replies; empty when there are no more.\n */\n nextCursor: string;\n /**\n * Replies to the comment. Populated whenever the provider has data for the entity.\n */\n replies: FacebookCommentRepliesReplie[];\n}\n\n/**\n * Input for Facebook Company Ads (facebook.company_ads).\n */\nexport interface FacebookCompanyAdsInput {\n /**\n * Company name to search (e.g. \"nike\"). Provide either pageId or companyName.\n */\n companyName?: string;\n /**\n * Two-letter country code to scope results. Defaults to all countries.\n */\n country?: string;\n /**\n * Opaque pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Filter to ads with impressions on or before this date, in YYYY-MM-DD format.\n */\n endDate?: string;\n /**\n * Two-letter language code to filter ads (e.g. \"EN\", \"ES\", \"FR\").\n */\n language?: string;\n /**\n * Creative media type filter.\n * One of: ALL, IMAGE, VIDEO, MEME, IMAGE_AND_MEME, NONE.\n */\n mediaType?: \"ALL\" | \"IMAGE\" | \"VIDEO\" | \"MEME\" | \"IMAGE_AND_MEME\" | \"NONE\";\n /**\n * Company's Ad Library page ID. Provide either pageId or companyName.\n */\n pageId?: string;\n /**\n * Sort order: impressions (highest first, the default) or recent (most recent).\n * One of: impressions, recent.\n */\n sortBy?: \"impressions\" | \"recent\";\n /**\n * Filter to ads with impressions on or after this date, in YYYY-MM-DD format.\n */\n startDate?: string;\n /**\n * Ad status filter. Defaults to ACTIVE.\n * One of: ALL, ACTIVE, INACTIVE.\n */\n status?: \"ALL\" | \"ACTIVE\" | \"INACTIVE\";\n}\n\nexport interface FacebookCompanyAdsAd {\n active: boolean;\n /**\n * Number of ads in this campaign (collation count).\n */\n adCount: number;\n currency: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayFormat: string;\n /**\n * Epoch seconds.\n */\n endDate: number;\n /**\n * Ad Library archive ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n platforms: string[];\n /**\n * Epoch seconds. Populated whenever the provider has data for the entity.\n */\n startDate: number;\n /**\n * Ad body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Company Ads (facebook.company_ads).\n */\nexport interface FacebookCompanyAdsData {\n ads: FacebookCompanyAdsAd[];\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Event Details (facebook.event_details).\n */\nexport interface FacebookEventDetailsInput {\n /**\n * The event's numeric identifier.\n */\n id?: string;\n /**\n * The event's Facebook URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Event Details (facebook.event_details).\n */\nexport interface FacebookEventDetailsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n city: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverPhotoUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n dayTimeSentence: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n endTime: string;\n goingCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n interestedCount: number;\n isCanceled: boolean;\n isOnline: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n locationName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n startTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Events (facebook.events).\n */\nexport interface FacebookEventsInput {\n /**\n * Pagination cursor from a previous response to fetch the next page.\n */\n cursor?: string;\n /**\n * Timeframe filter for the returned events. Defaults to all time.\n * One of: today, this_week, next_week.\n */\n time?: \"today\" | \"this_week\" | \"next_week\";\n /**\n * URL of a city's or place's Facebook Events page (e.g. https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547).\n */\n url: string;\n}\n\nexport interface FacebookEventsEvent {\n /**\n * Populated whenever the provider has data for the entity.\n */\n dayTimeSentence: string;\n goingCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n interestedCount: number;\n isOnline: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n placeName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n startTimestamp: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Events (facebook.events).\n */\nexport interface FacebookEventsData {\n events: FacebookEventsEvent[];\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Events Search (facebook.events_search).\n */\nexport interface FacebookEventsSearchInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * The query to search events for.\n */\n query: string;\n}\n\nexport interface FacebookEventsSearchEvent {\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverImage: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n dayTimeSentence: string;\n goingCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n interestedCount: number;\n isOnline: boolean;\n isPast: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n placeName: string;\n priceRangeText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n startTimestamp: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Events Search (facebook.events_search).\n */\nexport interface FacebookEventsSearchData {\n events: FacebookEventsSearchEvent[];\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Followers (facebook.followers).\n */\nexport interface FacebookFollowersInput {\n /**\n * Which relation to fetch: 'follower' or 'following' (e.g. follower).\n * Default: follower.\n */\n followType?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Facebook page or profile URL to list follows for (e.g. https://www.facebook.com/nasa).\n */\n url: string;\n}\n\nexport interface FacebookFollowersItem {\n /**\n * The account's numeric Facebook ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the account's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The account's public display name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Canonical URL of the account's Facebook profile, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Followers (facebook.followers).\n */\nexport interface FacebookFollowersData {\n /**\n * Follower or following records for the target page/profile. Populated whenever the provider has data for the entity.\n */\n items: FacebookFollowersItem[];\n}\n\n/**\n * Input for Facebook Group Posts (facebook.group_posts).\n */\nexport interface FacebookGroupPostsInput {\n /**\n * Pagination cursor from a previous response to fetch the next page.\n */\n cursor?: string;\n /**\n * Ordering for the returned posts (e.g. TOP_POSTS).\n * One of: TOP_POSTS, RECENT_ACTIVITY, CHRONOLOGICAL, CHRONOLOGICAL_LISTINGS.\n */\n sort?:\n | \"TOP_POSTS\"\n | \"RECENT_ACTIVITY\"\n | \"CHRONOLOGICAL\"\n | \"CHRONOLOGICAL_LISTINGS\";\n /**\n * The URL of a public Facebook group to fetch posts from (e.g. https://www.facebook.com/groups/1270525996445602/).\n */\n url: string;\n}\n\nexport interface FacebookGroupPostsPost {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorName: string;\n commentCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n permalink: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishTime: number;\n reactionCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Group Posts (facebook.group_posts).\n */\nexport interface FacebookGroupPostsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: FacebookGroupPostsPost[];\n}\n\n/**\n * Input for Facebook Marketplace (facebook.marketplace).\n */\nexport interface FacebookMarketplaceInput {\n /**\n * Filter by availability: available (default), sold, or all (e.g. sold).\n * One of: available, sold, all.\n */\n availability?: \"available\" | \"sold\" | \"all\";\n /**\n * Only return listings in this condition (e.g. used_good).\n * One of: new, used_like_new, used_good, used_fair.\n */\n condition?: \"new\" | \"used_like_new\" | \"used_good\" | \"used_fair\";\n /**\n * Pagination cursor from a previous response to fetch the next page.\n */\n cursor?: string;\n /**\n * Only return listings posted within this window (e.g. last_7_days).\n * One of: all, last_24_hours, last_7_days, last_30_days.\n */\n dateListed?: \"all\" | \"last_24_hours\" | \"last_7_days\" | \"last_30_days\";\n /**\n * Only return listings offering this delivery method (e.g. shipping).\n * One of: all, local_pickup, shipping.\n */\n deliveryMethod?: \"all\" | \"local_pickup\" | \"shipping\";\n /**\n * Latitude of the search location (e.g. '30.2677').\n */\n lat: string;\n /**\n * Longitude of the search location (e.g. '-97.7475').\n */\n lng: string;\n /**\n * Maximum listing price in whole currency units, e.g. 500 for $500. Facebook may mix in a few suggested listings outside the range.\n * Range: minimum 0.\n */\n priceMax?: number;\n /**\n * Minimum listing price in whole currency units, e.g. 100 for $100. Facebook may mix in a few suggested listings outside the range.\n * Range: minimum 0.\n */\n priceMin?: number;\n /**\n * Search keyword for Marketplace listings (e.g. 'bike').\n */\n query: string;\n /**\n * Sort order for the returned listings (e.g. price_ascend).\n * One of: suggested, distance_ascend, creation_time_descend, price_ascend, price_descend.\n */\n sort?:\n | \"suggested\"\n | \"distance_ascend\"\n | \"creation_time_descend\"\n | \"price_ascend\"\n | \"price_descend\";\n}\n\nexport interface FacebookMarketplaceListing {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isSold: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n locationName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n photoUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n priceAmount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n priceFormatted: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Marketplace (facebook.marketplace).\n */\nexport interface FacebookMarketplaceData {\n hasNextPage: boolean;\n listings: FacebookMarketplaceListing[];\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Marketplace Item (facebook.marketplace_item).\n */\nexport interface FacebookMarketplaceItemInput {\n /**\n * Facebook Marketplace item ID.\n */\n id?: string;\n /**\n * Facebook Marketplace item URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Marketplace Item (facebook.marketplace_item).\n */\nexport interface FacebookMarketplaceItemData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n categoryId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n creationTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n currency: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isLive: boolean;\n isSold: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n locationText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n priceAmount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n priceFormatted: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Marketplace Location Search (facebook.marketplace_location_search).\n */\nexport interface FacebookMarketplaceLocationSearchInput {\n /**\n * Location search query (e.g. a city name).\n */\n query: string;\n}\n\nexport interface FacebookMarketplaceLocationSearchLocation {\n /**\n * Populated whenever the provider has data for the entity.\n */\n city: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n latitude: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n longitude: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n postalCode: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n subtitle: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Marketplace Location Search (facebook.marketplace_location_search).\n */\nexport interface FacebookMarketplaceLocationSearchData {\n locations: FacebookMarketplaceLocationSearchLocation[];\n}\n\n/**\n * Input for Facebook Page Contact Info (facebook.page_contact).\n */\nexport interface FacebookPageContactInput {\n /**\n * Locale code for the returned data (e.g. en-US).\n * Default: en-US.\n */\n language?: string;\n /**\n * Facebook Page URL or page ID to look up (e.g. https://www.facebook.com/nasa).\n */\n page: string;\n}\n\nexport interface FacebookPageContactItem {\n /**\n * The page's public physical address. Empty when the page lists none.\n */\n address?: string;\n /**\n * The page's primary category (e.g. \"Seafood Restaurant\"). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n category?: string;\n /**\n * The page's public contact email. Empty when the page lists none.\n */\n email?: string;\n /**\n * The page's follower count.\n */\n followers?: number;\n /**\n * URL of the page's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The page's public phone number. Empty when the page lists none.\n */\n phone?: string;\n /**\n * The page's public name. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical URL of the Facebook Page, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The page's public website URL. Empty when the page lists none.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Page Contact Info (facebook.page_contact).\n */\nexport interface FacebookPageContactData {\n /**\n * Contact record for the requested Facebook Page (one item). Populated whenever the provider has data for the entity.\n */\n items: FacebookPageContactItem[];\n}\n\n/**\n * Input for Facebook Page Photos (facebook.photos).\n */\nexport interface FacebookPhotosInput {\n /**\n * Pagination cursor from a previous response to fetch the next page.\n */\n cursor?: string;\n /**\n * URL of the public Facebook page or profile to fetch photos from (e.g. https://www.facebook.com/Spurs).\n */\n url: string;\n}\n\nexport interface FacebookPhotosPhoto {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n imageHeight: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n imageUrl: string;\n imageWidth: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n photoId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n thumbnail: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Page Photos (facebook.photos).\n */\nexport interface FacebookPhotosData {\n nextCursor: string;\n nextPageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n photos: FacebookPhotosPhoto[];\n}\n\n/**\n * Input for Facebook Post (facebook.post).\n */\nexport interface FacebookPostInput {\n /**\n * Full Facebook post URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Facebook Post (facebook.post).\n */\nexport interface FacebookPostData {\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n shares: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Post Comments (facebook.post_comments).\n */\nexport interface FacebookPostCommentsInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Facebook feedback id for the post (alternative to url).\n */\n feedbackId?: string;\n /**\n * Full Facebook post URL.\n */\n url?: string;\n}\n\nexport interface FacebookPostCommentsComment {\n /**\n * Display name of the comment author. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Comment identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of reactions on the comment.\n */\n reactions: number;\n /**\n * Number of replies to the comment.\n */\n replies: number;\n /**\n * Comment text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Post Comments (facebook.post_comments).\n */\nexport interface FacebookPostCommentsData {\n /**\n * Comments on the post. Populated whenever the provider has data for the entity.\n */\n comments: FacebookPostCommentsComment[];\n /**\n * Cursor for the next page of comments; empty when there are no more.\n */\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Post Transcript (facebook.post_transcript).\n */\nexport interface FacebookPostTranscriptInput {\n /**\n * The Facebook post or video URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Facebook Post Transcript (facebook.post_transcript).\n */\nexport interface FacebookPostTranscriptData {\n transcript: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Profile (facebook.profile).\n */\nexport interface FacebookProfileInput {\n /**\n * Facebook page handle/username.\n */\n handle?: string;\n /**\n * Full Facebook page URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Profile (facebook.profile).\n */\nexport interface FacebookProfileData {\n about: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n category: string;\n followers: number;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Page Events (facebook.profile_events).\n */\nexport interface FacebookProfileEventsInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * The Facebook page URL.\n */\n url: string;\n}\n\nexport interface FacebookProfileEventsEvent {\n city: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n creatorName: string;\n dayTimeSentence: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isCanceled: boolean;\n isOnline: boolean;\n isPast: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n placeName: string;\n startTimestamp: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Page Events (facebook.profile_events).\n */\nexport interface FacebookProfileEventsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n events: FacebookProfileEventsEvent[];\n hasNextPage: boolean;\n nextCursor: string;\n totalCount: number;\n}\n\n/**\n * Input for Facebook Profile Posts (facebook.profile_posts).\n */\nexport interface FacebookProfilePostsInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Facebook page id.\n */\n pageId?: string;\n /**\n * Full Facebook page/profile URL.\n */\n url?: string;\n}\n\nexport interface FacebookProfilePostsPost {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Profile Posts (facebook.profile_posts).\n */\nexport interface FacebookProfilePostsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: FacebookProfilePostsPost[];\n}\n\n/**\n * Input for Facebook Profile Reels (facebook.profile_reels).\n */\nexport interface FacebookProfileReelsInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Full Facebook page/profile URL.\n */\n url: string;\n}\n\nexport interface FacebookProfileReelsReel {\n /**\n * Reel caption text. Populated whenever the provider has data for the entity.\n */\n caption: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Reel identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the reel thumbnail image. Populated whenever the provider has data for the entity.\n */\n thumbnail: string;\n /**\n * Canonical URL of the reel. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Number of views on the reel.\n */\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Profile Reels (facebook.profile_reels).\n */\nexport interface FacebookProfileReelsData {\n /**\n * The profile's reels. Populated whenever the provider has data for the entity.\n */\n reels: FacebookProfileReelsReel[];\n}\n\n/**\n * Input for Facebook Company Search (facebook.search_companies).\n */\nexport interface FacebookSearchCompaniesInput {\n /**\n * Keyword to search advertiser pages for (e.g. \"nike\").\n */\n query: string;\n}\n\nexport interface FacebookSearchCompaniesCompanie {\n /**\n * Populated whenever the provider has data for the entity.\n */\n category: string;\n country: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n entityType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n igFollowers: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n igUsername: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n imageUrl: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageAlias: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n verification: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Company Search (facebook.search_companies).\n */\nexport interface FacebookSearchCompaniesData {\n companies: FacebookSearchCompaniesCompanie[];\n}\n\n/**\n * Input for Facebook Page Search (facebook.search_pages).\n */\nexport interface FacebookSearchPagesInput {\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * Optional free-text location to narrow the search: a city, province, or country (e.g. 'Berlin').\n */\n location?: string;\n /**\n * Keyword to search Facebook Pages for (e.g. 'coffee roasters').\n */\n query: string;\n}\n\nexport interface FacebookSearchPagesItem {\n /**\n * The page's primary category (e.g. \"Sportswear Store\"). Empty when the upstream omits it.\n */\n category?: string;\n /**\n * The page's follower count.\n */\n followers?: number;\n /**\n * The page's numeric Facebook ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the page's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The page's like count.\n */\n likes?: number;\n /**\n * The page's public phone number. Empty when the upstream omits it.\n */\n phone?: string;\n /**\n * The page's public name. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical URL of the Facebook Page, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The page's public website URL. Empty when the upstream omits it.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Page Search (facebook.search_pages).\n */\nexport interface FacebookSearchPagesData {\n /**\n * Matching Facebook Page records for the query. Populated whenever the provider has data for the entity.\n */\n items: FacebookSearchPagesItem[];\n}\n\n/**\n * Input for Facebook Post Search (facebook.search_posts).\n */\nexport interface FacebookSearchPostsInput {\n /**\n * Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2024-12-31).\n */\n endDate?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Optional location to narrow results; include both city and country for best matches (e.g. 'Paris, France').\n */\n location?: string;\n /**\n * Keyword or phrase to search Facebook posts for (e.g. 'product launch').\n */\n query: string;\n /**\n * Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2024-01-01).\n */\n startDate?: string;\n}\n\nexport interface FacebookSearchPostsItem {\n /**\n * Display name of the post's author. Empty when the upstream omits it.\n */\n authorName?: string;\n /**\n * Canonical profile URL of the post's author, with tracking query params stripped. Empty when the upstream omits it.\n */\n authorUrl?: string;\n /**\n * Total number of comments on the post.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * The post's numeric Facebook ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the post's primary image, with tracking query params stripped. Empty for text-only or video posts.\n */\n image?: string;\n /**\n * Total number of reactions on the post.\n */\n reactionCount?: number;\n /**\n * Total number of shares/reshares of the post.\n */\n shareCount?: number;\n /**\n * The post's text/message. Empty for media-only posts with no caption.\n */\n text: string;\n /**\n * Canonical URL of the post, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Post Search (facebook.search_posts).\n */\nexport interface FacebookSearchPostsData {\n /**\n * Matching public Facebook post records for the query. Populated whenever the provider has data for the entity.\n */\n items: FacebookSearchPostsItem[];\n}\n\n/**\n * Typed methods for the facebook platform. Attached to the AnyAPI client as\n * `client.facebook`.\n */\nexport class FacebookNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Facebook Ad Details\n *\n * Look up a single Meta Ad Library ad by ID or URL and get the advertiser, creative text, call-to-action, platforms, and run dates as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.adDetails({ id: \"1869276447125570\" });\n */\n adDetails(\n input: FacebookAdDetailsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookAdDetailsData>> {\n return this._core.run(\"facebook.ad_details\", input, options);\n }\n\n /**\n * Facebook Ad Transcript\n *\n * Get the spoken-word transcript of a Meta Ad Library video ad by ad ID or URL.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.adTranscript({ id: \"931919822778200\" });\n */\n adTranscript(\n input: FacebookAdTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookAdTranscriptData>> {\n return this._core.run(\"facebook.ad_transcript\", input, options);\n }\n\n /**\n * Facebook Ad Search\n *\n * Search the Meta Ad Library by keyword and get matching ads (advertiser, creative text, CTA, platforms, and run dates) with cursor pagination and transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.adsSearch({ query: \"nike\", country: \"US\", searchType: \"keyword_exact_phrase\" });\n */\n adsSearch(\n input: FacebookAdsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookAdsSearchData>> {\n return this._core.run(\"facebook.ads_search\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Ad Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterAdsSearch(\n input: FacebookAdsSearchInput,\n options?: RequestOptions,\n ): Paginator<FacebookAdsSearchAd, RunResult<FacebookAdsSearchData>> {\n return paginate<FacebookAdsSearchAd, RunResult<FacebookAdsSearchData>>(\n this._core,\n \"facebook.ads_search\",\n input as unknown as Record<string, unknown>,\n \"ads\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Comment Replies\n *\n * List the replies to a Facebook post comment (text, author, reactions, and timestamps) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.commentReplies({ expansionToken: \"MjoxNzgzMjI4OTY4OgF_o5zrjDnpemv4bwPtpsShXutqvKIw2bKs2YuJksL1Ak8n8YG-_KPSQGkIks5oW6wdRfhb_cRv9q5OX0NHjFJwEupYNZi9pcMV-FYLWLp47u-eusMkZFOMwbkISsTln7gtSvQrOzlffyavOTIL85PECYzGfunU2IAEkd13CIikxu06Mw10UJ1ShcFAmz8175R1uJfYy_iOixWZukqfrWhUfVOXApXznxx7qXvUxPwct76qe6p7-nVWQrPC_SZc2xh9Z8ggL3WMjgTzSq4oWFSsyZuuVsyVVjSgdjRQiDqtJSeEUlSjTr6vOnKsvKV-GpnBRaeA0BCaNRhqpB4xDZoduBuO5ZYrFvWLJdJLryDhCPI2Ss-Z33cEM2Vz7pLf1wJzE7TuizXPwICSn1DA_Prca-BItTbOUjAjfiySap1LXYkGuuDC2ziUdiEsmE5XhevMP8XtF_2WQlMNcGbXMEQyAWDUawtPAxXgMeRrCO9YGSweFQ4OZumoIlSGa3Vfjy-euUOHT1IAsNbV2A8rAq4HJNU3jCXQTn0vfW9xvbVQhL-53Mhw2YPjhlvUj6QpnGA25N8\", feedbackId: \"ZmVlZGJhY2s6MTM5MzQ2MTExNTQ4MTkyN18yMDgyNjUzMjQ1ODA5Mzg2\" });\n */\n commentReplies(\n input: FacebookCommentRepliesInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookCommentRepliesData>> {\n return this._core.run(\"facebook.comment_replies\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Comment Replies across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterCommentReplies(\n input: FacebookCommentRepliesInput,\n options?: RequestOptions,\n ): Paginator<\n FacebookCommentRepliesReplie,\n RunResult<FacebookCommentRepliesData>\n > {\n return paginate<\n FacebookCommentRepliesReplie,\n RunResult<FacebookCommentRepliesData>\n >(\n this._core,\n \"facebook.comment_replies\",\n input as unknown as Record<string, unknown>,\n \"replies\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Company Ads\n *\n * List the Meta Ad Library ads a company is running by page ID or company name (creative text, format, platforms, and run dates) with cursor pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.companyAds({ companyName: \"nike\", sortBy: \"recent\" });\n */\n companyAds(\n input: FacebookCompanyAdsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookCompanyAdsData>> {\n return this._core.run(\"facebook.company_ads\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Company Ads across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterCompanyAds(\n input: FacebookCompanyAdsInput,\n options?: RequestOptions,\n ): Paginator<FacebookCompanyAdsAd, RunResult<FacebookCompanyAdsData>> {\n return paginate<FacebookCompanyAdsAd, RunResult<FacebookCompanyAdsData>>(\n this._core,\n \"facebook.company_ads\",\n input as unknown as Record<string, unknown>,\n \"ads\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Event Details\n *\n * Fetch full details for a single Facebook event by ID or URL (name, schedule, venue, hosts, and attendance) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.eventDetails({ id: \"4045709448982422\" });\n */\n eventDetails(\n input: FacebookEventDetailsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookEventDetailsData>> {\n return this._core.run(\"facebook.event_details\", input, options);\n }\n\n /**\n * Facebook Events\n *\n * List public Facebook events for a city or place by its events-page URL (event name, date, venue, and attendance) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.events({ url: \"https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547\" });\n */\n events(\n input: FacebookEventsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookEventsData>> {\n return this._core.run(\"facebook.events\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Events across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterEvents(\n input: FacebookEventsInput,\n options?: RequestOptions,\n ): Paginator<FacebookEventsEvent, RunResult<FacebookEventsData>> {\n return paginate<FacebookEventsEvent, RunResult<FacebookEventsData>>(\n this._core,\n \"facebook.events\",\n input as unknown as Record<string, unknown>,\n \"events\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Events Search\n *\n * Search public Facebook events by keyword and get structured event records (name, schedule, venue, pricing, and attendance) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.eventsSearch({ query: \"music festival\" });\n */\n eventsSearch(\n input: FacebookEventsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookEventsSearchData>> {\n return this._core.run(\"facebook.events_search\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Events Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterEventsSearch(\n input: FacebookEventsSearchInput,\n options?: RequestOptions,\n ): Paginator<FacebookEventsSearchEvent, RunResult<FacebookEventsSearchData>> {\n return paginate<\n FacebookEventsSearchEvent,\n RunResult<FacebookEventsSearchData>\n >(\n this._core,\n \"facebook.events_search\",\n input as unknown as Record<string, unknown>,\n \"events\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Followers\n *\n * List the public followers (or accounts followed) of any Facebook page or profile URL as normalized JSON records.\n *\n * Price: $0 per request plus $0.006 per result (maximum $0.12).\n *\n * @example\n * const res = await client.facebook.followers({ url: \"https://www.facebook.com/nike\", limit: 3 });\n */\n followers(\n input: FacebookFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookFollowersData>> {\n return this._core.run(\"facebook.followers\", input, options);\n }\n\n /**\n * Facebook Group Posts\n *\n * Fetch recent posts from any public Facebook group by URL: text, author, reactions, and comment counts.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.groupPosts({ url: \"https://www.facebook.com/groups/1270525996445602/\" });\n */\n groupPosts(\n input: FacebookGroupPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookGroupPostsData>> {\n return this._core.run(\"facebook.group_posts\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Group Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterGroupPosts(\n input: FacebookGroupPostsInput,\n options?: RequestOptions,\n ): Paginator<FacebookGroupPostsPost, RunResult<FacebookGroupPostsData>> {\n return paginate<FacebookGroupPostsPost, RunResult<FacebookGroupPostsData>>(\n this._core,\n \"facebook.group_posts\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Marketplace\n *\n * Search Facebook Marketplace listings by keyword near a location, with price, condition, delivery, recency, and availability filters (title, price, location, and image) as normalized JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.marketplace({ lat: \"30.2677\", lng: \"-97.7475\", query: \"bike\", priceMax: 500, priceMin: 100 });\n */\n marketplace(\n input: FacebookMarketplaceInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookMarketplaceData>> {\n return this._core.run(\"facebook.marketplace\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Marketplace across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterMarketplace(\n input: FacebookMarketplaceInput,\n options?: RequestOptions,\n ): Paginator<FacebookMarketplaceListing, RunResult<FacebookMarketplaceData>> {\n return paginate<\n FacebookMarketplaceListing,\n RunResult<FacebookMarketplaceData>\n >(\n this._core,\n \"facebook.marketplace\",\n input as unknown as Record<string, unknown>,\n \"listings\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Marketplace Item\n *\n * Fetch full details for a single Facebook Marketplace listing by ID or URL (title, price, location, photos, and attributes) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.marketplaceItem({ url: \"https://www.facebook.com/marketplace/item/1656586118821988/\" });\n */\n marketplaceItem(\n input: FacebookMarketplaceItemInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookMarketplaceItemData>> {\n return this._core.run(\"facebook.marketplace_item\", input, options);\n }\n\n /**\n * Facebook Marketplace Location Search\n *\n * Resolve a place name to Facebook Marketplace locations with coordinates and metadata as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.marketplaceLocationSearch({ query: \"Austin\" });\n */\n marketplaceLocationSearch(\n input: FacebookMarketplaceLocationSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookMarketplaceLocationSearchData>> {\n return this._core.run(\n \"facebook.marketplace_location_search\",\n input,\n options,\n );\n }\n\n /**\n * Facebook Page Contact Info\n *\n * Look up a Facebook Page's public contact details (email, phone, website, and address) by page URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.pageContact({ page: \"https://www.facebook.com/joesstonecrab\" });\n */\n pageContact(\n input: FacebookPageContactInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPageContactData>> {\n return this._core.run(\"facebook.page_contact\", input, options);\n }\n\n /**\n * Facebook Page Photos\n *\n * Fetch recent photos posted by any public Facebook page or profile (image URLs, captions, and dimensions) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.photos({ url: \"https://www.facebook.com/Spurs\" });\n */\n photos(\n input: FacebookPhotosInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPhotosData>> {\n return this._core.run(\"facebook.photos\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Page Photos across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterPhotos(\n input: FacebookPhotosInput,\n options?: RequestOptions,\n ): Paginator<FacebookPhotosPhoto, RunResult<FacebookPhotosData>> {\n return paginate<FacebookPhotosPhoto, RunResult<FacebookPhotosData>>(\n this._core,\n \"facebook.photos\",\n input as unknown as Record<string, unknown>,\n \"photos\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Post\n *\n * Fetch a single Facebook post by URL with its text and engagement counts (likes, comments, shares, views), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.post({ url: \"https://www.facebook.com/reel/2166091230582141/\" });\n */\n post(\n input: FacebookPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPostData>> {\n return this._core.run(\"facebook.post\", input, options);\n }\n\n /**\n * Facebook Post Comments\n *\n * List the comments on a Facebook post by URL with cursor pagination (text, author, reactions, reply count), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.postComments({ url: \"https://www.facebook.com/reel/2166091230582141/\" });\n */\n postComments(\n input: FacebookPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPostCommentsData>> {\n return this._core.run(\"facebook.post_comments\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Post Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterPostComments(\n input: FacebookPostCommentsInput,\n options?: RequestOptions,\n ): Paginator<\n FacebookPostCommentsComment,\n RunResult<FacebookPostCommentsData>\n > {\n return paginate<\n FacebookPostCommentsComment,\n RunResult<FacebookPostCommentsData>\n >(\n this._core,\n \"facebook.post_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Post Transcript\n *\n * Get the spoken-word transcript of any public Facebook video post by URL as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.postTranscript({ url: \"https://www.facebook.com/reel/2166091230582141/\" });\n */\n postTranscript(\n input: FacebookPostTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPostTranscriptData>> {\n return this._core.run(\"facebook.post_transcript\", input, options);\n }\n\n /**\n * Facebook Profile\n *\n * Fetch a Facebook page's public profile (likes, followers, category, about) by URL or handle, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.profile({ url: \"https://www.facebook.com/nike\" });\n */\n profile(\n input: FacebookProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookProfileData>> {\n return this._core.run(\"facebook.profile\", input, options);\n }\n\n /**\n * Facebook Page Events\n *\n * List upcoming and past events hosted by any public Facebook page by URL (name, schedule, venue, and host) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.profileEvents({ url: \"https://www.facebook.com/brickyardoldtown\" });\n */\n profileEvents(\n input: FacebookProfileEventsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookProfileEventsData>> {\n return this._core.run(\"facebook.profile_events\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Page Events across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterProfileEvents(\n input: FacebookProfileEventsInput,\n options?: RequestOptions,\n ): Paginator<\n FacebookProfileEventsEvent,\n RunResult<FacebookProfileEventsData>\n > {\n return paginate<\n FacebookProfileEventsEvent,\n RunResult<FacebookProfileEventsData>\n >(\n this._core,\n \"facebook.profile_events\",\n input as unknown as Record<string, unknown>,\n \"events\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Profile Posts\n *\n * List a Facebook page's recent posts by URL or page id with cursor pagination (text, author, permalink), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.profilePosts({ url: \"https://www.facebook.com/nike\" });\n */\n profilePosts(\n input: FacebookProfilePostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookProfilePostsData>> {\n return this._core.run(\"facebook.profile_posts\", input, options);\n }\n\n /**\n * Facebook Profile Reels\n *\n * List a Facebook page's reels by URL with cursor pagination (caption, view count, permalink, thumbnail), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.profileReels({ url: \"https://www.facebook.com/nike\" });\n */\n profileReels(\n input: FacebookProfileReelsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookProfileReelsData>> {\n return this._core.run(\"facebook.profile_reels\", input, options);\n }\n\n /**\n * Facebook Company Search\n *\n * Search the Meta Ad Library for advertisers by keyword and get matching pages: page ID, category, verification, follower counts, and linked Instagram.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.searchCompanies({ query: \"nike\" });\n */\n searchCompanies(\n input: FacebookSearchCompaniesInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookSearchCompaniesData>> {\n return this._core.run(\"facebook.search_companies\", input, options);\n }\n\n /**\n * Facebook Page Search\n *\n * Search Facebook Pages by keyword, optionally narrowed to a location, and get structured page profiles (name, category, followers, contact details) at a.\n *\n * Price: $0.001 per request plus $0.011 per result (maximum $0.111).\n *\n * @example\n * const res = await client.facebook.searchPages({ query: \"nike\", limit: 3 });\n */\n searchPages(\n input: FacebookSearchPagesInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookSearchPagesData>> {\n return this._core.run(\"facebook.search_pages\", input, options);\n }\n\n /**\n * Facebook Post Search\n *\n * Search public Facebook posts by keyword, optionally filtered by location, and get structured post records (text, author, engagement).\n *\n * Price: $0 per request plus $0.003 per result (maximum $0.06).\n *\n * @example\n * const res = await client.facebook.searchPosts({ query: \"nike\", limit: 3 });\n */\n searchPosts(\n input: FacebookSearchPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookSearchPostsData>> {\n return this._core.run(\"facebook.search_posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Fiverr Gig Search (fiverr.search).\n */\nexport interface FiverrSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Fiverr search or category page URL to extract gigs from.\n */\n url: string;\n}\n\nexport interface FiverrSearchItem {\n /**\n * Delivery time in days.\n */\n duration?: number;\n /**\n * Stable Fiverr gig identifier. Populated whenever the provider has data for the entity.\n */\n gigId: string;\n /**\n * Canonical Fiverr URL for the gig. Populated whenever the provider has data for the entity.\n */\n gigUrl: string;\n /**\n * Primary gig thumbnail URL.\n */\n image?: string;\n /**\n * Starting price in USD.\n */\n price?: number;\n /**\n * Seller country code.\n */\n sellerCountry?: string;\n /**\n * Seller display name.\n */\n sellerDisplayName?: string;\n /**\n * Fiverr seller level.\n */\n sellerLevel?: string;\n /**\n * Seller username.\n */\n sellerName?: string;\n /**\n * Number of seller ratings.\n */\n sellerRatingCount?: number;\n /**\n * Average seller rating.\n */\n sellerRatingScore?: number;\n /**\n * Seller profile URL.\n */\n sellerUrl?: string;\n /**\n * Gig headline. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Fiverr Gig Search (fiverr.search).\n */\nexport interface FiverrSearchData {\n /**\n * Gig records from the search or category URL. Operators may return additional fields beyond those documented here. Populated whenever the provider has data for the entity.\n */\n items: FiverrSearchItem[];\n}\n\n/**\n * Typed methods for the fiverr platform. Attached to the AnyAPI client as\n * `client.fiverr`.\n */\nexport class FiverrNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Fiverr Gig Search\n *\n * Extract Fiverr gig listings from any search or category URL: titles, sellers, ratings, and pricing as structured JSON.\n *\n * Price: $0 per request plus $0.0015 per result (maximum $0.03).\n *\n * @example\n * const res = await client.fiverr.search({ url: \"https://www.fiverr.com/search/gigs?query=logo%20design\", limit: 3 });\n */\n search(\n input: FiverrSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<FiverrSearchData>> {\n return this._core.run(\"fiverr.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for GitHub Repository (github.repository).\n */\nexport interface GithubRepositoryInput {\n /**\n * GitHub repository URL (e.g. https://github.com/facebook/react).\n */\n url: string;\n}\n\n/**\n * The `data` payload of GitHub Repository (github.repository).\n */\nexport interface GithubRepositoryData {\n /**\n * Whether the repository is archived.\n */\n archived?: boolean;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Name of the default branch. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n defaultBranch?: string;\n /**\n * Short repository description, or null if none.\n */\n description?: string;\n /**\n * Whether the repository is a fork.\n */\n fork?: boolean;\n /**\n * Number of forks.\n */\n forks?: number;\n /**\n * Full repository name in owner/name form. Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Project homepage URL, or null if none.\n */\n homepage?: string;\n /**\n * Primary programming language, or null if undetected.\n */\n language?: string;\n /**\n * License name, or null if unlicensed.\n */\n license?: string;\n /**\n * Repository short name (without owner). Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Count of open issues and pull requests.\n */\n openIssues?: number;\n /**\n * Login of the repository owner (user or organization). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n owner?: string;\n /**\n * Last push timestamp (ISO 8601). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n pushedAt?: string;\n /**\n * Number of stargazers.\n */\n stars?: number;\n /**\n * Repository topic tags.\n */\n topics?: string[];\n /**\n * Last metadata update timestamp (ISO 8601). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n updatedAt?: string;\n /**\n * Canonical URL of the repository. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Number of watchers.\n */\n watchers?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for GitHub Trending Developers (github.trending_developers).\n */\nexport interface GithubTrendingDevelopersInput {\n /**\n * Programming language to filter trending developers (e.g. javascript, python, go).\n */\n language?: string;\n /**\n * Trending range: daily, weekly, or monthly (defaults to daily).\n */\n since?: string;\n}\n\nexport interface GithubTrendingDevelopersDeveloper {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n name: string;\n popularRepo: string;\n popularRepoDescription: string;\n popularRepoUrl: string;\n rank: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub Trending Developers (github.trending_developers).\n */\nexport interface GithubTrendingDevelopersData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n developers: GithubTrendingDevelopersDeveloper[];\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n since: string;\n}\n\n/**\n * Input for GitHub Trending Repositories (github.trending_repositories).\n */\nexport interface GithubTrendingRepositoriesInput {\n /**\n * Filter by programming language (e.g. \"go\", \"typescript\"). Omit for all languages.\n */\n language?: string;\n /**\n * Trending window.\n * One of: daily, weekly, monthly.\n * Default: daily.\n */\n since?: \"daily\" | \"weekly\" | \"monthly\";\n}\n\nexport interface GithubTrendingRepositoriesRepo {\n description: string;\n forks: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n fullName: string;\n language: string;\n rank: number;\n stars: number;\n starsToday: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub Trending Repositories (github.trending_repositories).\n */\nexport interface GithubTrendingRepositoriesData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n repos: GithubTrendingRepositoriesRepo[];\n}\n\n/**\n * Input for GitHub User (github.user).\n */\nexport interface GithubUserInput {\n /**\n * GitHub username.\n */\n handle: string;\n}\n\n/**\n * The `data` payload of GitHub User (github.user).\n */\nexport interface GithubUserData {\n /**\n * URL of the profile avatar image. Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Profile bio text.\n */\n bio: string;\n /**\n * Blog or website URL from the profile.\n */\n blog?: string;\n /**\n * Company listed on the profile.\n */\n company?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Number of followers.\n */\n followers: number;\n /**\n * Number of accounts the user follows.\n */\n following: number;\n /**\n * Location listed on the profile.\n */\n location?: string;\n /**\n * GitHub username (handle). Populated whenever the provider has data for the entity.\n */\n login: string;\n /**\n * Display name, or empty string if unset. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Count of public gists.\n */\n publicGists?: number;\n /**\n * Count of public repositories.\n */\n publicRepos: number;\n /**\n * Linked X/Twitter username.\n */\n twitterUsername?: string;\n /**\n * \"User\" or \"Organization\".\n */\n type?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for GitHub User Activity (github.user_activity).\n */\nexport interface GithubUserActivityInput {\n /**\n * Pagination cursor from a previous response (pages backward by month).\n */\n cursor?: string;\n /**\n * GitHub username.\n */\n handle: string;\n /**\n * Year of contribution activity to return (defaults to the current year).\n */\n year?: string;\n}\n\nexport interface GithubUserActivityActivity {\n /**\n * Populated whenever the provider has data for the entity.\n */\n summary: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Activity (github.user_activity).\n */\nexport interface GithubUserActivityData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n activity: GithubUserActivityActivity[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n month: string;\n nextCursor: string;\n noActivity: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n year: number;\n}\n\n/**\n * Input for GitHub User Contributions (github.user_contributions).\n */\nexport interface GithubUserContributionsInput {\n /**\n * GitHub username.\n */\n handle: string;\n /**\n * Calendar year of the contribution graph. Defaults to the current year.\n */\n year?: number;\n}\n\nexport interface GithubUserContributionsDay {\n /**\n * Number of contributions on this day.\n */\n count: number;\n /**\n * UTC epoch seconds at 00:00 UTC of the contribution day. Populated whenever the provider has data for the entity.\n */\n dateUtc: number;\n /**\n * Heatmap level 0-4.\n */\n intensity: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Contributions (github.user_contributions).\n */\nexport interface GithubUserContributionsData {\n /**\n * Per-day contribution buckets for the year. Populated whenever the provider has data for the entity.\n */\n days: GithubUserContributionsDay[];\n /**\n * Total contributions across the year.\n */\n total: number;\n /**\n * GitHub username the contribution graph belongs to. Populated whenever the provider has data for the entity.\n */\n username: string;\n /**\n * Calendar year of the contribution graph.\n */\n year: number;\n}\n\n/**\n * Input for GitHub User Followers (github.user_followers).\n */\nexport interface GithubUserFollowersInput {\n /**\n * Pagination cursor from a previous response (page number, defaults to 1).\n */\n cursor?: string;\n /**\n * GitHub username.\n */\n handle: string;\n}\n\nexport interface GithubUserFollowersFollower {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n id: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n login: string;\n siteAdmin: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Followers (github.user_followers).\n */\nexport interface GithubUserFollowersData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n followers: GithubUserFollowersFollower[];\n nextCursor: string;\n}\n\n/**\n * Input for GitHub User Following (github.user_following).\n */\nexport interface GithubUserFollowingInput {\n /**\n * Pagination cursor from a previous response (page number, defaults to 1).\n */\n cursor?: string;\n /**\n * GitHub username.\n */\n handle: string;\n}\n\nexport interface GithubUserFollowingFollowing {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n id: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n login: string;\n siteAdmin: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Following (github.user_following).\n */\nexport interface GithubUserFollowingData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n following: GithubUserFollowingFollowing[];\n nextCursor: string;\n}\n\n/**\n * Input for GitHub User Pull Requests (github.user_pull_requests).\n */\nexport interface GithubUserPullRequestsInput {\n /**\n * Pagination cursor from a previous response (page number, defaults to 1).\n */\n cursor?: string;\n /**\n * GitHub username.\n */\n handle: string;\n /**\n * Only include pull requests created on or after this date (YYYY-MM-DD).\n */\n since?: string;\n /**\n * Only include pull requests created on or before this date (YYYY-MM-DD).\n */\n until?: string;\n}\n\nexport interface GithubUserPullRequestsPullRequest {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Repository the pull request targets, in owner/name form. Populated whenever the provider has data for the entity.\n */\n repo: string;\n /**\n * Pull request state (e.g. open, closed, merged). Populated whenever the provider has data for the entity.\n */\n state: string;\n /**\n * Pull request title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical URL of the pull request. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Pull Requests (github.user_pull_requests).\n */\nexport interface GithubUserPullRequestsData {\n /**\n * Whether more pull requests are available beyond this page.\n */\n hasMore: boolean;\n /**\n * Opaque cursor for the next page, or empty string when none.\n */\n nextCursor: string;\n /**\n * The user's public pull requests for this page. Populated whenever the provider has data for the entity.\n */\n pullRequests: GithubUserPullRequestsPullRequest[];\n}\n\n/**\n * Input for GitHub User Repositories (github.user_repositories).\n */\nexport interface GithubUserRepositoriesInput {\n /**\n * 1-based results page. Use the output's nextCursor to paginate.\n * Range: minimum 1.\n * Default: 1.\n */\n cursor?: number;\n /**\n * Sort direction, ascending or descending, paired with sort.\n * One of: asc, desc.\n */\n direction?: \"asc\" | \"desc\";\n /**\n * GitHub username.\n */\n handle: string;\n /**\n * Repository ordering.\n * One of: created, updated, pushed, full_name.\n * Default: updated.\n */\n sort?: \"created\" | \"updated\" | \"pushed\" | \"full_name\";\n /**\n * Which repositories to include: owner (default), all, or member.\n * One of: owner, all, member.\n */\n type?: \"owner\" | \"all\" | \"member\";\n}\n\nexport interface GithubUserRepositoriesRepo {\n archived: boolean;\n description: string;\n fork: boolean;\n forks: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n fullName: string;\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n pushedAt: string;\n stars: number;\n updatedAt: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Repositories (github.user_repositories).\n */\nexport interface GithubUserRepositoriesData {\n hasMore: boolean;\n nextCursor: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n repos: GithubUserRepositoriesRepo[];\n}\n\n/**\n * Typed methods for the github platform. Attached to the AnyAPI client as\n * `client.github`.\n */\nexport class GithubNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * GitHub Repository\n *\n * Fetch a GitHub repository's metadata by URL (stars, forks, language, topics, license, and timestamps), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.repository({ url: \"https://github.com/facebook/react\" });\n */\n repository(\n input: GithubRepositoryInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubRepositoryData>> {\n return this._core.run(\"github.repository\", input, options);\n }\n\n /**\n * GitHub Trending Developers\n *\n * List trending GitHub developers (rank, username, name, avatar, and their most popular repository), optionally filtered by programming language and time range.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.trendingDevelopers({ language: \"go\", since: \"weekly\" });\n */\n trendingDevelopers(\n input: GithubTrendingDevelopersInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubTrendingDevelopersData>> {\n return this._core.run(\"github.trending_developers\", input, options);\n }\n\n /**\n * GitHub Trending Repositories\n *\n * List GitHub Trending repositories (rank, stars, stars gained today, language, and description), filterable by language and time window, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.trendingRepositories({ language: \"python\", since: \"daily\" });\n */\n trendingRepositories(\n input: GithubTrendingRepositoriesInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubTrendingRepositoriesData>> {\n return this._core.run(\"github.trending_repositories\", input, options);\n }\n\n /**\n * GitHub User\n *\n * Fetch a GitHub user's public profile by handle (name, bio, company, location, followers, and repo counts), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.user({ handle: \"torvalds\" });\n */\n user(\n input: GithubUserInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserData>> {\n return this._core.run(\"github.user\", input, options);\n }\n\n /**\n * GitHub User Activity\n *\n * List a GitHub user's public contribution activity by handle (grouped monthly summaries of commits, pull requests, and issues with repository links) for a given year.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userActivity({ handle: \"kentcdodds\" });\n */\n userActivity(\n input: GithubUserActivityInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserActivityData>> {\n return this._core.run(\"github.user_activity\", input, options);\n }\n\n /**\n * Iterate every result of GitHub User Activity across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserActivity(\n input: GithubUserActivityInput,\n options?: RequestOptions,\n ): Paginator<GithubUserActivityActivity, RunResult<GithubUserActivityData>> {\n return paginate<\n GithubUserActivityActivity,\n RunResult<GithubUserActivityData>\n >(\n this._core,\n \"github.user_activity\",\n input as unknown as Record<string, unknown>,\n \"activity\",\n false,\n options,\n );\n }\n\n /**\n * GitHub User Contributions\n *\n * Fetch a GitHub user's contribution graph for a year (total contributions plus per-day counts and heatmap intensity), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userContributions({ handle: \"torvalds\", year: 2024 });\n */\n userContributions(\n input: GithubUserContributionsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserContributionsData>> {\n return this._core.run(\"github.user_contributions\", input, options);\n }\n\n /**\n * GitHub User Followers\n *\n * List a GitHub user's followers by handle (each follower's login, type, avatar, and profile URL) with pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userFollowers({ handle: \"torvalds\" });\n */\n userFollowers(\n input: GithubUserFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserFollowersData>> {\n return this._core.run(\"github.user_followers\", input, options);\n }\n\n /**\n * Iterate every result of GitHub User Followers across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserFollowers(\n input: GithubUserFollowersInput,\n options?: RequestOptions,\n ): Paginator<\n GithubUserFollowersFollower,\n RunResult<GithubUserFollowersData>\n > {\n return paginate<\n GithubUserFollowersFollower,\n RunResult<GithubUserFollowersData>\n >(\n this._core,\n \"github.user_followers\",\n input as unknown as Record<string, unknown>,\n \"followers\",\n false,\n options,\n );\n }\n\n /**\n * GitHub User Following\n *\n * List the GitHub users a given user follows by handle (each account's login, type, avatar, and profile URL) with pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userFollowing({ handle: \"kentcdodds\" });\n */\n userFollowing(\n input: GithubUserFollowingInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserFollowingData>> {\n return this._core.run(\"github.user_following\", input, options);\n }\n\n /**\n * Iterate every result of GitHub User Following across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserFollowing(\n input: GithubUserFollowingInput,\n options?: RequestOptions,\n ): Paginator<\n GithubUserFollowingFollowing,\n RunResult<GithubUserFollowingData>\n > {\n return paginate<\n GithubUserFollowingFollowing,\n RunResult<GithubUserFollowingData>\n >(\n this._core,\n \"github.user_following\",\n input as unknown as Record<string, unknown>,\n \"following\",\n false,\n options,\n );\n }\n\n /**\n * GitHub User Pull Requests\n *\n * List a GitHub user's public pull requests by handle (title, repository, state, creation date, and URL) with optional date filtering and pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userPullRequests({ handle: \"torvalds\" });\n */\n userPullRequests(\n input: GithubUserPullRequestsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserPullRequestsData>> {\n return this._core.run(\"github.user_pull_requests\", input, options);\n }\n\n /**\n * Iterate every result of GitHub User Pull Requests across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserPullRequests(\n input: GithubUserPullRequestsInput,\n options?: RequestOptions,\n ): Paginator<\n GithubUserPullRequestsPullRequest,\n RunResult<GithubUserPullRequestsData>\n > {\n return paginate<\n GithubUserPullRequestsPullRequest,\n RunResult<GithubUserPullRequestsData>\n >(\n this._core,\n \"github.user_pull_requests\",\n input as unknown as Record<string, unknown>,\n \"pullRequests\",\n false,\n options,\n );\n }\n\n /**\n * GitHub User Repositories\n *\n * List a GitHub user's public repositories (name, description, language, stars, and forks) with sorting and cursor pagination, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userRepositories({ handle: \"torvalds\" });\n */\n userRepositories(\n input: GithubUserRepositoriesInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserRepositoriesData>> {\n return this._core.run(\"github.user_repositories\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Glassdoor Jobs (glassdoor.jobs).\n */\nexport interface GlassdoorJobsInput {\n /**\n * When true, only return jobs offering Easy Apply. Keyword mode only.\n */\n easyApply?: boolean;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * City, region, or country to search within (keyword mode; e.g. United States, New York).\n */\n location?: string;\n /**\n * Only jobs posted within this window (past 24 hours, week, or month). Keyword mode only.\n * One of: 24h, week, month.\n */\n postedLimit?: \"24h\" | \"week\" | \"month\";\n /**\n * Job title or keywords to search (keyword mode). Provide this or a url.\n */\n query?: string;\n /**\n * Sort order: most recent (date) or best match (relevance). Keyword mode only.\n * One of: date, relevance.\n */\n sortBy?: \"date\" | \"relevance\";\n /**\n * Alternatively, a Glassdoor company or job search page URL to scrape (e.g. https://www.glassdoor.com/Jobs/Google-Jobs-E9079.htm). The filters below apply in keyword (query) mode.\n */\n url?: string;\n /**\n * Filter by workplace type (remote, hybrid, or onsite). Keyword mode only.\n * One of: remote, hybrid, onsite.\n */\n workplaceType?: \"remote\" | \"hybrid\" | \"onsite\";\n}\n\n/**\n * A Glassdoor job listing: title, employer, location, salary estimate, rating, and the listing URL.\n */\nexport interface GlassdoorJobsItem {\n /**\n * Days since the listing was posted.\n */\n ageInDays?: number;\n /**\n * Hiring employer name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n company?: string;\n /**\n * Full job description (may contain HTML).\n */\n description?: string;\n /**\n * Glassdoor job listing id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Job location (city, region).\n */\n location?: string;\n /**\n * Employer Glassdoor star rating (0 when not rated).\n */\n rating?: number;\n /**\n * Estimated salary range for the listing.\n */\n salary?: {\n /**\n * ISO currency code for the salary figures.\n */\n currency?: string;\n /**\n * High end of the estimated salary range.\n */\n max?: number;\n /**\n * Median of the estimated salary range.\n */\n median?: number;\n /**\n * Low end of the estimated salary range.\n */\n min?: number;\n /**\n * Pay period the figures cover (e.g. ANNUAL, HOURLY).\n */\n period?: string;\n };\n /**\n * Job title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Absolute Glassdoor job listing URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Glassdoor Jobs (glassdoor.jobs).\n */\nexport interface GlassdoorJobsData {\n /**\n * Job listing records for the search or company page. Populated whenever the provider has data for the entity.\n */\n items: GlassdoorJobsItem[];\n}\n\n/**\n * Typed methods for the glassdoor platform. Attached to the AnyAPI client as\n * `client.glassdoor`.\n */\nexport class GlassdoorNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Glassdoor Jobs\n *\n * Search Glassdoor job listings by keyword and location, or scrape any Glassdoor company or job search page URL - up to 20 normalized job records per request.\n *\n * Price: $0.005 per request plus $0.00475 per result (maximum $0.1).\n *\n * @example\n * const res = await client.glassdoor.jobs({ limit: 3, location: \"United States\", postedLimit: \"month\", query: \"software engineer\" });\n */\n jobs(\n input: GlassdoorJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GlassdoorJobsData>> {\n return this._core.run(\"glassdoor.jobs\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Autocomplete (google.autocomplete).\n */\nexport interface GoogleAutocompleteInput {\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code for the suggestions (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * The partial Google search query.\n */\n query: string;\n}\n\nexport interface GoogleAutocompleteSuggestion {\n /**\n * Suggested query text. Populated whenever the provider has data for the entity.\n */\n value: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Autocomplete (google.autocomplete).\n */\nexport interface GoogleAutocompleteData {\n /**\n * The partial query that was searched.\n */\n query: string;\n /**\n * Autocomplete suggestion records. Populated whenever the provider has data for the entity.\n */\n suggestions: GoogleAutocompleteSuggestion[];\n}\n\n/**\n * Input for Google Images (google.images).\n */\nexport interface GoogleImagesInput {\n /**\n * Toggle Google spelling autocorrect (default true). Set false to search the exact query without correction.\n */\n autocorrect?: boolean;\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * Maximum number of images to return (1-100, default 20). Requests for 10 results or fewer are billed at a lower rate than larger requests.\n * Range: minimum 1, maximum 100.\n * Default: 20.\n */\n limit?: number;\n /**\n * Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.\n */\n location?: string;\n /**\n * Image search query (e.g. golden gate bridge at sunset).\n */\n query: string;\n /**\n * Restrict results to a recent time window: 1h, 1d, 7d, 1y, or all. Default all (no time restriction).\n */\n timeframe?: string;\n}\n\nexport interface GoogleImagesItem {\n /**\n * Full image height in pixels.\n */\n height?: number;\n /**\n * Host domain of the page the image appears on. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n source?: string;\n /**\n * URL of the page the image appears on. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n sourceUrl?: string;\n /**\n * URL to a thumbnail of the image.\n */\n thumbnailUrl?: string;\n /**\n * Image result title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Direct URL to the full-size image. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Full image width in pixels.\n */\n width?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Images (google.images).\n */\nexport interface GoogleImagesData {\n /**\n * Image result records: image URL, dimensions, title, and the source page it appears on. Populated whenever the provider has data for the entity.\n */\n items: GoogleImagesItem[];\n}\n\n/**\n * Input for Google Lens (google.lens).\n */\nexport interface GoogleLensInput {\n /**\n * Public URL of the image to search with.\n * Format: uri.\n */\n url: string;\n}\n\nexport interface GoogleLensResult {\n /**\n * Matched image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * URL to the matching web page. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n link: string;\n /**\n * Source site name.\n */\n source?: string;\n /**\n * Thumbnail image URL for the match.\n * Format: uri.\n */\n thumbnailUrl?: string;\n /**\n * Title of the matching web page. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Lens (google.lens).\n */\nexport interface GoogleLensData {\n /**\n * Visual match result records. Populated whenever the provider has data for the entity.\n */\n results: GoogleLensResult[];\n /**\n * The input image URL that was searched.\n */\n url: string;\n}\n\n/**\n * Input for Google News (google.news).\n */\nexport interface GoogleNewsInput {\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * Requested article count (1-20, default 20). Google News returns its latest matching articles and may return more or fewer than requested. Price is flat per request.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.\n */\n location?: string;\n /**\n * News search query; supports operators like '-', 'OR', and 'site:' (e.g. bitcoin site:cnn.com).\n */\n query: string;\n /**\n * Time window for results: 1h, 1d, 7d, 1y, or all (e.g. 1d).\n * Default: 7d.\n */\n timeframe?: string;\n}\n\nexport interface GoogleNewsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Article snippet when available.\n */\n snippet?: string;\n /**\n * Publisher name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n source?: string;\n /**\n * Article headline. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Article link. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google News (google.news).\n */\nexport interface GoogleNewsData {\n /**\n * Article records: headline, source name, article link, and publish time. Populated whenever the provider has data for the entity.\n */\n items: GoogleNewsItem[];\n}\n\n/**\n * Input for Google Patents (google.patents).\n */\nexport interface GooglePatentsInput {\n /**\n * The Google Patents search query.\n */\n query: string;\n}\n\nexport interface GooglePatentsResult {\n /**\n * Patent assignee.\n */\n assignee?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n filedUtc?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n grantedUtc?: number;\n /**\n * First patent figure thumbnail image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Named inventor or inventors.\n */\n inventor?: string;\n /**\n * URL to the patent. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n link: string;\n /**\n * URL to an available patent PDF.\n * Format: uri.\n */\n pdfUrl?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n priorityUtc?: number;\n /**\n * Patent publication number (e.g. US11303135B2). Populated whenever the provider has data for the entity.\n */\n publicationNumber: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n publishedUtc?: number;\n /**\n * Short patent description snippet.\n */\n snippet?: string;\n /**\n * Patent title. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Patents (google.patents).\n */\nexport interface GooglePatentsData {\n /**\n * The query that was searched.\n */\n query: string;\n /**\n * Patent result records.\n */\n results: GooglePatentsResult[];\n}\n\n/**\n * Input for Google Scholar (google.scholar).\n */\nexport interface GoogleScholarInput {\n /**\n * The Google Scholar search query.\n */\n query: string;\n}\n\nexport interface GoogleScholarResult {\n /**\n * Number of citations reported by Google Scholar.\n */\n citedBy?: number;\n /**\n * Result identifier.\n */\n id?: string;\n /**\n * URL to the paper. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n link: string;\n /**\n * URL to an available PDF.\n * Format: uri.\n */\n pdfUrl?: string;\n /**\n * Authors, venue, and publication year.\n */\n publicationInfo?: string;\n /**\n * Short paper description snippet.\n */\n snippet?: string;\n /**\n * Paper title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Publication year.\n */\n year?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Scholar (google.scholar).\n */\nexport interface GoogleScholarData {\n /**\n * The query that was searched.\n */\n query: string;\n /**\n * Academic paper result records.\n */\n results: GoogleScholarResult[];\n}\n\n/**\n * Input for Google Search (google.search).\n */\nexport interface GoogleSearchInput {\n /**\n * Toggle Google spelling autocorrect (default true). Set false to search the exact query without correction.\n */\n autocorrect?: boolean;\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * Maximum number of organic results to return (1-100, default 10). Google may return fewer if the query is narrow. Price is flat per request.\n * Range: minimum 1, maximum 100.\n * Default: 10.\n */\n limit?: number;\n /**\n * Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.\n */\n location?: string;\n /**\n * The Google search query.\n */\n query: string;\n /**\n * Restrict results to a recent time window: 1h, 1d, 7d, 1y, or all. Default all (no time restriction).\n */\n timeframe?: string;\n}\n\nexport interface GoogleSearchResult {\n /**\n * Populated whenever the provider has data for the entity.\n */\n link: string;\n position: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n snippet: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Search (google.search).\n */\nexport interface GoogleSearchData {\n query: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n results: GoogleSearchResult[];\n}\n\n/**\n * Input for Google Videos (google.videos).\n */\nexport interface GoogleVideosInput {\n /**\n * Toggle Google spelling autocorrect (default true). Set false to search the exact query without correction.\n */\n autocorrect?: boolean;\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.\n */\n location?: string;\n /**\n * The video search query.\n */\n query: string;\n /**\n * Restrict results to a recent time window: 1h, 1d, 7d, 1y, or all. Default all (no time restriction).\n */\n timeframe?: string;\n}\n\nexport interface GoogleVideosResult {\n /**\n * Thumbnail image URL for the video.\n * Format: uri.\n */\n image?: string;\n /**\n * URL to the video. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n link: string;\n /**\n * 1-based rank in the result list.\n */\n position?: number;\n /**\n * Short description snippet.\n */\n snippet?: string;\n /**\n * Host platform (e.g. YouTube, Vimeo).\n */\n source?: string;\n /**\n * Video title. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Videos (google.videos).\n */\nexport interface GoogleVideosData {\n /**\n * The query that was searched.\n */\n query: string;\n /**\n * Video result records. Populated whenever the provider has data for the entity.\n */\n results: GoogleVideosResult[];\n}\n\n/**\n * Typed methods for the google platform. Attached to the AnyAPI client as\n * `client.google`.\n */\nexport class GoogleNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Autocomplete\n *\n * Get Google search autocomplete suggestions for a partial query (keyword ideas).\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.autocomplete({ query: \"best coff\" });\n */\n autocomplete(\n input: GoogleAutocompleteInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAutocompleteData>> {\n return this._core.run(\"google.autocomplete\", input, options);\n }\n\n /**\n * Google Images\n *\n * Run a Google Images search and get structured results: image URLs, dimensions, titles, and source pages.\n *\n * Price: $0.00099 per request plus $0.00009 per result (maximum $0.00198).\n *\n * @example\n * const res = await client.google.images({ query: \"golden retriever\", gl: \"us\", hl: \"en\", limit: 5 });\n */\n images(\n input: GoogleImagesInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleImagesData>> {\n return this._core.run(\"google.images\", input, options);\n }\n\n /**\n * Google Lens\n *\n * Reverse image search: find web pages and visual matches for an image URL.\n *\n * Price: $0.00297 per request.\n *\n * @example\n * const res = await client.google.lens({ url: \"https://i.imgur.com/HBrB8p0.png\" });\n */\n lens(\n input: GoogleLensInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleLensData>> {\n return this._core.run(\"google.lens\", input, options);\n }\n\n /**\n * Google News\n *\n * Search Google News by keyword and get fresh articles (headlines, sources, links, and publish times) as clean JSON.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.news({ query: \"openai\", gl: \"us\", hl: \"en\" });\n */\n news(\n input: GoogleNewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleNewsData>> {\n return this._core.run(\"google.news\", input, options);\n }\n\n /**\n * Google Patents\n *\n * Search Google Patents with title, patent number, inventor, assignee, key dates, and PDF link.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.patents({ query: \"wireless charging\" });\n */\n patents(\n input: GooglePatentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GooglePatentsData>> {\n return this._core.run(\"google.patents\", input, options);\n }\n\n /**\n * Google Scholar\n *\n * Search Google Scholar for academic papers with title, authors, citation count, and PDF link.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.scholar({ query: \"attention is all you need\" });\n */\n scholar(\n input: GoogleScholarInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleScholarData>> {\n return this._core.run(\"google.scholar\", input, options);\n }\n\n /**\n * Google Search\n *\n * Run a Google web search and get the organic results (title, link, snippet, position) as clean JSON.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.search({ query: \"best coffee maker\", gl: \"us\", hl: \"en\", limit: 10 });\n */\n search(\n input: GoogleSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleSearchData>> {\n return this._core.run(\"google.search\", input, options);\n }\n\n /**\n * Google Videos\n *\n * Search Google for video results (YouTube and others) with title, link, thumbnail, and source.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.videos({ query: \"lofi hip hop\", gl: \"us\", hl: \"en\" });\n */\n videos(\n input: GoogleVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleVideosData>> {\n return this._core.run(\"google.videos\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Google Ads Ad Details (google_ads.ad_details).\n */\nexport interface GoogleAdsAdDetailsInput {\n /**\n * Google Ads Transparency Center creative URL (e.g. \"https://adstransparency.google.com/advertiser/AR.../creative/CR...\").\n */\n url: string;\n}\n\nexport interface GoogleAdsAdDetailsVariation {\n allText: string;\n description: string;\n destinationUrl: string;\n headline: string;\n imageUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Ads Ad Details (google_ads.ad_details).\n */\nexport interface GoogleAdsAdDetailsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n creativeId: string;\n /**\n * ISO 8601 date.\n */\n firstShown: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n format: string;\n impressionsMax: number;\n impressionsMin: number;\n /**\n * ISO 8601 date.\n */\n lastShown: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n variations: GoogleAdsAdDetailsVariation[];\n}\n\n/**\n * Input for Google Ads Advertiser Search (google_ads.advertiser_search).\n */\nexport interface GoogleAdsAdvertiserSearchInput {\n /**\n * Advertiser name or keyword to search for (e.g. \"lululemon\").\n */\n query: string;\n /**\n * Two-letter country code to scope results (e.g. \"AU\", \"CA\"). Defaults to US.\n */\n region?: string;\n}\n\nexport interface GoogleAdsAdvertiserSearchAdvertiser {\n /**\n * Estimated number of ads for this advertiser/region.\n */\n adsEstimate: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Ads Advertiser Search (google_ads.advertiser_search).\n */\nexport interface GoogleAdsAdvertiserSearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertisers: GoogleAdsAdvertiserSearchAdvertiser[];\n}\n\n/**\n * Input for Google Ads Company Ads (google_ads.company_ads).\n */\nexport interface GoogleAdsCompanyAdsInput {\n /**\n * Advertiser ID. Provide either domain or advertiserId.\n */\n advertiserId?: string;\n /**\n * Opaque pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Company domain (e.g. \"lululemon.com\"). Provide either domain or advertiserId.\n */\n domain?: string;\n /**\n * Only return ads first shown on or before this date, format YYYY-MM-DD (e.g. 2024-12-31).\n */\n endDate?: string;\n /**\n * Ad format filter.\n * One of: text, image, video.\n */\n format?: \"text\" | \"image\" | \"video\";\n /**\n * Platform filter.\n * One of: google_maps, google_play, google_search, google_shopping, youtube.\n */\n platform?:\n | \"google_maps\"\n | \"google_play\"\n | \"google_search\"\n | \"google_shopping\"\n | \"youtube\";\n /**\n * Two-letter country code to scope results (e.g. \"US\", \"AU\").\n */\n region?: string;\n /**\n * Only return ads first shown on or after this date, format YYYY-MM-DD (e.g. 2024-01-01).\n */\n startDate?: string;\n /**\n * Search topic. \"political\" requires a region.\n * One of: all, political.\n */\n topic?: \"all\" | \"political\";\n}\n\nexport interface GoogleAdsCompanyAdsAd {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n creativeId: string;\n /**\n * ISO 8601 date.\n */\n firstShown: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n format: string;\n imageUrl: string;\n /**\n * ISO 8601 date.\n */\n lastShown: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Ads Company Ads (google_ads.company_ads).\n */\nexport interface GoogleAdsCompanyAdsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n ads: GoogleAdsCompanyAdsAd[];\n /**\n * Estimated total number of ads.\n */\n adsEstimate: number;\n nextCursor: string;\n}\n\n/**\n * Input for Google Ads Transparency (google_ads.search).\n */\nexport interface GoogleAdsSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * A Google Ads Transparency Center URL for a selected advertiser or domain (e.g. https://adstransparency.google.com/advertiser/AR01614014350098432001?region=US).\n */\n url: string;\n}\n\nexport interface GoogleAdsSearchItem {\n /**\n * Advertiser display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n advertiser?: string;\n /**\n * Google Ads advertiser identifier.\n */\n advertiserId?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the ad was first shown.\n */\n firstShownUtc?: number;\n /**\n * Ad format, e.g. TEXT, IMAGE, VIDEO.\n */\n format?: string;\n /**\n * Google Ads creative identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the ad was last shown.\n */\n lastShownUtc?: number;\n /**\n * Number of days the ad has been served.\n */\n numServedDays?: number;\n /**\n * URL to a rendered preview of the creative.\n */\n previewUrl?: string;\n /**\n * Ads Transparency Center URL for the creative. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Creative variations for the ad, each with image, headline, and body text where present.\n */\n variations?: GoogleAdsSearchVariation[];\n [extra: string]: unknown;\n}\n\nexport interface GoogleAdsSearchVariation {\n /**\n * Creative headline text.\n */\n headline?: string;\n /**\n * Creative image URL.\n */\n imageUrl?: string;\n /**\n * Creative body/description text.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Ads Transparency (google_ads.search).\n */\nexport interface GoogleAdsSearchData {\n /**\n * Ad records from the Transparency Center: advertiser, ad format, creative details, preview URL, and first/last shown dates. Populated whenever the provider has data for the entity.\n */\n items: GoogleAdsSearchItem[];\n}\n\n/**\n * Typed methods for the google_ads platform. Attached to the AnyAPI client as\n * `client.googleAds`.\n */\nexport class GoogleAdsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Ads Ad Details\n *\n * Look up a single Google Ads Transparency Center creative by URL and get its format, run dates, impression range, regions, and creative variations as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.googleAds.adDetails({ url: \"https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR10449491775734153217\" });\n */\n adDetails(\n input: GoogleAdsAdDetailsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAdsAdDetailsData>> {\n return this._core.run(\"google_ads.ad_details\", input, options);\n }\n\n /**\n * Google Ads Advertiser Search\n *\n * Search the Google Ads Transparency Center for advertisers by keyword and get matching advertiser IDs, regions, and estimated ad counts as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.googleAds.advertiserSearch({ query: \"lululemon\" });\n */\n advertiserSearch(\n input: GoogleAdsAdvertiserSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAdsAdvertiserSearchData>> {\n return this._core.run(\"google_ads.advertiser_search\", input, options);\n }\n\n /**\n * Google Ads Company Ads\n *\n * List the ads a company is running from the Google Ads Transparency Center by domain or advertiser ID (creative ID, format, ad URL, and first/last shown dates) with cursor pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.googleAds.companyAds({ domain: \"lululemon.com\" });\n */\n companyAds(\n input: GoogleAdsCompanyAdsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAdsCompanyAdsData>> {\n return this._core.run(\"google_ads.company_ads\", input, options);\n }\n\n /**\n * Iterate every result of Google Ads Company Ads across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterCompanyAds(\n input: GoogleAdsCompanyAdsInput,\n options?: RequestOptions,\n ): Paginator<GoogleAdsCompanyAdsAd, RunResult<GoogleAdsCompanyAdsData>> {\n return paginate<GoogleAdsCompanyAdsAd, RunResult<GoogleAdsCompanyAdsData>>(\n this._core,\n \"google_ads.company_ads\",\n input as unknown as Record<string, unknown>,\n \"ads\",\n false,\n options,\n );\n }\n\n /**\n * Google Ads Transparency\n *\n * Pull the ads an advertiser is currently running from the Google Ads Transparency Center (creative details, formats, and run dates) as clean JSON.\n *\n * Price: $0.00005 per request plus $0.0013 per result (maximum $0.02605).\n *\n * @example\n * const res = await client.googleAds.search({ url: \"https://adstransparency.google.com/?region=US&domain=nike.com\", limit: 3 });\n */\n search(\n input: GoogleAdsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAdsSearchData>> {\n return this._core.run(\"google_ads.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Finance Quote (google_finance.quote).\n */\nexport interface GoogleFinanceQuoteInput {\n /**\n * The symbol to quote. US stocks use a plain ticker (e.g. AAPL, TSLA); non-US stocks add a market suffix (e.g. VOW3.DE, BABA.HK, BARC.L); indices use a caret (e.g. ^GSPC, ^DJI); crypto and currencies use pair form (e.g. BTC-USD, EURUSD=X); mutual funds and futures use their symbol (e.g. VFIAX, ES=F). Common alternate forms are accepted and normalized (e.g. AAPL:NASDAQ, .DJI, BTC/USD). Exact symbols only, not a company-name search.\n */\n symbol: string;\n}\n\nexport interface GoogleFinanceQuoteItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n asOfUtc?: number;\n /**\n * Current ask price.\n */\n ask?: number;\n /**\n * Instrument class (e.g. EQUITY, ETF, CRYPTOCURRENCY, CURRENCY, INDEX, MUTUALFUND, FUTURE).\n */\n assetType?: string;\n /**\n * Average daily trading volume.\n */\n averageVolume?: number;\n /**\n * Current bid price.\n */\n bid?: number;\n /**\n * Absolute price change on the day, in the quote currency.\n */\n change?: number;\n /**\n * Percent price change on the day.\n */\n changePercent?: number;\n /**\n * ISO currency the quote is priced in (e.g. USD). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n currency?: string;\n /**\n * Highest price so far in the current session.\n */\n dayHigh?: number;\n /**\n * Lowest price so far in the current session.\n */\n dayLow?: number;\n /**\n * Exchange the instrument trades on (e.g. NasdaqGS). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n exchange?: string;\n /**\n * Highest price over the trailing 52 weeks.\n */\n fiftyTwoWeekHigh?: number;\n /**\n * Lowest price over the trailing 52 weeks.\n */\n fiftyTwoWeekLow?: number;\n /**\n * Market capitalization in the quote currency.\n */\n marketCap?: number;\n /**\n * Current market state (e.g. REGULAR, PRE, POST, CLOSED).\n */\n marketState?: string;\n /**\n * Instrument or company name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Opening price for the current session.\n */\n open?: number;\n /**\n * Previous session close price.\n */\n previousClose?: number;\n /**\n * Current price in the quote currency.\n */\n price: number;\n /**\n * Resolved ticker symbol for the quote. Populated whenever the provider has data for the entity.\n */\n symbol: string;\n /**\n * Traded volume for the current session.\n */\n volume?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Finance Quote (google_finance.quote).\n */\nexport interface GoogleFinanceQuoteData {\n /**\n * The quote for the requested symbol: name, current price, day change (absolute and percent), quote currency, exchange and market state, plus intraday and reference figures. Up to one element (empty when the symbol did not resolve). Populated whenever the provider has data for the entity.\n */\n items: GoogleFinanceQuoteItem[];\n}\n\n/**\n * Typed methods for the google_finance platform. Attached to the AnyAPI client as\n * `client.googleFinance`.\n */\nexport class GoogleFinanceNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Finance Quote\n *\n * Fetch a live quote for any stock, index, ETF, mutual fund, currency pair, or crypto symbol: name, current price, the absolute and percent change on the day, quote currency, exchange and market state, plus intraday and reference figures (open, day high/low, previous close, volume, market cap, and the 52-week range).\n *\n * Price: $0.0005 per request plus $0.0015 per result (maximum $0.002).\n *\n * @example\n * const res = await client.googleFinance.quote({ symbol: \"AAPL:NASDAQ\" });\n */\n quote(\n input: GoogleFinanceQuoteInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleFinanceQuoteData>> {\n return this._core.run(\"google_finance.quote\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Shopping Search (google_shopping.search).\n */\nexport interface GoogleShoppingSearchInput {\n /**\n * Only return products in this condition (e.g. \"USED\"); defaults to any condition.\n * One of: ANY, NEW, USED, REFURBISHED.\n */\n condition?: \"ANY\" | \"NEW\" | \"USED\" | \"REFURBISHED\";\n /**\n * ISO 3166-1 alpha-2 country code for localized results (e.g. \"us\", \"gb\", \"de\").\n * Default: us.\n */\n country?: string;\n /**\n * ISO 639-1 language code for results (e.g. \"en\", \"es\", \"fr\").\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * Product name, brand, or keywords to search for (e.g. \"Nike running shoes\").\n */\n query: string;\n /**\n * Sort order for results (e.g. \"LOWEST_PRICE\"); defaults to relevance.\n * One of: BEST_MATCH, LOWEST_PRICE, HIGHEST_PRICE, TOP_RATED.\n */\n sortBy?: \"BEST_MATCH\" | \"LOWEST_PRICE\" | \"HIGHEST_PRICE\" | \"TOP_RATED\";\n}\n\nexport interface GoogleShoppingSearchItem {\n /**\n * Product brand; empty when not reported.\n */\n brand?: string;\n /**\n * Price currency code, e.g. \"USD\"; empty when not reported.\n */\n currency?: string;\n /**\n * Discount label when on sale, e.g. \"23% OFF\"; empty otherwise.\n */\n discountPercent?: string;\n /**\n * Primary product image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Pre-discount list price as a numeric amount; 0 when not on sale or reported only as text.\n */\n listPrice?: number;\n /**\n * Pre-discount list price as displayed, e.g. \"$130\"; empty when not applicable.\n */\n listPriceText?: string;\n /**\n * Current price as a numeric amount; 0 when the lane reports price only as text (see priceText).\n */\n price?: number;\n /**\n * Current price as displayed, e.g. \"$99.99\"; empty when the lane reports a numeric price instead.\n */\n priceText?: string;\n /**\n * Provider product identifier.\n */\n productId?: string;\n /**\n * Average product rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Number of ratings / reviews; 0 when none reported.\n */\n reviewsCount?: number;\n /**\n * Store / seller name offering the product, e.g. \"Target\".\n */\n seller?: string;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Google Shopping product page URL (query retained; it encodes the product identity). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Shopping Search (google_shopping.search).\n */\nexport interface GoogleShoppingSearchData {\n /**\n * Matching Google Shopping product offers. Populated whenever the provider has data for the entity.\n */\n items: GoogleShoppingSearchItem[];\n}\n\n/**\n * Typed methods for the google_shopping platform. Attached to the AnyAPI client as\n * `client.googleShopping`.\n */\nexport class GoogleShoppingNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Shopping Search\n *\n * Search Google Shopping by keyword and get up to 10 product offers (title, price, store, rating, and link), localized by country and language.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.googleShopping.search({ query: \"airpods\", limit: 10 });\n */\n search(\n input: GoogleShoppingSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleShoppingSearchData>> {\n return this._core.run(\"google_shopping.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Hacker News Profile (hackernews.profile).\n */\nexport interface HackernewsProfileInput {\n /**\n * Hacker News username, e.g. \"pg\".\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Hacker News Profile (hackernews.profile).\n */\nexport interface HackernewsProfileData {\n bio: string;\n karma: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Hacker News Search (hackernews.search).\n */\nexport interface HackernewsSearchInput {\n /**\n * Search keyword, e.g. \"ai\".\n */\n query: string;\n /**\n * Optional result filter, e.g. \"story\" or \"comment\".\n */\n tags?: string;\n}\n\nexport interface HackernewsSearchResult {\n /**\n * Submitting user's username. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Number of comments on the story.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Hacker News item id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Story score (upvotes).\n */\n points: number;\n /**\n * Story title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Story link.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Hacker News Search (hackernews.search).\n */\nexport interface HackernewsSearchData {\n /**\n * Matching Hacker News stories. Populated whenever the provider has data for the entity.\n */\n results: HackernewsSearchResult[];\n}\n\n/**\n * Input for Hacker News Story (hackernews.story).\n */\nexport interface HackernewsStoryInput {\n /**\n * Hacker News story id, e.g. \"47340079\".\n */\n id: string;\n}\n\n/**\n * The `data` payload of Hacker News Story (hackernews.story).\n */\nexport interface HackernewsStoryData {\n /**\n * Submitting user's username. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Number of comments on the story.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Story score (upvotes).\n */\n points: number;\n /**\n * Story title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Story link.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Hacker News Story Comments (hackernews.story_comments).\n */\nexport interface HackernewsStoryCommentsInput {\n /**\n * Hacker News story id, e.g. \"47340079\".\n */\n id: string;\n}\n\nexport interface HackernewsStoryCommentsComment {\n /**\n * Commenting user's username. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Hacker News comment id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Id of the parent item (story or comment) this reply belongs to.\n */\n parentId: string;\n /**\n * Comment body text.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Hacker News Story Comments (hackernews.story_comments).\n */\nexport interface HackernewsStoryCommentsData {\n /**\n * Comments on the story. Populated whenever the provider has data for the entity.\n */\n comments: HackernewsStoryCommentsComment[];\n}\n\n/**\n * Typed methods for the hackernews platform. Attached to the AnyAPI client as\n * `client.hackernews`.\n */\nexport class HackernewsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Hacker News Profile\n *\n * Get a Hacker News user's public profile by username - karma, bio, and account details as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.hackernews.profile({ handle: \"pg\" });\n */\n profile(\n input: HackernewsProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<HackernewsProfileData>> {\n return this._core.run(\"hackernews.profile\", input, options);\n }\n\n /**\n * Hacker News Search\n *\n * Search Hacker News by keyword - matching stories with title, link, author, points, and comment count as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.hackernews.search({ query: \"ai\" });\n */\n search(\n input: HackernewsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<HackernewsSearchData>> {\n return this._core.run(\"hackernews.search\", input, options);\n }\n\n /**\n * Hacker News Story\n *\n * Get a Hacker News story by id - title, link, author, points, and comment count as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.hackernews.story({ id: \"47340079\" });\n */\n story(\n input: HackernewsStoryInput,\n options?: RequestOptions,\n ): Promise<RunResult<HackernewsStoryData>> {\n return this._core.run(\"hackernews.story\", input, options);\n }\n\n /**\n * Hacker News Story Comments\n *\n * List the comments on a Hacker News story by id - text, author, and timestamp as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.hackernews.storyComments({ id: \"47340079\" });\n */\n storyComments(\n input: HackernewsStoryCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<HackernewsStoryCommentsData>> {\n return this._core.run(\"hackernews.story_comments\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Indeed Jobs (indeed.jobs).\n */\nexport interface IndeedJobsInput {\n /**\n * Two-letter country site code (e.g. us, uk, de).\n * Default: us.\n */\n country?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * City, state, zip, or 'remote'.\n */\n location?: string;\n /**\n * Only return jobs posted within this window: 24h (past day) or week (past 7 days). Omit for all dates.\n * One of: 24h, week.\n */\n postedLimit?: \"24h\" | \"week\";\n /**\n * Job search keywords (e.g. software engineer).\n */\n query: string;\n}\n\nexport interface IndeedJobsItem {\n city?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n company?: string;\n country?: string;\n /**\n * ISO 8601 publish date.\n */\n datePublished?: string;\n /**\n * Plain-text job description.\n */\n description?: string;\n expired?: boolean;\n /**\n * Indeed job key. Populated whenever the provider has data for the entity.\n */\n jobId: string;\n postalCode?: string;\n salaryCurrency?: string;\n salaryMax?: number;\n salaryMin?: number;\n /**\n * Salary period, e.g. YEAR or HOUR.\n */\n salaryUnit?: string;\n state?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Indeed job posting URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Indeed Jobs (indeed.jobs).\n */\nexport interface IndeedJobsData {\n /**\n * Job listing records: title, employer, location, salary when available, job type, posting date, and description. Populated whenever the provider has data for the entity.\n */\n items: IndeedJobsItem[];\n}\n\n/**\n * Typed methods for the indeed platform. Attached to the AnyAPI client as\n * `client.indeed`.\n */\nexport class IndeedNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Indeed Jobs\n *\n * Search Indeed job listings by keyword, location, and country, with up to 20 normalized job records per request.\n *\n * Price: $0.0008 per request plus $0.00008 per result (maximum $0.0024).\n *\n * @example\n * const res = await client.indeed.jobs({ query: \"data analyst\", limit: 3, location: \"Austin, TX\" });\n */\n jobs(\n input: IndeedJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<IndeedJobsData>> {\n return this._core.run(\"indeed.jobs\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Instagram Reels by Audio (instagram.audio_reels).\n */\nexport interface InstagramAudioReelsInput {\n /**\n * Audio identifier from the Instagram audio page URL.\n */\n audioId: string;\n /**\n * Pagination cursor returned by a previous response.\n */\n cursor?: string;\n}\n\nexport interface InstagramAudioReelsReel {\n code: string;\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n plays: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Reels by Audio (instagram.audio_reels).\n */\nexport interface InstagramAudioReelsData {\n hasMore: boolean;\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n reels: InstagramAudioReelsReel[];\n}\n\n/**\n * Input for Instagram Basic Profile (instagram.basic_profile).\n */\nexport interface InstagramBasicProfileInput {\n /**\n * Instagram numeric user id.\n */\n userId: string;\n}\n\n/**\n * The `data` payload of Instagram Basic Profile (instagram.basic_profile).\n */\nexport interface InstagramBasicProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n externalUrl: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n private: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Profile Embed (instagram.embed).\n */\nexport interface InstagramEmbedInput {\n /**\n * Instagram username without the leading @.\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Instagram Profile Embed (instagram.embed).\n */\nexport interface InstagramEmbedData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n html: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Followers (instagram.followers).\n */\nexport interface InstagramFollowersInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of followers.\n */\n cursor?: string;\n /**\n * How many followers you want (50-1000). By default results come back in cheap pages of up to ~50: follow the response's nextCursor for more. With requireSinglePage true, up to this many are returned in one (pricier) call.\n * Range: minimum 50, maximum 1000.\n */\n limit?: number;\n /**\n * Set true to get up to limit followers in a single response instead of cheap pages, served by a bulk provider at a higher price.\n */\n requireSinglePage?: boolean;\n /**\n * The Instagram username, user ID, or profile URL whose followers to list (e.g. natgeo).\n */\n username: string;\n}\n\nexport interface InstagramFollowersItem {\n /**\n * The follower's username, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * The follower's numeric Instagram user ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the follower's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The follower's display name. Empty when the account has none.\n */\n name?: string;\n /**\n * Whether the follower's account is private.\n */\n private?: boolean;\n /**\n * Canonical URL of the follower's profile, with tracking query params stripped. Empty when the lane does not return it.\n */\n url?: string;\n /**\n * Whether the follower's account is verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Followers (instagram.followers).\n */\nexport interface InstagramFollowersData {\n /**\n * Follower records for the target account. Populated whenever the provider has data for the entity.\n */\n items: InstagramFollowersItem[];\n /**\n * Opaque cursor for the next page of followers, or null/empty when this lane has no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for Instagram Following (instagram.following).\n */\nexport interface InstagramFollowingInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page.\n */\n cursor?: string;\n /**\n * How many accounts you want (50-1000). By default results come back in cheap pages of up to ~50: follow the response's nextCursor for more. With requireSinglePage true, up to this many are returned in one (pricier) call.\n * Range: minimum 50, maximum 1000.\n */\n limit?: number;\n /**\n * Set true to get up to limit accounts in a single response instead of cheap pages, served by a bulk provider at a higher price.\n */\n requireSinglePage?: boolean;\n /**\n * The Instagram username, user ID, or profile URL whose following list to fetch (e.g. natgeo).\n */\n username: string;\n}\n\nexport interface InstagramFollowingItem {\n /**\n * The followed account's username, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * The followed account's numeric Instagram user ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the followed account's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The followed account's display name. Empty when the account has none.\n */\n name?: string;\n /**\n * Whether the followed account is private.\n */\n private?: boolean;\n /**\n * Canonical URL of the followed account's profile, with tracking query params stripped. Empty when the lane does not return it.\n */\n url?: string;\n /**\n * Whether the followed account is verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Following (instagram.following).\n */\nexport interface InstagramFollowingData {\n /**\n * Records for the accounts the target user follows. Populated whenever the provider has data for the entity.\n */\n items: InstagramFollowingItem[];\n /**\n * Opaque cursor for the next page of results, or null/empty when this lane has no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for Instagram Hashtag Analytics (instagram.hashtag_analytics).\n */\nexport interface InstagramHashtagAnalyticsInput {\n /**\n * The Instagram hashtag to analyze, with or without the # symbol (e.g. streetphotography).\n */\n hashtag: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n}\n\nexport interface InstagramHashtagAnalyticsItem {\n difficulty?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n id?: string;\n /**\n * Hashtag (without #). Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Total posts using the hashtag.\n */\n postsCount?: number;\n /**\n * Human-formatted post count (e.g. 793.54 M). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n postsFormatted?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Hashtag Analytics (instagram.hashtag_analytics).\n */\nexport interface InstagramHashtagAnalyticsData {\n /**\n * Hashtag analytics records: hashtag name, total post count, and related hashtag suggestions. Populated whenever the provider has data for the entity.\n */\n items: InstagramHashtagAnalyticsItem[];\n}\n\n/**\n * Input for Instagram Highlight Detail (instagram.highlight_detail).\n */\nexport interface InstagramHighlightDetailInput {\n /**\n * The id of the highlight to retrieve details for.\n */\n id: string;\n}\n\n/**\n * The `data` payload of Instagram Highlight Detail (instagram.highlight_detail).\n */\nexport interface InstagramHighlightDetailData {\n /**\n * URL of the highlight cover image. Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Highlight identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of media items in the highlight.\n */\n mediaCount: number;\n /**\n * Handle of the account that owns the highlight. Populated whenever the provider has data for the entity.\n */\n ownerHandle: string;\n /**\n * Highlight title. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Media Transcript (instagram.media_transcript).\n */\nexport interface InstagramMediaTranscriptInput {\n /**\n * Instagram post or reel URL.\n */\n url: string;\n}\n\nexport interface InstagramMediaTranscriptTranscript {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Media Transcript (instagram.media_transcript).\n */\nexport interface InstagramMediaTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n transcripts: InstagramMediaTranscriptTranscript[];\n}\n\n/**\n * Input for Instagram Post (instagram.post).\n */\nexport interface InstagramPostInput {\n /**\n * Full Instagram post or reel URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Instagram Post (instagram.post).\n */\nexport interface InstagramPostData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n owner: string;\n shortcode: string;\n type: string;\n videoUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Post Comments (instagram.post_comments).\n */\nexport interface InstagramPostCommentsInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Full Instagram post or reel URL.\n */\n url: string;\n}\n\nexport interface InstagramPostCommentsComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Post Comments (instagram.post_comments).\n */\nexport interface InstagramPostCommentsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n comments: InstagramPostCommentsComment[];\n}\n\n/**\n * Input for Instagram Profile (instagram.profile).\n */\nexport interface InstagramProfileInput {\n /**\n * Instagram username without the leading @.\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Instagram Profile (instagram.profile).\n */\nexport interface InstagramProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n posts: number;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Reel Transcript (instagram.reel_transcript).\n */\nexport interface InstagramReelTranscriptInput {\n /**\n * The URL of a public Instagram reel or video post with spoken audio (e.g. https://www.instagram.com/reel/C8yKXdRxKqK/).\n */\n url: string;\n /**\n * Set true to include a precise timestamp for every word in the transcript (e.g. true).\n * Default: false.\n */\n wordTimestamps?: boolean;\n}\n\nexport interface InstagramReelTranscriptItem {\n /**\n * The reel's caption text. Empty when the reel has no caption.\n */\n caption?: string;\n /**\n * Number of comments on the reel.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Video duration in seconds.\n */\n durationSeconds?: number;\n /**\n * The reel's numeric Instagram media ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Detected spoken language (ISO 639-1 code, e.g. \"en\"). Empty when the upstream omits it.\n */\n language?: string;\n /**\n * Number of likes on the reel.\n */\n likeCount?: number;\n /**\n * Username of the reel's owner, without the @ prefix. Empty when the upstream omits it.\n */\n ownerUsername?: string;\n /**\n * Time-aligned transcript segments, each with its text and start/end offsets in seconds.\n */\n segments?: InstagramReelTranscriptSegment[];\n /**\n * The full speech transcript. Empty when the reel has no detectable spoken audio. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the reel, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Number of video views.\n */\n viewCount?: number;\n [extra: string]: unknown;\n}\n\nexport interface InstagramReelTranscriptSegment {\n /**\n * Segment end offset in seconds from the start of the video.\n */\n end?: number;\n /**\n * Segment start offset in seconds from the start of the video.\n */\n start?: number;\n /**\n * The segment's transcribed text.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Reel Transcript (instagram.reel_transcript).\n */\nexport interface InstagramReelTranscriptData {\n /**\n * Transcript record for the requested reel (one item), with the full transcript text, timed segments, and source video metadata. Populated whenever the provider has data for the entity.\n */\n items: InstagramReelTranscriptItem[];\n}\n\n/**\n * Input for Instagram Reels Search (instagram.reels_search).\n */\nexport interface InstagramReelsSearchInput {\n /**\n * Restrict results to reels posted within this window.\n * One of: last-hour, last-day, last-week, last-month, last-year.\n */\n datePosted?:\n \"last-hour\" | \"last-day\" | \"last-week\" | \"last-month\" | \"last-year\";\n /**\n * 1-based results page.\n * Range: minimum 1.\n * Default: 1.\n */\n page?: number;\n /**\n * Search keyword (e.g. \"crossfit\").\n */\n query: string;\n}\n\nexport interface InstagramReelsSearchReel {\n /**\n * Reel caption text. Populated whenever the provider has data for the entity.\n */\n caption: string;\n /**\n * Number of comments on the reel.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Reel duration in seconds.\n */\n durationSeconds: number;\n /**\n * Follower count of the posting account.\n */\n followers: number;\n /**\n * Number of likes on the reel.\n */\n likes: number;\n /**\n * True when the reel is a paid partnership.\n */\n paidPartnership: boolean;\n /**\n * Number of plays of the reel.\n */\n plays: number;\n /**\n * Instagram media shortcode. Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n /**\n * URL of the reel thumbnail image. Populated whenever the provider has data for the entity.\n */\n thumbnail: string;\n /**\n * Canonical URL of the reel. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Username of the account that posted the reel. Populated whenever the provider has data for the entity.\n */\n username: string;\n /**\n * True when the posting account is verified.\n */\n verified: boolean;\n /**\n * Number of views on the reel.\n */\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Reels Search (instagram.reels_search).\n */\nexport interface InstagramReelsSearchData {\n /**\n * Reels matching the search. Populated whenever the provider has data for the entity.\n */\n reels: InstagramReelsSearchReel[];\n}\n\n/**\n * Input for Instagram Search (instagram.search).\n */\nexport interface InstagramSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Keyword to search Instagram for; one or more words without special punctuation (e.g. coffee roastery).\n */\n query: string;\n /**\n * What to search for: user profiles, hashtags, or places (e.g. hashtag).\n * One of: user, hashtag, place.\n * Default: user.\n */\n type?: \"user\" | \"hashtag\" | \"place\";\n}\n\nexport interface InstagramSearchItem {\n /**\n * The account's bio text. Empty when the account has none.\n */\n bio?: string;\n /**\n * The account's follower count. May be 0 when the lane does not return it in search results.\n */\n followers?: number;\n /**\n * The number of accounts the account follows. May be 0 when the lane does not return it in search results.\n */\n following?: number;\n /**\n * The account's username, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * The account's numeric Instagram user ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the account's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The account's display name. Empty when the account has none.\n */\n name?: string;\n /**\n * The account's post count. May be 0 when the lane does not return it in search results.\n */\n postsCount?: number;\n /**\n * Canonical URL of the account's profile, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Whether the account is verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Search (instagram.search).\n */\nexport interface InstagramSearchData {\n /**\n * Matching Instagram profile records for the query. Populated whenever the provider has data for the entity.\n */\n items: InstagramSearchItem[];\n}\n\n/**\n * Input for Instagram Hashtag Search (instagram.search_hashtag).\n */\nexport interface InstagramSearchHashtagInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Restrict results to posts published within this window.\n * One of: last-hour, last-day, last-week, last-month, last-year.\n */\n datePosted?:\n \"last-hour\" | \"last-day\" | \"last-week\" | \"last-month\" | \"last-year\";\n /**\n * Hashtag to search, without the leading #.\n */\n hashtag: string;\n /**\n * Filter by media type (e.g. all, photo, video, reel).\n */\n mediaType?: string;\n}\n\nexport interface InstagramSearchHashtagPost {\n caption: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Hashtag Search (instagram.search_hashtag).\n */\nexport interface InstagramSearchHashtagData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: InstagramSearchHashtagPost[];\n}\n\n/**\n * Input for Instagram Profile Search (instagram.search_profiles).\n */\nexport interface InstagramSearchProfilesInput {\n /**\n * Pagination cursor returned by a previous response.\n */\n cursor?: string;\n /**\n * Bio or caption keyword/phrase to search for.\n */\n query: string;\n}\n\nexport interface InstagramSearchProfilesProfile {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n posts: number;\n private: boolean;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Profile Search (instagram.search_profiles).\n */\nexport interface InstagramSearchProfilesData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n profiles: InstagramSearchProfilesProfile[];\n}\n\n/**\n * Input for Instagram Stories (full) (instagram.stories_full).\n */\nexport interface InstagramStoriesFullInput {\n /**\n * Instagram usernames/handles (without the @). A flat run fee is shared across the batch, so request several at once to lower the cost per account. Up to 100 usernames per request.\n */\n usernames: string[];\n}\n\nexport interface InstagramStoriesFullItem {\n /**\n * Story caption text, when present.\n */\n caption?: string;\n /**\n * Instagram media shortcode.\n */\n code?: string;\n /**\n * Posting time (Unix seconds).\n */\n createdUtc?: number;\n /**\n * Expiry time, 24h after posting (Unix seconds).\n */\n expiresAt?: number;\n /**\n * Media pixel height.\n */\n height?: number;\n /**\n * Story identifier.\n */\n id: string;\n /**\n * Direct URL to the story image (highest resolution).\n */\n imageUrl?: string;\n /**\n * Media type: 1 = image, 2 = video.\n */\n mediaType?: number;\n /**\n * Owner username. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n username?: string;\n /**\n * Direct URL to the story video, when the story is a video.\n */\n videoUrl?: string;\n /**\n * Media pixel width.\n */\n width?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Stories (full) (instagram.stories_full).\n */\nexport interface InstagramStoriesFullData {\n /**\n * Story records across the requested accounts, each with full media, type, dimensions, posting + expiry time, and caption. Populated whenever the provider has data for the entity.\n */\n items: InstagramStoriesFullItem[];\n}\n\n/**\n * Input for Instagram Stories (basic) (instagram.stories_thin).\n */\nexport interface InstagramStoriesThinInput {\n /**\n * Instagram username/handle to fetch currently live stories for (without the @).\n */\n username: string;\n}\n\nexport interface InstagramStoriesThinItem {\n /**\n * Posting time (Unix seconds).\n */\n createdUtc?: number;\n /**\n * Story identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Direct URL to the story image or video. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n mediaUrl?: string;\n /**\n * Public link to the story. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n permalink?: string;\n /**\n * Owner username. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n username?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Stories (basic) (instagram.stories_thin).\n */\nexport interface InstagramStoriesThinData {\n /**\n * The account's currently live stories, each with its media URL, owner, posting time, and permalink. Populated whenever the provider has data for the entity.\n */\n items: InstagramStoriesThinItem[];\n}\n\n/**\n * Input for Instagram Trending Reels (instagram.trending_reels).\n */\nexport interface InstagramTrendingReelsInput {}\n\nexport interface InstagramTrendingReelsReel {\n caption: string;\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n plays: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Trending Reels (instagram.trending_reels).\n */\nexport interface InstagramTrendingReelsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n reels: InstagramTrendingReelsReel[];\n}\n\n/**\n * Input for Instagram User Highlights (instagram.user_highlights).\n */\nexport interface InstagramUserHighlightsInput {\n /**\n * Instagram username without the leading @.\n */\n handle: string;\n /**\n * Instagram numeric user id (optional, faster than handle).\n */\n userId?: string;\n}\n\nexport interface InstagramUserHighlightsHighlight {\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n ownerHandle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram User Highlights (instagram.user_highlights).\n */\nexport interface InstagramUserHighlightsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n highlights: InstagramUserHighlightsHighlight[];\n}\n\n/**\n * Input for Instagram User Posts (instagram.user_posts).\n */\nexport interface InstagramUserPostsInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Instagram username without the leading @.\n */\n handle: string;\n}\n\nexport interface InstagramUserPostsPost {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram User Posts (instagram.user_posts).\n */\nexport interface InstagramUserPostsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: InstagramUserPostsPost[];\n}\n\n/**\n * Input for Instagram User Reels (instagram.user_reels).\n */\nexport interface InstagramUserReelsInput {\n /**\n * Pagination cursor (max_id) from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Instagram handle.\n */\n handle?: string;\n /**\n * Instagram user id (faster than handle when known).\n */\n userId?: string;\n}\n\nexport interface InstagramUserReelsReel {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram User Reels (instagram.user_reels).\n */\nexport interface InstagramUserReelsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n reels: InstagramUserReelsReel[];\n}\n\n/**\n * Typed methods for the instagram platform. Attached to the AnyAPI client as\n * `client.instagram`.\n */\nexport class InstagramNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Instagram Reels by Audio\n *\n * List Instagram reels that use a given audio track by audio id, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.audioReels({ audioId: \"1392969992841787\" });\n */\n audioReels(\n input: InstagramAudioReelsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramAudioReelsData>> {\n return this._core.run(\"instagram.audio_reels\", input, options);\n }\n\n /**\n * Iterate every result of Instagram Reels by Audio across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterAudioReels(\n input: InstagramAudioReelsInput,\n options?: RequestOptions,\n ): Paginator<InstagramAudioReelsReel, RunResult<InstagramAudioReelsData>> {\n return paginate<\n InstagramAudioReelsReel,\n RunResult<InstagramAudioReelsData>\n >(\n this._core,\n \"instagram.audio_reels\",\n input as unknown as Record<string, unknown>,\n \"reels\",\n false,\n options,\n );\n }\n\n /**\n * Instagram Basic Profile\n *\n * Fetch an Instagram account's core public profile fields (followers, posts, bio, verification) by user id, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.basicProfile({ userId: \"314216\" });\n */\n basicProfile(\n input: InstagramBasicProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramBasicProfileData>> {\n return this._core.run(\"instagram.basic_profile\", input, options);\n }\n\n /**\n * Instagram Profile Embed\n *\n * Fetch the public embed HTML for an Instagram profile by handle, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.embed({ handle: \"nasa\" });\n */\n embed(\n input: InstagramEmbedInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramEmbedData>> {\n return this._core.run(\"instagram.embed\", input, options);\n }\n\n /**\n * Instagram Followers\n *\n * List the followers of any public Instagram account by username: follower usernames, names, and profile details.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.instagram.followers({ username: \"nasa\", limit: 50 });\n */\n followers(\n input: InstagramFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramFollowersData>> {\n return this._core.run(\"instagram.followers\", input, options);\n }\n\n /**\n * Iterate every result of Instagram Followers across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowers(\n input: InstagramFollowersInput,\n options?: RequestOptions,\n ): Paginator<InstagramFollowersItem, RunResult<InstagramFollowersData>> {\n return paginate<InstagramFollowersItem, RunResult<InstagramFollowersData>>(\n this._core,\n \"instagram.followers\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * Instagram Following\n *\n * List the accounts a public Instagram user follows: usernames, names, and profile details.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.instagram.following({ username: \"nasa\", limit: 50 });\n */\n following(\n input: InstagramFollowingInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramFollowingData>> {\n return this._core.run(\"instagram.following\", input, options);\n }\n\n /**\n * Iterate every result of Instagram Following across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowing(\n input: InstagramFollowingInput,\n options?: RequestOptions,\n ): Paginator<InstagramFollowingItem, RunResult<InstagramFollowingData>> {\n return paginate<InstagramFollowingItem, RunResult<InstagramFollowingData>>(\n this._core,\n \"instagram.following\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * Instagram Hashtag Analytics\n *\n * Get analytics for any Instagram hashtag (total post count, related hashtags, and usage signals), normalized.\n *\n * Price: $0.001 per request plus $0.0017 per result (maximum $0.035).\n *\n * @example\n * const res = await client.instagram.hashtagAnalytics({ hashtag: \"travel\", limit: 5 });\n */\n hashtagAnalytics(\n input: InstagramHashtagAnalyticsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramHashtagAnalyticsData>> {\n return this._core.run(\"instagram.hashtag_analytics\", input, options);\n }\n\n /**\n * Instagram Highlight Detail\n *\n * Fetch the details and media items of a single Instagram story highlight by id, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.highlightDetail({ id: \"18201653992314974\" });\n */\n highlightDetail(\n input: InstagramHighlightDetailInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramHighlightDetailData>> {\n return this._core.run(\"instagram.highlight_detail\", input, options);\n }\n\n /**\n * Instagram Media Transcript\n *\n * Get the spoken-audio transcript text for an Instagram post or reel by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.mediaTranscript({ url: \"https://www.instagram.com/reel/DHsD6HGqJhp/\" });\n */\n mediaTranscript(\n input: InstagramMediaTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramMediaTranscriptData>> {\n return this._core.run(\"instagram.media_transcript\", input, options);\n }\n\n /**\n * Instagram Post\n *\n * Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.post({ url: \"https://www.instagram.com/reel/DWzrfE2kaY8/\" });\n */\n post(\n input: InstagramPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramPostData>> {\n return this._core.run(\"instagram.post\", input, options);\n }\n\n /**\n * Instagram Post Comments\n *\n * List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.postComments({ url: \"https://www.instagram.com/reel/DWzrfE2kaY8/\" });\n */\n postComments(\n input: InstagramPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramPostCommentsData>> {\n return this._core.run(\"instagram.post_comments\", input, options);\n }\n\n /**\n * Instagram Profile\n *\n * Fetch an Instagram account's public profile (followers, posts, bio, verification) by handle, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.profile({ handle: \"nasa\" });\n */\n profile(\n input: InstagramProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramProfileData>> {\n return this._core.run(\"instagram.profile\", input, options);\n }\n\n /**\n * Instagram Reel Transcript\n *\n * Turn any public Instagram reel or video post into a full speech transcript, with optional word-level timestamps.\n *\n * Price: $0.005 per request plus $0.02 per result (maximum $0.025).\n *\n * @example\n * const res = await client.instagram.reelTranscript({ url: \"https://www.instagram.com/reel/DWzrfE2kaY8/\", wordTimestamps: false });\n */\n reelTranscript(\n input: InstagramReelTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramReelTranscriptData>> {\n return this._core.run(\"instagram.reel_transcript\", input, options);\n }\n\n /**\n * Instagram Reels Search\n *\n * Search Instagram Reels by keyword and get matching reels (caption, views, likes, creator, and duration), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.reelsSearch({ query: \"travel\" });\n */\n reelsSearch(\n input: InstagramReelsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramReelsSearchData>> {\n return this._core.run(\"instagram.reels_search\", input, options);\n }\n\n /**\n * Instagram Search\n *\n * Search Instagram for users, hashtags, or places by keyword and get matching results with names, counts, and links.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.instagram.search({ query: \"nasa\" });\n */\n search(\n input: InstagramSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramSearchData>> {\n return this._core.run(\"instagram.search\", input, options);\n }\n\n /**\n * Instagram Hashtag Search\n *\n * List recent Instagram posts under a hashtag (caption, type, media URL), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.searchHashtag({ hashtag: \"travel\" });\n */\n searchHashtag(\n input: InstagramSearchHashtagInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramSearchHashtagData>> {\n return this._core.run(\"instagram.search_hashtag\", input, options);\n }\n\n /**\n * Instagram Profile Search\n *\n * Search public Instagram profiles by a bio or caption keyword, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.searchProfiles({ query: \"coffee roaster\" });\n */\n searchProfiles(\n input: InstagramSearchProfilesInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramSearchProfilesData>> {\n return this._core.run(\"instagram.search_profiles\", input, options);\n }\n\n /**\n * Iterate every result of Instagram Profile Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchProfiles(\n input: InstagramSearchProfilesInput,\n options?: RequestOptions,\n ): Paginator<\n InstagramSearchProfilesProfile,\n RunResult<InstagramSearchProfilesData>\n > {\n return paginate<\n InstagramSearchProfilesProfile,\n RunResult<InstagramSearchProfilesData>\n >(\n this._core,\n \"instagram.search_profiles\",\n input as unknown as Record<string, unknown>,\n \"profiles\",\n false,\n options,\n );\n }\n\n /**\n * Instagram Stories (full)\n *\n * Fetch public Instagram accounts' currently live stories with the full record - media (image and video), type, dimensions, posting time, 24h expiry, and caption. Up to 100 usernames per request.\n *\n * Price: $0.099 per request plus $0.003 per username (maximum $0.102).\n *\n * @example\n * const res = await client.instagram.storiesFull({ usernames: [\"natgeo\"] });\n */\n storiesFull(\n input: InstagramStoriesFullInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramStoriesFullData>> {\n return this._core.run(\"instagram.stories_full\", input, options);\n }\n\n /**\n * Instagram Stories (basic)\n *\n * Fetch a public Instagram account's currently live stories - media URL, owner, and posting time - by username. Lightweight projection; for media type, dimensions, and the 24h expiry time use instagram.stories_full.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.instagram.storiesThin({ username: \"natgeo\" });\n */\n storiesThin(\n input: InstagramStoriesThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramStoriesThinData>> {\n return this._core.run(\"instagram.stories_thin\", input, options);\n }\n\n /**\n * Instagram Trending Reels\n *\n * List currently trending Instagram reels, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.trendingReels({});\n */\n trendingReels(\n input: InstagramTrendingReelsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramTrendingReelsData>> {\n return this._core.run(\"instagram.trending_reels\", input, options);\n }\n\n /**\n * Instagram User Highlights\n *\n * List an Instagram account's story highlight reels by handle, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.userHighlights({ handle: \"nasa\" });\n */\n userHighlights(\n input: InstagramUserHighlightsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramUserHighlightsData>> {\n return this._core.run(\"instagram.user_highlights\", input, options);\n }\n\n /**\n * Instagram User Posts\n *\n * List an Instagram account's recent posts (likes, comments, captions) by handle with cursor pagination, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.userPosts({ handle: \"nasa\" });\n */\n userPosts(\n input: InstagramUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramUserPostsData>> {\n return this._core.run(\"instagram.user_posts\", input, options);\n }\n\n /**\n * Iterate every result of Instagram User Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserPosts(\n input: InstagramUserPostsInput,\n options?: RequestOptions,\n ): Paginator<InstagramUserPostsPost, RunResult<InstagramUserPostsData>> {\n return paginate<InstagramUserPostsPost, RunResult<InstagramUserPostsData>>(\n this._core,\n \"instagram.user_posts\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n\n /**\n * Instagram User Reels\n *\n * List an Instagram account's reels by handle with cursor pagination (caption, plays, likes, comments), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.userReels({ handle: \"nasa\" });\n */\n userReels(\n input: InstagramUserReelsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramUserReelsData>> {\n return this._core.run(\"instagram.user_reels\", input, options);\n }\n\n /**\n * Iterate every result of Instagram User Reels across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserReels(\n input: InstagramUserReelsInput,\n options?: RequestOptions,\n ): Paginator<InstagramUserReelsReel, RunResult<InstagramUserReelsData>> {\n return paginate<InstagramUserReelsReel, RunResult<InstagramUserReelsData>>(\n this._core,\n \"instagram.user_reels\",\n input as unknown as Record<string, unknown>,\n \"reels\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for LinkedIn Ad Details (linkedin.ad).\n */\nexport interface LinkedinAdInput {\n /**\n * LinkedIn Ad Library ad URL (e.g. \"https://www.linkedin.com/ad-library/detail/666281156\").\n */\n url: string;\n}\n\n/**\n * The `data` payload of LinkedIn Ad Details (linkedin.ad).\n */\nexport interface LinkedinAdData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiser: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserLinkedinPage: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n cta: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n destinationUrl: string;\n /**\n * ISO 8601 date.\n */\n endDate: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n headline: string;\n id: string;\n image: string;\n /**\n * ISO 8601 date.\n */\n startDate: string;\n totalImpressions: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Ads Library (linkedin.ads).\n */\nexport interface LinkedinAdsInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * LinkedIn Ad Library search URL or a LinkedIn company URL (e.g. https://www.linkedin.com/ad-library/search?companyIds=1035).\n */\n url: string;\n}\n\n/**\n * A LinkedIn ad: advertiser, creative text, format, and ad library URL.\n */\nexport interface LinkedinAdsItem {\n /**\n * Advertiser (company) name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n advertiser?: string;\n /**\n * Advertiser logo image URL.\n */\n advertiserLogo?: string;\n /**\n * Ad format (e.g. SINGLE_IMAGE, VIDEO).\n */\n format?: string;\n /**\n * LinkedIn ad id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Ad creative image URL.\n */\n image?: string;\n /**\n * Ad creative body text.\n */\n text?: string;\n /**\n * Canonical LinkedIn Ad Library detail URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Ads Library (linkedin.ads).\n */\nexport interface LinkedinAdsData {\n /**\n * Ad records from the LinkedIn Ad Library. Populated whenever the provider has data for the entity.\n */\n items: LinkedinAdsItem[];\n}\n\n/**\n * Input for LinkedIn Ad Search (linkedin.ads_search).\n */\nexport interface LinkedinAdsSearchInput {\n /**\n * Company name to search (e.g. \"microsoft\").\n */\n company?: string;\n /**\n * LinkedIn company identifier.\n */\n companyId?: string;\n /**\n * Comma-separated two-letter country codes (e.g. \"US,CA,MX\").\n */\n countries?: string;\n /**\n * Search end date in YYYY-MM-DD format.\n */\n endDate?: string;\n /**\n * Keyword term for the ad search.\n */\n keyword?: string;\n /**\n * Opaque pagination token from a previous response's nextCursor.\n */\n paginationToken?: string;\n /**\n * Search start date in YYYY-MM-DD format.\n */\n startDate?: string;\n}\n\nexport interface LinkedinAdsSearchAd {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiser: string;\n advertiserLinkedinPage: string;\n cta: string;\n description: string;\n destinationUrl: string;\n endDate: string;\n headline: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n startDate: string;\n totalImpressions: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Ad Search (linkedin.ads_search).\n */\nexport interface LinkedinAdsSearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n ads: LinkedinAdsSearchAd[];\n nextCursor: string;\n totalAds: number;\n}\n\n/**\n * Input for LinkedIn Company (linkedin.company).\n */\nexport interface LinkedinCompanyInput {\n /**\n * Full LinkedIn company page URL.\n */\n url: string;\n}\n\nexport interface LinkedinCompanyLocation {\n /**\n * City.\n */\n city?: string;\n /**\n * ISO country code.\n */\n country?: string;\n /**\n * True when this location is the headquarters.\n */\n headquarter?: boolean;\n /**\n * Street address line.\n */\n line1?: string;\n /**\n * Postal code.\n */\n postalCode?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company (linkedin.company).\n */\nexport interface LinkedinCompanyData {\n /**\n * Company type, e.g. Privately Held, Public Company.\n */\n companyType?: string;\n /**\n * Company about/description text. Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Reported total employee count. Populated whenever the provider has data for the entity.\n */\n employeeCount: number;\n /**\n * LinkedIn size bucket the company falls in.\n */\n employeeCountRange?: {\n /**\n * Upper bound of the employee-count bucket.\n */\n end?: number;\n /**\n * Lower bound of the employee-count bucket.\n */\n start?: number;\n };\n /**\n * LinkedIn page follower count. Populated whenever the provider has data for the entity.\n */\n followerCount: number;\n /**\n * Founding date (year populated when known).\n */\n foundedOn?: {\n /**\n * Year the company was founded.\n */\n year?: number;\n };\n /**\n * Funding summary sourced from Crunchbase, when available.\n */\n fundingData?: {\n /**\n * Crunchbase profile URL for the company.\n */\n companyCrunchbaseUrl?: string;\n /**\n * Type of the most recent funding round.\n */\n lastFundingType?: string;\n /**\n * Total number of funding rounds.\n */\n numFundingRounds?: number;\n };\n /**\n * Primary industry.\n */\n industry: string;\n /**\n * Company office locations, including headquarters.\n */\n locations?: LinkedinCompanyLocation[];\n /**\n * Company logo image URL.\n */\n logoUrl: string;\n /**\n * Company name.\n */\n name: string;\n /**\n * Whether LinkedIn has verified the company page.\n */\n pageVerified?: boolean;\n /**\n * Similar organizations surfaced by LinkedIn.\n */\n similarOrganizations?: unknown[];\n /**\n * Company-declared specialities.\n */\n specialities?: unknown[];\n /**\n * Company tagline/slogan.\n */\n tagline: string;\n /**\n * LinkedIn universal (vanity) name for the company.\n */\n universalName?: string;\n /**\n * Company website URL.\n */\n website: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Company Employees (linkedin.company_employees).\n */\nexport interface LinkedinCompanyEmployeesInput {\n /**\n * Company name or LinkedIn company URL (e.g. google or https://www.linkedin.com/company/google/).\n */\n company: string;\n /**\n * Optional job-title filter supporting boolean operators (e.g. CEO OR CTO).\n */\n jobTitle?: string;\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n}\n\n/**\n * An employee: name, headline, location, handle, and LinkedIn profile URL.\n */\nexport interface LinkedinCompanyEmployeesItem {\n /**\n * First name.\n */\n firstName?: string;\n /**\n * Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n handle?: string;\n /**\n * Profile picture URL.\n */\n image?: string;\n /**\n * The employee's current role or headline.\n */\n jobTitle?: string;\n /**\n * Last name.\n */\n lastName?: string;\n /**\n * The employee's location as a single string (city, region, country).\n */\n location?: string;\n /**\n * Full name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company Employees (linkedin.company_employees).\n */\nexport interface LinkedinCompanyEmployeesData {\n /**\n * Employee records for the company. Populated whenever the provider has data for the entity.\n */\n items: LinkedinCompanyEmployeesItem[];\n}\n\n/**\n * Input for LinkedIn Company Posts (linkedin.company_posts).\n */\nexport interface LinkedinCompanyPostsInput {\n /**\n * Include quote posts (posts shared with an added comment). Defaults to true; set false to exclude them.\n */\n includeQuotePosts?: boolean;\n /**\n * Include reposts (posts shared without an added comment). Defaults to true; set false to exclude them.\n */\n includeReposts?: boolean;\n /**\n * Maximum number of posts to return.\n * Range: minimum 1, maximum 50.\n * Default: 10.\n */\n limit?: number;\n /**\n * Only return posts published within this window (default any).\n * One of: any, 1h, 24h, week, month, 3months, 6months, year.\n */\n postedLimit?:\n \"any\" | \"1h\" | \"24h\" | \"week\" | \"month\" | \"3months\" | \"6months\" | \"year\";\n /**\n * Full LinkedIn company page URL.\n */\n url: string;\n}\n\nexport interface LinkedinCompanyPostsItem {\n /**\n * The post author (a company or a profile).\n */\n author?: {\n /**\n * Author follower count as displayed text (e.g. '1,543,793 followers').\n */\n followers?: string;\n /**\n * Canonical LinkedIn URL of the author.\n */\n linkedinUrl?: string;\n /**\n * Display name of the author.\n */\n name?: string;\n /**\n * Author kind, e.g. 'company' or 'profile'.\n */\n type?: string;\n /**\n * URL-safe company/profile handle, when present.\n */\n universalName?: string;\n };\n /**\n * Inline mentions and entity references in the post text.\n */\n contentAttributes?: LinkedinCompanyPostsContentAttribute[];\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Engagement metrics for the post.\n */\n engagement?: {\n /**\n * Number of comments on the post.\n */\n comments?: number;\n /**\n * Total reaction count on the post. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n likes?: number;\n /**\n * Per-reaction-type breakdown of the reaction total.\n */\n reactions?: LinkedinCompanyPostsReaction[];\n /**\n * Number of shares/reposts of the post.\n */\n shares?: number;\n };\n /**\n * Unique identifier of the post. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Images attached to the post.\n */\n postImages?: LinkedinCompanyPostsPostImage[];\n /**\n * Video attached to the post, or null when absent.\n */\n postVideo?: {};\n /**\n * Full text content of the post.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinCompanyPostsContentAttribute {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinCompanyPostsReaction {\n /**\n * Number of reactions of this type.\n */\n count?: number;\n /**\n * Reaction type, e.g. LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION.\n */\n type?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinCompanyPostsPostImage {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company Posts (linkedin.company_posts).\n */\nexport interface LinkedinCompanyPostsData {\n /**\n * The company's recent posts. Populated whenever the provider has data for the entity.\n */\n items: LinkedinCompanyPostsItem[];\n}\n\n/**\n * Input for LinkedIn Company Posts (basic) (linkedin.company_posts_thin).\n */\nexport interface LinkedinCompanyPostsThinInput {\n /**\n * Page number for pagination.\n * Range: minimum 1.\n */\n page?: number;\n /**\n * Full LinkedIn company page URL.\n */\n url: string;\n}\n\nexport interface LinkedinCompanyPostsThinItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Unique identifier of the post. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Text content of the post. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company Posts (basic) (linkedin.company_posts_thin).\n */\nexport interface LinkedinCompanyPostsThinData {\n /**\n * The company's recent posts. Populated whenever the provider has data for the entity.\n */\n items: LinkedinCompanyPostsThinItem[];\n}\n\n/**\n * Input for LinkedIn Company (basic) (linkedin.company_thin).\n */\nexport interface LinkedinCompanyThinInput {\n /**\n * Full LinkedIn company page URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of LinkedIn Company (basic) (linkedin.company_thin).\n */\nexport interface LinkedinCompanyThinData {\n /**\n * Company about/description text. Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Reported employee count.\n */\n employeeCount: number;\n /**\n * Primary industry. Populated whenever the provider has data for the entity.\n */\n industry: string;\n /**\n * Company logo image URL. Populated whenever the provider has data for the entity.\n */\n logoUrl: string;\n /**\n * Company name.\n */\n name: string;\n /**\n * Company tagline/slogan. Populated whenever the provider has data for the entity.\n */\n tagline: string;\n /**\n * Company website URL. Populated whenever the provider has data for the entity.\n */\n website: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Email Finder (linkedin.email).\n */\nexport interface LinkedinEmailInput {\n /**\n * LinkedIn profile URL or public identifier (the last part of the URL) to find the deliverability-validated work email for.\n */\n profileUrl: string;\n}\n\n/**\n * A discovered email with its deliverability and validation signals.\n */\nexport interface LinkedinEmailEmail {\n /**\n * True when the email passed deliverability checks (including SMTP).\n */\n deliverable?: boolean;\n /**\n * Discovered work email address. Populated whenever the provider has data for the entity.\n */\n email: string;\n /**\n * Confidence score for the email, 0-100.\n */\n qualityScore?: number;\n /**\n * Validation status of the email (e.g. valid).\n */\n status?: string;\n /**\n * True when the domain has a valid mail server.\n */\n validEmailServer?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Email Finder (linkedin.email).\n */\nexport interface LinkedinEmailData {\n /**\n * Deliverability-validated work emails discovered for the profile. Populated whenever the provider has data for the entity.\n */\n emails: LinkedinEmailEmail[];\n /**\n * First name on the LinkedIn profile.\n */\n firstName?: string;\n /**\n * Profile headline.\n */\n headline?: string;\n /**\n * Last name on the LinkedIn profile.\n */\n lastName?: string;\n /**\n * Canonical LinkedIn profile URL.\n */\n linkedinUrl?: string;\n}\n\n/**\n * Input for LinkedIn Jobs (linkedin.jobs).\n */\nexport interface LinkedinJobsInput {\n /**\n * Filter to a specific company by name (e.g. Google).\n */\n company?: string;\n /**\n * When true, only return jobs offering LinkedIn Easy Apply.\n */\n easyApply?: boolean;\n /**\n * Filter by employment type.\n * One of: full-time, part-time, contract, internship, temporary.\n */\n employmentType?:\n \"full-time\" | \"part-time\" | \"contract\" | \"internship\" | \"temporary\";\n /**\n * Filter by required seniority/experience level.\n * One of: internship, entry, associate, mid-senior, director, executive.\n */\n experienceLevel?:\n | \"internship\"\n | \"entry\"\n | \"associate\"\n | \"mid-senior\"\n | \"director\"\n | \"executive\";\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * City, region, or country to search within (e.g. United States, San Francisco).\n */\n location?: string;\n /**\n * Only jobs posted within this window (past hour, 24 hours, week, or month).\n * One of: 1h, 24h, week, month.\n */\n postedLimit?: \"1h\" | \"24h\" | \"week\" | \"month\";\n /**\n * Job title or keywords to search. Supports LinkedIn boolean operators.\n */\n query: string;\n /**\n * Filter by minimum base salary band (US dollars).\n * One of: 40k+, 60k+, 80k+, 100k+, 120k+, 140k+, 160k+, 180k+, 200k+.\n */\n salary?:\n | \"40k+\"\n | \"60k+\"\n | \"80k+\"\n | \"100k+\"\n | \"120k+\"\n | \"140k+\"\n | \"160k+\"\n | \"180k+\"\n | \"200k+\";\n /**\n * Sort order: most recent (date) or best match (relevance).\n * One of: date, relevance.\n */\n sortBy?: \"date\" | \"relevance\";\n /**\n * When true, only return jobs with fewer than 10 applicants (lower competition).\n */\n under10Applicants?: boolean;\n /**\n * Filter by workplace type (remote, hybrid, or onsite).\n * One of: remote, hybrid, onsite.\n */\n workplaceType?: \"remote\" | \"hybrid\" | \"onsite\";\n}\n\n/**\n * A LinkedIn job listing with full detail: title, description, salary, applicant count, seniority, company, and benefits.\n */\nexport interface LinkedinJobsItem {\n /**\n * Number of applicants reported by LinkedIn. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n applicants?: number;\n /**\n * External company apply URL when the job applies off-site.\n */\n applyUrl?: string;\n /**\n * Listed benefits.\n */\n benefits?: string[];\n /**\n * Hiring company details.\n */\n company?: {\n /**\n * Canonical LinkedIn company URL.\n */\n linkedinUrl?: string;\n /**\n * Company logo image URL.\n */\n logo?: string;\n /**\n * Company name.\n */\n name?: string;\n /**\n * Company LinkedIn universal (vanity) name.\n */\n universalName?: string;\n };\n /**\n * UTC epoch timestamp in seconds (Unix time) the job was posted. Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Full job description as plain text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n descriptionText?: string;\n /**\n * LinkedIn Easy Apply URL when available.\n */\n easyApplyUrl?: string;\n /**\n * Employment type (e.g. full_time, contract, part_time).\n */\n employmentType?: string;\n /**\n * Seniority / experience level (e.g. Mid-Senior level, Entry level).\n */\n experienceLevel?: string;\n /**\n * LinkedIn job listing id.\n */\n id?: string;\n /**\n * Industries associated with the role.\n */\n industries?: string[];\n /**\n * Job location (city, region, or country).\n */\n location?: string;\n /**\n * Salary range when disclosed by the poster.\n */\n salary?: {\n /**\n * Maximum salary.\n */\n max?: number;\n /**\n * Minimum salary.\n */\n min?: number;\n /**\n * Salary as displayed (e.g. '300,000 - 330,000 USD').\n */\n text?: string;\n };\n /**\n * Job title.\n */\n title: string;\n /**\n * Canonical LinkedIn job listing URL.\n */\n url: string;\n /**\n * Workplace type (e.g. remote, on_site, hybrid).\n */\n workplaceType?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Jobs (linkedin.jobs).\n */\nexport interface LinkedinJobsData {\n /**\n * Full job listing records for the search. Populated whenever the provider has data for the entity.\n */\n items: LinkedinJobsItem[];\n}\n\n/**\n * Input for LinkedIn Jobs (index) (linkedin.jobs_thin).\n */\nexport interface LinkedinJobsThinInput {\n /**\n * Filter to a specific company by its LinkedIn numeric company id.\n */\n companyId?: string;\n /**\n * Filter by employment type.\n * One of: full-time, part-time, contract, internship, temporary.\n */\n employmentType?:\n \"full-time\" | \"part-time\" | \"contract\" | \"internship\" | \"temporary\";\n /**\n * Filter by required seniority/experience level.\n * One of: internship, entry, associate, mid-senior, director, executive.\n */\n experienceLevel?:\n | \"internship\"\n | \"entry\"\n | \"associate\"\n | \"mid-senior\"\n | \"director\"\n | \"executive\";\n /**\n * LinkedIn geo id to target a precise location (e.g. 103644278 for the United States); more exact than the free-text location.\n */\n geoId?: string;\n /**\n * Maximum number of results to return (1-25, default 25).\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * City, region, or country to search within.\n */\n location?: string;\n /**\n * Only jobs posted within this window (past 24 hours, week, or month).\n * One of: 24h, week, month.\n */\n postedLimit?: \"24h\" | \"week\" | \"month\";\n /**\n * Job title or keywords to search.\n */\n query: string;\n /**\n * Filter by workplace type (remote, hybrid, or onsite).\n * One of: remote, hybrid, onsite.\n */\n workplaceType?: \"remote\" | \"hybrid\" | \"onsite\";\n}\n\n/**\n * A LinkedIn job listing index entry: title, company, location, posting date, and the listing URL.\n */\nexport interface LinkedinJobsThinItem {\n /**\n * Hiring company name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n company?: string;\n /**\n * Canonical LinkedIn company URL.\n */\n companyUrl?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * LinkedIn job listing id.\n */\n id?: string;\n /**\n * Job location (city, region). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n location?: string;\n /**\n * Job title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical LinkedIn job listing URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Jobs (index) (linkedin.jobs_thin).\n */\nexport interface LinkedinJobsThinData {\n /**\n * Job listing index records for the search. Populated whenever the provider has data for the entity.\n */\n items: LinkedinJobsThinItem[];\n}\n\n/**\n * Input for LinkedIn Post (linkedin.post).\n */\nexport interface LinkedinPostInput {\n /**\n * Full LinkedIn post or article URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of LinkedIn Post (linkedin.post).\n */\nexport interface LinkedinPostData {\n /**\n * Name of the post author. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Number of comments on the post.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Text content of the post. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Title of the post.\n */\n title: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Post Comments (linkedin.post_comments).\n */\nexport interface LinkedinPostCommentsInput {\n /**\n * Maximum number of comments to return. You are billed per comment returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n * Default: 100.\n */\n limit?: number;\n /**\n * Only return comments posted within this window (default any).\n * One of: any, 24h, week, month, 3months, 6months, year.\n */\n postedLimit?:\n \"any\" | \"24h\" | \"week\" | \"month\" | \"3months\" | \"6months\" | \"year\";\n /**\n * Full URL of the LinkedIn post to list comments for.\n */\n url: string;\n}\n\nexport interface LinkedinPostCommentsItem {\n /**\n * The commenter (a profile or a company).\n */\n actor?: {\n /**\n * Profile picture URL of the commenter.\n */\n image?: string;\n /**\n * Canonical LinkedIn URL of the commenter.\n */\n linkedinUrl?: string;\n /**\n * Display name of the commenter.\n */\n name?: string;\n /**\n * Commenter's headline or job title as displayed.\n */\n position?: string;\n /**\n * Commenter kind, e.g. 'profile' or 'company'.\n */\n type?: string;\n };\n /**\n * Full text of the comment. Populated whenever the provider has data for the entity.\n */\n commentary: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Whether the comment has been edited.\n */\n edited?: boolean;\n /**\n * Engagement metrics for the comment.\n */\n engagement?: {\n /**\n * Number of replies to the comment.\n */\n comments?: number;\n /**\n * Number of likes on the comment.\n */\n likes?: number;\n };\n /**\n * Unique identifier of the comment. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Whether the comment is pinned on the post.\n */\n pinned?: boolean;\n /**\n * Canonical permalink URL of the comment.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Post Comments (linkedin.post_comments).\n */\nexport interface LinkedinPostCommentsData {\n /**\n * The post's comments. Populated whenever the provider has data for the entity.\n */\n items: LinkedinPostCommentsItem[];\n}\n\n/**\n * Input for LinkedIn Post Reactions (linkedin.post_reactions).\n */\nexport interface LinkedinPostReactionsInput {\n /**\n * Maximum number of reactions to return (1-100, default 100). You are billed per reaction returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n /**\n * URL of the LinkedIn post to list reactions for (a /posts/...-activity-... or /feed/update/urn:li:activity:... link).\n */\n url: string;\n}\n\nexport interface LinkedinPostReactionsItem {\n /**\n * The reactor - the person or company that reacted.\n */\n actor: {\n /**\n * LinkedIn member or company id of the reactor.\n */\n id?: string;\n /**\n * Canonical LinkedIn profile or company URL of the reactor.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * Full name of the reactor (or company name). Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Profile picture URL of the reactor.\n */\n pictureUrl?: string;\n /**\n * Reactor's current job title / headline (or follower count for a company).\n */\n position?: string;\n };\n /**\n * LinkedIn URN of the post that was reacted to.\n */\n postId?: string;\n /**\n * Reaction kind (e.g. LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, ENTERTAINMENT).\n */\n reactionType: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Post Reactions (linkedin.post_reactions).\n */\nexport interface LinkedinPostReactionsData {\n /**\n * Reactions on the post, one record per reactor.\n */\n items: LinkedinPostReactionsItem[];\n}\n\n/**\n * Input for LinkedIn Post Transcript (linkedin.post_transcript).\n */\nexport interface LinkedinPostTranscriptInput {\n /**\n * The full URL of the LinkedIn post to get the video transcript from.\n */\n url: string;\n}\n\n/**\n * The `data` payload of LinkedIn Post Transcript (linkedin.post_transcript).\n */\nexport interface LinkedinPostTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n transcript: string;\n transcriptNotAvailable: boolean;\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Profile (linkedin.profile).\n */\nexport interface LinkedinProfileInput {\n /**\n * Full LinkedIn profile URL.\n */\n url: string;\n}\n\nexport interface LinkedinProfileCertification {\n /**\n * Issue date text.\n */\n issuedAt?: string;\n /**\n * Issuing organization.\n */\n issuedBy?: string;\n /**\n * Certification title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileCurrentPosition {\n /**\n * Company LinkedIn URL.\n */\n companyLinkedinUrl?: string;\n /**\n * Company name.\n */\n companyName?: string;\n /**\n * Human-readable tenure, e.g. '12 yrs 6 mos'.\n */\n duration?: string;\n /**\n * Role location.\n */\n location?: string;\n /**\n * Job title.\n */\n position?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileEducation {\n /**\n * Degree earned.\n */\n degree?: string;\n /**\n * End date text.\n */\n endDate?: string;\n /**\n * Field of study.\n */\n fieldOfStudy?: string;\n /**\n * School name.\n */\n school: string;\n /**\n * School LinkedIn URL.\n */\n schoolUrl?: string;\n /**\n * Start date text.\n */\n startDate?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileExperience {\n /**\n * Company LinkedIn URL.\n */\n companyLinkedinUrl?: string;\n /**\n * Company name.\n */\n companyName?: string;\n /**\n * Role description.\n */\n description?: string;\n /**\n * Human-readable tenure, e.g. '3 yrs 2 mos'.\n */\n duration?: string;\n /**\n * Employment type, e.g. 'Full-time'.\n */\n employmentType?: string;\n /**\n * End date text, e.g. 'Present'.\n */\n endDate?: string;\n /**\n * Role location.\n */\n location?: string;\n /**\n * Job title. Populated whenever the provider has data for the entity.\n */\n position: string;\n /**\n * Skills associated with this role.\n */\n skills?: unknown[];\n /**\n * Start date text, e.g. 'Feb 2014'.\n */\n startDate?: string;\n /**\n * Workplace type, e.g. 'Remote' or 'On-site'.\n */\n workplaceType?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileHonorsAndAward {\n /**\n * Award description.\n */\n description?: string;\n /**\n * Issue date text.\n */\n issuedAt?: string;\n /**\n * Issuing organization.\n */\n issuedBy?: string;\n /**\n * Award title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfilePublication {\n /**\n * Publication description.\n */\n description?: string;\n /**\n * Publisher and/or date text as shown on LinkedIn.\n */\n publishedText?: string;\n /**\n * Publication title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileSkill {\n /**\n * Endorsement count text, e.g. '99+ endorsements'.\n */\n endorsements?: string;\n /**\n * Skill name.\n */\n name?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile (linkedin.profile).\n */\nexport interface LinkedinProfileData {\n /**\n * About/summary text of the profile.\n */\n about?: string;\n /**\n * Licenses and certifications.\n */\n certifications?: LinkedinProfileCertification[];\n /**\n * Number of connections.\n */\n connectionsCount?: number;\n /**\n * The member's current role(s).\n */\n currentPosition?: LinkedinProfileCurrentPosition[];\n /**\n * Education entries.\n */\n education?: LinkedinProfileEducation[];\n /**\n * Full work experience with titles, descriptions, dates, and per-role skills. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n experience?: LinkedinProfileExperience[];\n /**\n * First name of the profile owner.\n */\n firstName: string;\n /**\n * Number of followers.\n */\n followerCount?: number;\n /**\n * Professional headline shown under the name. Populated whenever the provider has data for the entity.\n */\n headline: string;\n /**\n * Honors and awards.\n */\n honorsAndAwards?: LinkedinProfileHonorsAndAward[];\n /**\n * Languages, as returned by LinkedIn when present.\n */\n languages?: unknown[];\n /**\n * Last name of the profile owner.\n */\n lastName: string;\n /**\n * Location of the profile owner.\n */\n location?: string;\n /**\n * Whether the member is open to work.\n */\n openToWork?: boolean;\n /**\n * URL of the profile photo.\n */\n photo?: string;\n /**\n * Whether the member has LinkedIn Premium.\n */\n premium?: boolean;\n /**\n * Projects, as returned by LinkedIn when present.\n */\n projects?: unknown[];\n /**\n * LinkedIn public identifier (the /in/ handle).\n */\n publicIdentifier?: string;\n /**\n * Publications.\n */\n publications?: LinkedinProfilePublication[];\n /**\n * Endorsed skills.\n */\n skills?: LinkedinProfileSkill[];\n /**\n * The member's top skills, as free-form strings when present.\n */\n topSkills?: unknown[];\n /**\n * Canonical LinkedIn profile URL.\n */\n url: string;\n /**\n * Whether the profile is identity-verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Profile (basic) (linkedin.profile_thin).\n */\nexport interface LinkedinProfileThinInput {\n /**\n * Full LinkedIn profile URL.\n */\n url: string;\n}\n\nexport interface LinkedinProfileThinArticle {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Headline of the article.\n */\n headline: string;\n /**\n * Canonical URL of the article.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileThinEducation {\n /**\n * End date of study.\n */\n endDate?: string;\n /**\n * Name of the school.\n */\n school: string;\n /**\n * URL of the school page.\n */\n schoolUrl?: string;\n /**\n * Start date of study.\n */\n startDate?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileThinExperience {\n /**\n * Name of the company.\n */\n company: string;\n /**\n * URL of the company page.\n */\n companyUrl?: string;\n /**\n * End date of the role.\n */\n endDate?: string;\n /**\n * Start date of the role.\n */\n startDate?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileThinRecentPost {\n /**\n * Type of activity for the post.\n */\n activityType?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Unique identifier of the post.\n */\n id: string;\n /**\n * Text content of the post.\n */\n text?: string;\n /**\n * Canonical URL of the post.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile (basic) (linkedin.profile_thin).\n */\nexport interface LinkedinProfileThinData {\n /**\n * About/summary text of the profile.\n */\n about: string;\n /**\n * The profile's published articles.\n */\n articles: LinkedinProfileThinArticle[];\n /**\n * URL of the profile avatar image.\n */\n avatarUrl: string;\n /**\n * Education entries.\n */\n education: LinkedinProfileThinEducation[];\n /**\n * Work experience entries (company and dates only in this basic tier). Populated whenever the provider has data for the entity.\n */\n experience: LinkedinProfileThinExperience[];\n /**\n * Number of followers.\n */\n followers: number;\n /**\n * Location of the profile owner.\n */\n location: string;\n /**\n * Full name of the profile owner.\n */\n name: string;\n /**\n * The profile's recent posts.\n */\n recentPosts: LinkedinProfileThinRecentPost[];\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Company Search (linkedin.search_companies).\n */\nexport interface LinkedinSearchCompaniesInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Optional location filter, written out in full (e.g. United Kingdom or San Francisco).\n */\n location?: string;\n /**\n * Keyword to search LinkedIn companies for (e.g. marketing agency).\n */\n query: string;\n}\n\n/**\n * A LinkedIn company: name, URL, industry, location, follower count, and description.\n */\nexport interface LinkedinSearchCompaniesItem {\n /**\n * Company summary / about text.\n */\n description?: string;\n /**\n * Follower count as a display string (e.g. 105K followers).\n */\n followersText?: string;\n /**\n * Company universal name (the vanity slug in the URL).\n */\n handle?: string;\n /**\n * LinkedIn company id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Company logo image URL.\n */\n image?: string;\n /**\n * Company industry.\n */\n industry?: string;\n /**\n * Company location as a single string (city, region).\n */\n location?: string;\n /**\n * Company name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Canonical LinkedIn company URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company Search (linkedin.search_companies).\n */\nexport interface LinkedinSearchCompaniesData {\n /**\n * Matching company records. Populated whenever the provider has data for the entity.\n */\n items: LinkedinSearchCompaniesItem[];\n}\n\n/**\n * Input for LinkedIn Post Search (linkedin.search_posts).\n */\nexport interface LinkedinSearchPostsInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Filter by recency. One of last-hour, last-day, last-week, last-month, last-year.\n * One of: last-hour, last-day, last-week, last-month, last-year.\n */\n datePosted?:\n \"last-hour\" | \"last-day\" | \"last-week\" | \"last-month\" | \"last-year\";\n /**\n * The post search query.\n */\n query: string;\n}\n\nexport interface LinkedinSearchPostsPost {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Text content of the post. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Post Search (linkedin.search_posts).\n */\nexport interface LinkedinSearchPostsData {\n /**\n * Posts matching the search query. Populated whenever the provider has data for the entity.\n */\n posts: LinkedinSearchPostsPost[];\n}\n\n/**\n * Input for LinkedIn Profile Search (linkedin.search_profiles).\n */\nexport interface LinkedinSearchProfilesInput {\n /**\n * Filter by current company size (employee count). Codes: A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+.\n */\n companyHeadcount?: (\"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"H\" | \"I\")[];\n /**\n * Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']).\n */\n companyHeadquarterLocations?: string[];\n /**\n * Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR).\n */\n currentCompanies?: string[];\n /**\n * Exclude people whose current company is headquartered in any of these locations.\n */\n excludeCompanyHeadquarterLocations?: string[];\n /**\n * Exclude people who currently work at any of these companies, by name.\n */\n excludeCurrentCompanies?: string[];\n /**\n * Exclude people whose current job title matches any of these.\n */\n excludeCurrentJobTitles?: string[];\n /**\n * Exclude these job functions (same codes as functionIds).\n */\n excludeFunctionIds?: (\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"18\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"22\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"26\"\n )[];\n /**\n * Exclude people in any of these locations, by place name.\n */\n excludeLocations?: string[];\n /**\n * Exclude people who previously worked at any of these companies, by name.\n */\n excludePastCompanies?: string[];\n /**\n * Exclude people who held any of these past job titles.\n */\n excludePastJobTitles?: string[];\n /**\n * Exclude people who attended any of these schools, by name.\n */\n excludeSchools?: string[];\n /**\n * Exclude these seniority levels (same codes as seniorityLevelIds).\n */\n excludeSeniorityLevelIds?: (\n | \"100\"\n | \"110\"\n | \"120\"\n | \"130\"\n | \"200\"\n | \"210\"\n | \"220\"\n | \"300\"\n | \"310\"\n | \"320\"\n )[];\n /**\n * Filter to people whose first name matches any of these.\n */\n firstNames?: string[];\n /**\n * Filter by job function. Codes: 1=Accounting, 2=Administrative, 3=Arts and Design, 4=Business Development, 5=Community and Social Services, 6=Consulting, 7=Education, 8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Healthcare Services, 12=Human Resources, 13=Information Technology, 14=Legal, 15=Marketing, 16=Media and Communication, 17=Military and Protective Services, 18=Operations, 19=Product Management, 20=Program and Project Management, 21=Purchasing, 22=Quality Assurance, 23=Real Estate, 24=Research, 25=Sales, 26=Customer Success and Support.\n */\n functionIds?: (\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"18\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"22\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"26\"\n )[];\n /**\n * Optional current job title filter (e.g. 'Software Engineer').\n */\n jobTitle?: string;\n /**\n * Filter to people whose last name matches any of these.\n */\n lastNames?: string[];\n /**\n * Maximum number of full profiles to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Optional location filter (e.g. 'San Francisco').\n */\n location?: string;\n /**\n * Filter to people who previously worked at any of these companies, by name.\n */\n pastCompanies?: string[];\n /**\n * Filter by a past job title the person held (e.g. ['Product Manager']).\n */\n pastJobTitles?: string[];\n /**\n * Filter by the profile's primary language.\n */\n profileLanguages?: (\n | \"Arabic\"\n | \"English\"\n | \"Spanish\"\n | \"Portuguese\"\n | \"Chinese\"\n | \"French\"\n | \"Italian\"\n | \"Russian\"\n | \"German\"\n | \"Dutch\"\n | \"Turkish\"\n | \"Tagalog\"\n | \"Polish\"\n | \"Korean\"\n | \"Japanese\"\n | \"Malay\"\n | \"Norwegian\"\n | \"Danish\"\n | \"Romanian\"\n | \"Swedish\"\n | \"Bahasa Indonesia\"\n | \"Czech\"\n )[];\n /**\n * Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager').\n */\n query: string;\n /**\n * When true, only return people who recently changed jobs (a strong sales/recruiting signal).\n */\n recentlyChangedJobs?: boolean;\n /**\n * When true, only return people who recently posted on LinkedIn (an activity signal).\n */\n recentlyPostedOnLinkedIn?: boolean;\n /**\n * Filter to people who attended any of these schools, by name.\n */\n schools?: string[];\n /**\n * Filter by seniority level. Codes: 100=In Training, 110=Entry Level, 120=Senior, 130=Strategic, 200=Entry Level Manager, 210=Experienced Manager, 220=Director, 300=Vice President, 310=CXO, 320=Owner/Partner.\n */\n seniorityLevelIds?: (\n | \"100\"\n | \"110\"\n | \"120\"\n | \"130\"\n | \"200\"\n | \"210\"\n | \"220\"\n | \"300\"\n | \"310\"\n | \"320\"\n )[];\n /**\n * Filter by tenure at the current company. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.\n */\n yearsAtCurrentCompanyIds?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n /**\n * Filter by total years of experience. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.\n */\n yearsOfExperienceIds?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n}\n\n/**\n * A full LinkedIn profile: name, headline, location, about, current position, work experience, education, and skills, plus the profile URL, handle, and id.\n */\nexport interface LinkedinSearchProfilesItem {\n /**\n * Profile about / summary text.\n */\n about?: string;\n /**\n * Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile.\n */\n currentPosition?: LinkedinSearchProfilesCurrentPosition[];\n /**\n * Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile.\n */\n education?: LinkedinSearchProfilesEducation[];\n /**\n * Full work history. Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n experience?: LinkedinSearchProfilesExperience[];\n /**\n * Member's first name.\n */\n firstName?: string;\n /**\n * Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n handle?: string;\n /**\n * Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n headline?: string;\n /**\n * LinkedIn member URN id for the profile.\n */\n id: string;\n /**\n * Profile picture URL.\n */\n image?: string;\n /**\n * Member's last name.\n */\n lastName?: string;\n /**\n * Member's location as a single string (city, region, country).\n */\n location?: string;\n /**\n * Whether the member has the Open to Work flag set.\n */\n openToWork?: boolean;\n /**\n * Whether the member has a LinkedIn Premium subscription.\n */\n premium?: boolean;\n /**\n * Listed skills. Each entry is an open object with the skill name and endorsement summary.\n */\n skills?: LinkedinSearchProfilesSkill[];\n /**\n * Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesCurrentPosition {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEducation {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesExperience {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesSkill {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile Search (linkedin.search_profiles).\n */\nexport interface LinkedinSearchProfilesData {\n /**\n * Matched profile records. Populated whenever the provider has data for the entity.\n */\n items: LinkedinSearchProfilesItem[];\n}\n\n/**\n * Input for LinkedIn Profile Search + Email (linkedin.search_profiles_email).\n */\nexport interface LinkedinSearchProfilesEmailInput {\n /**\n * Filter by current company size (employee count). Codes: A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+.\n */\n companyHeadcount?: (\"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"H\" | \"I\")[];\n /**\n * Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']).\n */\n companyHeadquarterLocations?: string[];\n /**\n * Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR).\n */\n currentCompanies?: string[];\n /**\n * Exclude people whose current company is headquartered in any of these locations.\n */\n excludeCompanyHeadquarterLocations?: string[];\n /**\n * Exclude people who currently work at any of these companies, by name.\n */\n excludeCurrentCompanies?: string[];\n /**\n * Exclude people whose current job title matches any of these.\n */\n excludeCurrentJobTitles?: string[];\n /**\n * Exclude these job functions (same codes as functionIds).\n */\n excludeFunctionIds?: (\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"18\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"22\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"26\"\n )[];\n /**\n * Exclude people in any of these locations, by place name.\n */\n excludeLocations?: string[];\n /**\n * Exclude people who previously worked at any of these companies, by name.\n */\n excludePastCompanies?: string[];\n /**\n * Exclude people who held any of these past job titles.\n */\n excludePastJobTitles?: string[];\n /**\n * Exclude people who attended any of these schools, by name.\n */\n excludeSchools?: string[];\n /**\n * Exclude these seniority levels (same codes as seniorityLevelIds).\n */\n excludeSeniorityLevelIds?: (\n | \"100\"\n | \"110\"\n | \"120\"\n | \"130\"\n | \"200\"\n | \"210\"\n | \"220\"\n | \"300\"\n | \"310\"\n | \"320\"\n )[];\n /**\n * Filter to people whose first name matches any of these.\n */\n firstNames?: string[];\n /**\n * Filter by job function. Codes: 1=Accounting, 2=Administrative, 3=Arts and Design, 4=Business Development, 5=Community and Social Services, 6=Consulting, 7=Education, 8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Healthcare Services, 12=Human Resources, 13=Information Technology, 14=Legal, 15=Marketing, 16=Media and Communication, 17=Military and Protective Services, 18=Operations, 19=Product Management, 20=Program and Project Management, 21=Purchasing, 22=Quality Assurance, 23=Real Estate, 24=Research, 25=Sales, 26=Customer Success and Support.\n */\n functionIds?: (\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"18\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"22\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"26\"\n )[];\n /**\n * Optional current job title filter (e.g. 'Software Engineer').\n */\n jobTitle?: string;\n /**\n * Filter to people whose last name matches any of these.\n */\n lastNames?: string[];\n /**\n * Maximum number of full profiles (with email) to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Optional location filter (e.g. 'San Francisco').\n */\n location?: string;\n /**\n * Filter to people who previously worked at any of these companies, by name.\n */\n pastCompanies?: string[];\n /**\n * Filter by a past job title the person held (e.g. ['Product Manager']).\n */\n pastJobTitles?: string[];\n /**\n * Filter by the profile's primary language.\n */\n profileLanguages?: (\n | \"Arabic\"\n | \"English\"\n | \"Spanish\"\n | \"Portuguese\"\n | \"Chinese\"\n | \"French\"\n | \"Italian\"\n | \"Russian\"\n | \"German\"\n | \"Dutch\"\n | \"Turkish\"\n | \"Tagalog\"\n | \"Polish\"\n | \"Korean\"\n | \"Japanese\"\n | \"Malay\"\n | \"Norwegian\"\n | \"Danish\"\n | \"Romanian\"\n | \"Swedish\"\n | \"Bahasa Indonesia\"\n | \"Czech\"\n )[];\n /**\n * Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager').\n */\n query: string;\n /**\n * When true, only return people who recently changed jobs (a strong sales/recruiting signal).\n */\n recentlyChangedJobs?: boolean;\n /**\n * When true, only return people who recently posted on LinkedIn (an activity signal).\n */\n recentlyPostedOnLinkedIn?: boolean;\n /**\n * Filter to people who attended any of these schools, by name.\n */\n schools?: string[];\n /**\n * Filter by seniority level. Codes: 100=In Training, 110=Entry Level, 120=Senior, 130=Strategic, 200=Entry Level Manager, 210=Experienced Manager, 220=Director, 300=Vice President, 310=CXO, 320=Owner/Partner.\n */\n seniorityLevelIds?: (\n | \"100\"\n | \"110\"\n | \"120\"\n | \"130\"\n | \"200\"\n | \"210\"\n | \"220\"\n | \"300\"\n | \"310\"\n | \"320\"\n )[];\n /**\n * Filter by tenure at the current company. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.\n */\n yearsAtCurrentCompanyIds?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n /**\n * Filter by total years of experience. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.\n */\n yearsOfExperienceIds?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n}\n\n/**\n * A full LinkedIn profile: name, headline, location, about, current position, work experience, education, and skills, plus the profile URL, handle, id, and a discovered work email with deliverability.\n */\nexport interface LinkedinSearchProfilesEmailItem {\n /**\n * Profile about / summary text.\n */\n about?: string;\n /**\n * Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile.\n */\n currentPosition?: LinkedinSearchProfilesEmailCurrentPosition[];\n /**\n * Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile.\n */\n education?: LinkedinSearchProfilesEmailEducation[];\n /**\n * Discovered work email(s) for the member. Each entry is an open object with the email address plus deliverability signals (deliverable, disposable, catchAllDomain, validEmailServer, qualityScore, status); may be empty when no email could be verified. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n emails?: LinkedinSearchProfilesEmailEmail[];\n /**\n * Full work history. Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n experience?: LinkedinSearchProfilesEmailExperience[];\n /**\n * Member's first name.\n */\n firstName?: string;\n /**\n * Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n handle?: string;\n /**\n * Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n headline?: string;\n /**\n * LinkedIn member URN id for the profile.\n */\n id: string;\n /**\n * Profile picture URL.\n */\n image?: string;\n /**\n * Member's last name.\n */\n lastName?: string;\n /**\n * Member's location as a single string (city, region, country).\n */\n location?: string;\n /**\n * Whether the member has the Open to Work flag set.\n */\n openToWork?: boolean;\n /**\n * Whether the member has a LinkedIn Premium subscription.\n */\n premium?: boolean;\n /**\n * Listed skills. Each entry is an open object with the skill name and endorsement summary.\n */\n skills?: LinkedinSearchProfilesEmailSkill[];\n /**\n * Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailCurrentPosition {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailEducation {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailEmail {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailExperience {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailSkill {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile Search + Email (linkedin.search_profiles_email).\n */\nexport interface LinkedinSearchProfilesEmailData {\n /**\n * Matched profile records, each with a discovered work email. Populated whenever the provider has data for the entity.\n */\n items: LinkedinSearchProfilesEmailItem[];\n}\n\n/**\n * Input for LinkedIn Profile Search (basic) (linkedin.search_profiles_thin).\n */\nexport interface LinkedinSearchProfilesThinInput {\n /**\n * Search query for LinkedIn profiles - a role, name, or keywords (e.g. 'Marketing Manager').\n */\n query: string;\n}\n\n/**\n * A basic LinkedIn profile record: name, handle, headline, vanity profile URL, and location.\n */\nexport interface LinkedinSearchProfilesThinItem {\n /**\n * Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n handle?: string;\n /**\n * Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n headline?: string;\n /**\n * LinkedIn member URN id for the profile.\n */\n id?: string;\n /**\n * Profile picture URL.\n */\n image?: string;\n /**\n * Member's location as a single string (city, region, country).\n */\n location?: string;\n /**\n * Member's display name.\n */\n name?: string;\n /**\n * Canonical LinkedIn vanity profile URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile Search (basic) (linkedin.search_profiles_thin).\n */\nexport interface LinkedinSearchProfilesThinData {\n /**\n * Matched profile records (basic fields only). Populated whenever the provider has data for the entity.\n */\n items: LinkedinSearchProfilesThinItem[];\n}\n\n/**\n * Typed methods for the linkedin platform. Attached to the AnyAPI client as\n * `client.linkedin`.\n */\nexport class LinkedinNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * LinkedIn Ad Details\n *\n * Look up a single LinkedIn Ad Library ad by URL and get the advertiser, headline, creative text, format, CTA, targeting, run dates, and impressions as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.ad({ url: \"https://www.linkedin.com/ad-library/detail/1487405616\" });\n */\n ad(\n input: LinkedinAdInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinAdData>> {\n return this._core.run(\"linkedin.ad\", input, options);\n }\n\n /**\n * LinkedIn Ads Library\n *\n * Search the LinkedIn Ad Library by search URL and list the matching ads (advertiser, creative text, format).\n *\n * Price: $0.00005 per request plus $0.0015 per result (maximum $0.03005).\n *\n * @example\n * const res = await client.linkedin.ads({ url: \"https://www.linkedin.com/company/stripe\", limit: 3 });\n */\n ads(\n input: LinkedinAdsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinAdsData>> {\n return this._core.run(\"linkedin.ads\", input, options);\n }\n\n /**\n * LinkedIn Ad Search\n *\n * Search the LinkedIn Ad Library by company or keyword and list matching ads (advertiser, headline, creative text, format, CTA, and run dates) with pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.adsSearch({ company: \"microsoft\" });\n */\n adsSearch(\n input: LinkedinAdsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinAdsSearchData>> {\n return this._core.run(\"linkedin.ads_search\", input, options);\n }\n\n /**\n * LinkedIn Company\n *\n * Fetch a full LinkedIn company page by URL: name, description, industry, employee count and range, follower count, founded year, headquarters and office locations, funding data, tagline, logo, website, and specialities.\n *\n * Price: $0.004 per request plus $0 per result (maximum $0.004).\n *\n * @example\n * const res = await client.linkedin.company({ url: \"https://www.linkedin.com/company/stripe\" });\n */\n company(\n input: LinkedinCompanyInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyData>> {\n return this._core.run(\"linkedin.company\", input, options);\n }\n\n /**\n * LinkedIn Company Employees\n *\n * List the employees of a LinkedIn company by name or company URL, with optional job-title filtering.\n *\n * Price: $0 per request plus $0.01 per result (maximum $0.1).\n *\n * @example\n * const res = await client.linkedin.companyEmployees({ company: \"stripe\", limit: 3 });\n */\n companyEmployees(\n input: LinkedinCompanyEmployeesInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyEmployeesData>> {\n return this._core.run(\"linkedin.company_employees\", input, options);\n }\n\n /**\n * LinkedIn Company Posts\n *\n * List a LinkedIn company page's recent posts by URL: full text, canonical link, publish date, author, engagement counts with a per-reaction breakdown, and attached media.\n *\n * Price: $0.00005 per request plus $0.00175 per result (maximum $0.08755).\n *\n * @example\n * const res = await client.linkedin.companyPosts({ url: \"https://www.linkedin.com/company/stripe\", limit: 10 });\n */\n companyPosts(\n input: LinkedinCompanyPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyPostsData>> {\n return this._core.run(\"linkedin.company_posts\", input, options);\n }\n\n /**\n * LinkedIn Company Posts (basic)\n *\n * Post text and link only. No engagement counts, author details, media, or reaction breakdown - for those use linkedin.company_posts.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.companyPostsThin({ url: \"https://www.linkedin.com/company/stripe\" });\n */\n companyPostsThin(\n input: LinkedinCompanyPostsThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyPostsThinData>> {\n return this._core.run(\"linkedin.company_posts_thin\", input, options);\n }\n\n /**\n * LinkedIn Company (basic)\n *\n * Basic company: name, description, employee count, industry, logo, website, tagline. No follower count, founded year, office locations, or funding data - for those use linkedin.company.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.companyThin({ url: \"https://www.linkedin.com/company/stripe\" });\n */\n companyThin(\n input: LinkedinCompanyThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyThinData>> {\n return this._core.run(\"linkedin.company_thin\", input, options);\n }\n\n /**\n * LinkedIn Email Finder\n *\n * Find the deliverability-validated work email behind a LinkedIn profile URL or public ID. Returns each discovered email with its deliverability, validation status, and quality score, plus the person's name and headline.\n *\n * Price: $0.01 per request plus $0 per result (maximum $0.01).\n *\n * @example\n * const res = await client.linkedin.email({ profileUrl: \"https://www.linkedin.com/in/satyanadella\" });\n */\n email(\n input: LinkedinEmailInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinEmailData>> {\n return this._core.run(\"linkedin.email\", input, options);\n }\n\n /**\n * LinkedIn Jobs\n *\n * Search LinkedIn job listings by title and location - full records with description, salary, applicant count, seniority, company details, and benefits. Up to 25 jobs per request.\n *\n * Price: $0.001 per request plus $0.001 per result (maximum $0.026).\n *\n * @example\n * const res = await client.linkedin.jobs({ query: \"software engineer\", limit: 3, location: \"United States\", workplaceType: \"remote\" });\n */\n jobs(\n input: LinkedinJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinJobsData>> {\n return this._core.run(\"linkedin.jobs\", input, options);\n }\n\n /**\n * LinkedIn Jobs (index)\n *\n * Cheap job index: title, company, location, posted date, URL. No description, salary, applicant counts, or seniority - for those use linkedin.jobs.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.linkedin.jobsThin({ query: \"software engineer\", limit: 3, location: \"United States\", workplaceType: \"remote\" });\n */\n jobsThin(\n input: LinkedinJobsThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinJobsThinData>> {\n return this._core.run(\"linkedin.jobs_thin\", input, options);\n }\n\n /**\n * LinkedIn Post\n *\n * Fetch a single LinkedIn post or article by URL (title, text, author, like and comment counts, publish date), normalized across providers.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.linkedin.post({ url: \"https://www.linkedin.com/posts/stripe_last-week-agent-traffic-surpassed-human-activity-7470882737390940160-2Nxs\" });\n */\n post(\n input: LinkedinPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinPostData>> {\n return this._core.run(\"linkedin.post\", input, options);\n }\n\n /**\n * LinkedIn Post Comments\n *\n * List comments on a LinkedIn post - full text, commenter name/URL/job title, timestamps, and engagement.\n *\n * Price: $0 per request plus $0.002 per result (maximum $0.2).\n *\n * @example\n * const res = await client.linkedin.postComments({ url: \"https://www.linkedin.com/posts/stripe_philip-kl%C3%B6ckner-in-conversation-with-conor-activity-7477791740645564416-tIbZ\", limit: 10 });\n */\n postComments(\n input: LinkedinPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinPostCommentsData>> {\n return this._core.run(\"linkedin.post_comments\", input, options);\n }\n\n /**\n * LinkedIn Post Reactions\n *\n * List who reacted to a LinkedIn post - reactor name, profile URL, job title, and reaction type. Lead-gen grade.\n *\n * Price: $0 per request plus $0.002 per result (maximum $0.2).\n *\n * @example\n * const res = await client.linkedin.postReactions({ url: \"https://www.linkedin.com/posts/satyanadella_today-were-bringing-skills-to-copilot-for-activity-7475945433668694017--kvG\", limit: 5 });\n */\n postReactions(\n input: LinkedinPostReactionsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinPostReactionsData>> {\n return this._core.run(\"linkedin.post_reactions\", input, options);\n }\n\n /**\n * LinkedIn Post Transcript\n *\n * Get the spoken transcript of a LinkedIn video post by URL.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.postTranscript({ url: \"https://www.linkedin.com/posts/artificial-analysis_gemini-35-flash-is-a-step-forward-for-google-activity-7465082408409870337-4Pm-\" });\n */\n postTranscript(\n input: LinkedinPostTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinPostTranscriptData>> {\n return this._core.run(\"linkedin.post_transcript\", input, options);\n }\n\n /**\n * LinkedIn Profile\n *\n * Fetch a rich LinkedIn member profile by URL: name, headline, avatar, location, connections and followers, current position, and full work experience with job titles, descriptions, dates, employment/workplace type, and per-role skills, plus education, skills, certifications, honors and awards, languages, projects, publications, and verified/premium/open-to-work flags.\n *\n * Price: $0.004 per request plus $0 per result (maximum $0.004).\n *\n * @example\n * const res = await client.linkedin.profile({ url: \"https://www.linkedin.com/in/williamhgates\" });\n */\n profile(\n input: LinkedinProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinProfileData>> {\n return this._core.run(\"linkedin.profile\", input, options);\n }\n\n /**\n * LinkedIn Profile (basic)\n *\n * Lightweight profile: name, avatar, location, followers, and a basic experience/education list (company + dates only, no job titles, descriptions, or skills; past companies may be redacted). For full experience detail, skills, certifications, connections, and verified flags use linkedin.profile.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.profileThin({ url: \"https://www.linkedin.com/in/williamhgates\" });\n */\n profileThin(\n input: LinkedinProfileThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinProfileThinData>> {\n return this._core.run(\"linkedin.profile_thin\", input, options);\n }\n\n /**\n * LinkedIn Company Search\n *\n * Search LinkedIn companies by keyword with optional location filtering, returning normalized company records.\n *\n * Price: $0.001 per request plus $0.004 per result (maximum $0.081).\n *\n * @example\n * const res = await client.linkedin.searchCompanies({ query: \"fintech\", limit: 3 });\n */\n searchCompanies(\n input: LinkedinSearchCompaniesInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchCompaniesData>> {\n return this._core.run(\"linkedin.search_companies\", input, options);\n }\n\n /**\n * LinkedIn Post Search\n *\n * Search public LinkedIn posts by keyword (text, link, publish date), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.searchPosts({ query: \"hiring\", datePosted: \"last-week\" });\n */\n searchPosts(\n input: LinkedinSearchPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchPostsData>> {\n return this._core.run(\"linkedin.search_posts\", input, options);\n }\n\n /**\n * LinkedIn Profile Search\n *\n * Search LinkedIn profiles by keyword with optional location and job-title filters. Each match returns a full profile record: name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id. For a cheaper name/headline/URL-only search use linkedin.search_profiles_thin; add emails with linkedin.search_profiles_email.\n *\n * Price: $0.08 per request plus $0.004 per result (maximum $0.18).\n *\n * @example\n * const res = await client.linkedin.searchProfiles({ query: \"engineer\", currentCompanies: [\"Google\"], limit: 3 });\n */\n searchProfiles(\n input: LinkedinSearchProfilesInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchProfilesData>> {\n return this._core.run(\"linkedin.search_profiles\", input, options);\n }\n\n /**\n * LinkedIn Profile Search + Email\n *\n * People search returning a full profile AND a verified work email for each hit. Search LinkedIn profiles by keyword with optional location and job-title filters; each match returns the full profile record (name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id) together with an emails array carrying the discovered work email and its deliverability. For a full profile without email use linkedin.search_profiles; for a cheaper name/headline/URL-only search use linkedin.search_profiles_thin.\n *\n * Price: $0.08 per request plus $0.009 per result (maximum $0.305).\n *\n * @example\n * const res = await client.linkedin.searchProfilesEmail({ query: \"founder\", companyHeadcount: [\"B\"], limit: 5 });\n */\n searchProfilesEmail(\n input: LinkedinSearchProfilesEmailInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchProfilesEmailData>> {\n return this._core.run(\"linkedin.search_profiles_email\", input, options);\n }\n\n /**\n * LinkedIn Profile Search (basic)\n *\n * Cheap people search: name/handle, headline, VANITY profile URL, location. No full profile or email - for full profiles per hit use linkedin.search_profiles, add emails with linkedin.search_profiles_email.\n *\n * Price: $0.0325 per request.\n *\n * @example\n * const res = await client.linkedin.searchProfilesThin({ query: \"recruiter\" });\n */\n searchProfilesThin(\n input: LinkedinSearchProfilesThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchProfilesThinData>> {\n return this._core.run(\"linkedin.search_profiles_thin\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Maps Contacts (maps.contacts).\n */\nexport interface MapsContactsInput {\n /**\n * Optional list of Google Maps place-category names to keep; results are limited to places whose category matches one of these. Use lowercase category names as shown on Google Maps (e.g. [\"dentist\", \"orthodontist\"]). Omit to include all categories.\n */\n categoryFilterWords?: string[];\n /**\n * Two-letter language code for the results (e.g. en).\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Free-text location to search in, ideally city plus country (e.g. Denver, USA).\n */\n location: string;\n /**\n * Only return places with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter.\n * One of: two, twoAndHalf, three, threeAndHalf, four, fourAndHalf.\n */\n placeMinimumStars?:\n \"two\" | \"twoAndHalf\" | \"three\" | \"threeAndHalf\" | \"four\" | \"fourAndHalf\";\n /**\n * What you would type in the Google Maps search bar (e.g. dentist).\n */\n query: string;\n /**\n * Filter places by whether they list a website: allPlaces (default), withWebsite (only places that have a website), or withoutWebsite (only places without one). Contact enrichment pulls emails and social profiles from a place's website, so withWebsite targets leads that can be enriched.\n * One of: allPlaces, withWebsite, withoutWebsite.\n */\n website?: \"allPlaces\" | \"withWebsite\" | \"withoutWebsite\";\n}\n\nexport interface MapsContactsItem {\n /**\n * Full formatted street address.\n */\n address?: string;\n /**\n * Primary business category.\n */\n category?: string;\n /**\n * Google customer/place id (cid).\n */\n cid?: string;\n /**\n * City the business is in.\n */\n city?: string;\n /**\n * Two-letter country code.\n */\n countryCode?: string;\n /**\n * Email addresses scraped from the business website.\n */\n emails?: string[];\n /**\n * Facebook profile URLs found on the business website.\n */\n facebooks?: string[];\n /**\n * Primary business photo URL.\n */\n image?: string;\n /**\n * Instagram profile URLs found on the business website.\n */\n instagrams?: string[];\n /**\n * Latitude of the business in decimal degrees.\n */\n latitude?: number;\n /**\n * LinkedIn profile URLs found on the business website.\n */\n linkedIns?: string[];\n /**\n * Longitude of the business in decimal degrees.\n */\n longitude?: number;\n /**\n * Business name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Business phone number in E.164 format, when listed on Google Maps.\n */\n phone?: string;\n /**\n * Additional phone numbers scraped from the business website.\n */\n phones?: string[];\n /**\n * Google Maps place id (stable identifier for the business). Populated whenever the provider has data for the entity.\n */\n placeId: string;\n /**\n * Postal code of the business.\n */\n postalCode?: string;\n /**\n * Average star rating out of 5.\n */\n rating?: number;\n /**\n * Total number of reviews.\n */\n reviewCount?: number;\n /**\n * State or region the business is in.\n */\n state?: string;\n /**\n * TikTok profile URLs found on the business website.\n */\n tiktoks?: string[];\n /**\n * X/Twitter profile URLs found on the business website.\n */\n twitters?: string[];\n /**\n * Canonical Google Maps URL for the business. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The business website URL, when listed.\n */\n website?: string;\n /**\n * YouTube channel URLs found on the business website.\n */\n youtubes?: string[];\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Maps Contacts (maps.contacts).\n */\nexport interface MapsContactsData {\n /**\n * Matching business records, each enriched with contact details scraped from the business website. Populated whenever the provider has data for the entity.\n */\n items: MapsContactsItem[];\n}\n\n/**\n * Input for Google Maps Place Lookup (maps.place).\n */\nexport interface MapsPlaceInput {\n /**\n * Optional list of Google Maps place-category names to keep; the match is limited to a place whose category is one of these. Use lowercase category names as shown on Google Maps (e.g. [\"coffee shop\"]). Omit to allow any category.\n */\n categoryFilterWords?: string[];\n /**\n * Two-letter language code for the result details (e.g. en).\n * Default: en.\n */\n language?: string;\n /**\n * Optional free-text location to scope the search, ideally city plus state or country (e.g. San Francisco, CA). Narrows the query to the best match in that area.\n */\n location?: string;\n /**\n * Only match a place with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter.\n * One of: two, twoAndHalf, three, threeAndHalf, four, fourAndHalf.\n */\n placeMinimumStars?:\n \"two\" | \"twoAndHalf\" | \"three\" | \"threeAndHalf\" | \"four\" | \"fourAndHalf\";\n /**\n * The business name or search text to look up, as you would type it into the Google Maps search bar (e.g. Blue Bottle Coffee).\n */\n query: string;\n /**\n * Filter by whether the place lists a website: allPlaces (default), withWebsite (only if it has a website), or withoutWebsite (only if it has none).\n * One of: allPlaces, withWebsite, withoutWebsite.\n */\n website?: \"allPlaces\" | \"withWebsite\" | \"withoutWebsite\";\n}\n\nexport interface MapsPlaceItem {\n /**\n * Full formatted street address. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n address?: string;\n /**\n * Primary Google Maps category (e.g. Coffee shop). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n category?: string;\n city?: string;\n /**\n * Two-letter country code.\n */\n countryCode?: string;\n /**\n * Opening hours by day: each element is an object with the day name and its hours.\n */\n hours?: MapsPlaceHour[];\n /**\n * URL of the primary place photo.\n */\n image?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n latitude?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n longitude?: number;\n /**\n * Business or place name. Populated whenever the provider has data for the entity.\n */\n name: string;\n neighborhood?: string;\n /**\n * Whether the place is permanently closed.\n */\n permanentlyClosed?: boolean;\n /**\n * Formatted phone number.\n */\n phone?: string;\n /**\n * Google Maps place id. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n placeId?: string;\n /**\n * Google Plus Code for the location.\n */\n plusCode?: string;\n postalCode?: string;\n /**\n * Price level indicator (e.g. a price range).\n */\n priceLevel?: string;\n /**\n * Average star rating.\n */\n rating?: number;\n /**\n * Total number of reviews.\n */\n reviewsCount?: number;\n /**\n * State or region name.\n */\n state?: string;\n /**\n * Street portion of the address.\n */\n street?: string;\n /**\n * Google Maps URL for the place. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Business website URL.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\nexport interface MapsPlaceHour {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Maps Place Lookup (maps.place).\n */\nexport interface MapsPlaceData {\n /**\n * The best-matching place for the query, with full details: name, address, contact info, category, rating, opening hours, and coordinates. Up to one element (empty when nothing matched). Populated whenever the provider has data for the entity.\n */\n items: MapsPlaceItem[];\n}\n\n/**\n * Input for Google Maps Reviews (maps.reviews).\n */\nexport interface MapsReviewsInput {\n /**\n * Two-letter language code for the review details (e.g. en).\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n /**\n * The Google Maps place ID to fetch reviews for (e.g. ChIJj61dQgK6j4AR4GeTYWZsKWw).\n */\n placeId: string;\n /**\n * Only return reviews posted within this window: 24h (past 24 hours), week (past 7 days), month (past month), or year (past year). Omit for no recency filter.\n * One of: 24h, week, month, year.\n */\n postedLimit?: \"24h\" | \"week\" | \"month\" | \"year\";\n /**\n * Only return reviews whose text contains this keyword or phrase (case-insensitive). Omit to return all reviews (e.g. parking).\n */\n reviewsFilterString?: string;\n /**\n * Order in which reviews are returned (e.g. newest).\n * One of: newest, mostRelevant, highestRanking, lowestRanking.\n * Default: newest.\n */\n sort?: \"newest\" | \"mostRelevant\" | \"highestRanking\" | \"lowestRanking\";\n}\n\nexport interface MapsReviewsItem {\n /**\n * Reviewer display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n author?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Whether the reviewer is a Google Local Guide.\n */\n isLocalGuide?: boolean;\n /**\n * Number of likes on the review.\n */\n likes?: number;\n /**\n * Source of the review (e.g. Google).\n */\n origin?: string;\n /**\n * Owner's reply text; empty when there is none.\n */\n ownerResponse?: string;\n /**\n * ISO 8601 timestamp of the owner's reply; empty when there is none.\n */\n ownerResponseAt?: string;\n /**\n * Google Maps place id the review belongs to. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n placeId?: string;\n /**\n * Human-relative publish time (e.g. '7 hours ago').\n */\n publishedAgo?: string;\n /**\n * Star rating the reviewer gave (1-5).\n */\n rating?: number;\n /**\n * Stable Google review id. Populated whenever the provider has data for the entity.\n */\n reviewId: string;\n /**\n * Stable Google id of the reviewer.\n */\n reviewerId?: string;\n /**\n * Total number of reviews the reviewer has written.\n */\n reviewerReviewsCount?: number;\n /**\n * Review text; empty string when the reviewer left only a star rating.\n */\n text?: string;\n /**\n * Direct URL to the review on Google Maps. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Maps Reviews (maps.reviews).\n */\nexport interface MapsReviewsData {\n /**\n * Review records: reviewer, star rating, review text (empty when the reviewer left only a rating), publish date, likes, and owner response where present. Populated whenever the provider has data for the entity.\n */\n items: MapsReviewsItem[];\n}\n\n/**\n * Input for Google Maps Search (maps.search).\n */\nexport interface MapsSearchInput {\n /**\n * Optional list of Google Maps place-category names to keep; results are limited to places whose category matches one of these. Use lowercase category names as shown on Google Maps (e.g. [\"coffee shop\", \"restaurant\"]). Omit to include all categories.\n */\n categoryFilterWords?: string[];\n /**\n * Two-letter language code for the results (e.g. en).\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Free-text location to search in, ideally city plus country (e.g. Austin, USA).\n */\n location: string;\n /**\n * Only return places with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter.\n * One of: two, twoAndHalf, three, threeAndHalf, four, fourAndHalf.\n */\n placeMinimumStars?:\n \"two\" | \"twoAndHalf\" | \"three\" | \"threeAndHalf\" | \"four\" | \"fourAndHalf\";\n /**\n * What you would type in the Google Maps search bar (e.g. coffee shop).\n */\n query: string;\n /**\n * Filter places by whether they list a website: allPlaces (default), withWebsite (only places that have a website), or withoutWebsite (only places without one).\n * One of: allPlaces, withWebsite, withoutWebsite.\n */\n website?: \"allPlaces\" | \"withWebsite\" | \"withoutWebsite\";\n}\n\nexport interface MapsSearchItem {\n /**\n * Full formatted street address.\n */\n address?: string;\n /**\n * Primary place category (e.g. Coffee shop).\n */\n category?: string;\n /**\n * Google customer/place id (cid).\n */\n cid?: string;\n /**\n * City the place is in.\n */\n city?: string;\n /**\n * Two-letter country code.\n */\n countryCode?: string;\n /**\n * Primary place photo URL.\n */\n image?: string;\n /**\n * Latitude of the place in decimal degrees.\n */\n latitude?: number;\n /**\n * Longitude of the place in decimal degrees.\n */\n longitude?: number;\n /**\n * Place name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * True when the place is marked permanently closed.\n */\n permanentlyClosed?: boolean;\n /**\n * Business phone number in E.164 format, when listed.\n */\n phone?: string;\n /**\n * Google Maps place id (stable identifier for the place). Populated whenever the provider has data for the entity.\n */\n placeId: string;\n /**\n * Postal code of the place.\n */\n postalCode?: string;\n /**\n * Relative price level indicator (e.g. $, $10-20).\n */\n priceLevel?: string;\n /**\n * Average star rating out of 5.\n */\n rating?: number;\n /**\n * Total number of reviews.\n */\n reviewCount?: number;\n /**\n * State or region the place is in.\n */\n state?: string;\n /**\n * Street line of the address.\n */\n street?: string;\n /**\n * Canonical Google Maps URL for the place. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The place's own website URL, when listed.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Maps Search (maps.search).\n */\nexport interface MapsSearchData {\n /**\n * Matching Google Maps place records. Populated whenever the provider has data for the entity.\n */\n items: MapsSearchItem[];\n}\n\n/**\n * Typed methods for the maps platform. Attached to the AnyAPI client as\n * `client.maps`.\n */\nexport class MapsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Maps Contacts\n *\n * Search Google Maps for businesses and enrich each result with contact details (emails, phones, and social profiles from their websites), up to 20 records per request.\n *\n * Price: $0.00005 per request plus $0.003 per result (maximum $0.06005).\n *\n * @example\n * const res = await client.maps.contacts({ location: \"Austin, TX\", query: \"coffee shop\", limit: 3, placeMinimumStars: \"four\", website: \"withWebsite\" });\n */\n contacts(\n input: MapsContactsInput,\n options?: RequestOptions,\n ): Promise<RunResult<MapsContactsData>> {\n return this._core.run(\"maps.contacts\", input, options);\n }\n\n /**\n * Google Maps Place Lookup\n *\n * Look up a place on Google Maps by name or search query (optionally scoped to a location) and get the best-matching place with full details - address, phone, website, rating, hours, and coordinates - as normalized JSON.\n *\n * Price: $0.003 per request plus $0.005 per result (maximum $0.009).\n *\n * @example\n * const res = await client.maps.place({ query: \"Blue Bottle Coffee\", location: \"San Francisco, CA\", website: \"withWebsite\" });\n */\n place(\n input: MapsPlaceInput,\n options?: RequestOptions,\n ): Promise<RunResult<MapsPlaceData>> {\n return this._core.run(\"maps.place\", input, options);\n }\n\n /**\n * Google Maps Reviews\n *\n * Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response.\n *\n * Price: $0.00005 per request plus $0.0004 per result (maximum $0.04005).\n *\n * @example\n * const res = await client.maps.reviews({ placeId: \"ChIJN1t_tDeuEmsRUsoyG83frY4\", limit: 3, postedLimit: \"year\" });\n */\n reviews(\n input: MapsReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<MapsReviewsData>> {\n return this._core.run(\"maps.reviews\", input, options);\n }\n\n /**\n * Google Maps Search\n *\n * Search Google Maps for places matching a query and location: up to 20 normalized place records with ratings, addresses, and contact basics per request.\n *\n * Price: $0.00005 per request plus $0.003 per result (maximum $0.06005).\n *\n * @example\n * const res = await client.maps.search({ location: \"Austin, TX\", query: \"coffee\", limit: 3, placeMinimumStars: \"four\", website: \"withWebsite\" });\n */\n search(\n input: MapsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<MapsSearchData>> {\n return this._core.run(\"maps.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Panda Express Locations (pandaexpress.locations).\n */\nexport interface PandaexpressLocationsInput {\n /**\n * Latitude of the search center.\n * Range: minimum -90, maximum 90.\n */\n latitude: number;\n /**\n * Maximum number of restaurants to return (1-50, default 10).\n * Range: minimum 1, maximum 50.\n */\n limit?: number;\n /**\n * Longitude of the search center.\n * Range: minimum -180, maximum 180.\n */\n longitude: number;\n /**\n * Search radius in miles (default 10).\n * Range: minimum 1, maximum 100.\n */\n radius?: number;\n}\n\nexport interface PandaexpressLocationsRestaurant {\n /**\n * Populated whenever the provider has data for the entity.\n */\n address: string;\n canDeliver: boolean;\n canPickup: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n city: string;\n distanceMiles: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: number;\n isOpen: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n latitude: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n longitude: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n phone: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n state: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n zip: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Panda Express Locations (pandaexpress.locations).\n */\nexport interface PandaexpressLocationsData {\n /**\n * Nearby Panda Express restaurants, nearest first. Populated whenever the provider has data for the entity.\n */\n restaurants: PandaexpressLocationsRestaurant[];\n}\n\n/**\n * Input for Panda Express Menu (pandaexpress.menu).\n */\nexport interface PandaexpressMenuInput {\n /**\n * Panda Express restaurant id (the `id` from Panda Express Locations).\n */\n restaurantId: string;\n}\n\n/**\n * Populated whenever the provider has data for the entity.\n */\nexport interface PandaexpressMenuCategorie {\n items: PandaexpressMenuItem[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n [extra: string]: unknown;\n}\n\nexport interface PandaexpressMenuItem {\n /**\n * Base calories when published by the restaurant, else 0.\n */\n calories: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n name: string;\n /**\n * Item price in USD (0 for items priced only via size/option selection).\n */\n priceUsd: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Panda Express Menu (pandaexpress.menu).\n */\nexport interface PandaexpressMenuData {\n /**\n * Menu categories in display order. Populated whenever the provider has data for the entity.\n */\n categories: PandaexpressMenuCategorie[];\n}\n\n/**\n * Input for Panda Express Nutrition (pandaexpress.nutrition).\n */\nexport interface PandaexpressNutritionInput {\n /**\n * Menu item name (or substring) to look up, e.g. \"orange chicken\" or \"chow mein\".\n */\n query: string;\n}\n\nexport interface PandaexpressNutritionItem {\n calories: number;\n cholesterolMg: number;\n dietaryFiberG: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n proteinG: number;\n saturatedFatG: number;\n servingSizeOz: number;\n sodiumMg: number;\n sugarsG: number;\n totalCarbG: number;\n totalFatG: number;\n transFatG: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Panda Express Nutrition (pandaexpress.nutrition).\n */\nexport interface PandaexpressNutritionData {\n /**\n * Matching menu items with official nutrition facts. Populated whenever the provider has data for the entity.\n */\n items: PandaexpressNutritionItem[];\n}\n\n/**\n * Typed methods for the pandaexpress platform. Attached to the AnyAPI client as\n * `client.pandaexpress`.\n */\nexport class PandaexpressNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Panda Express Locations\n *\n * Find Panda Express restaurants near a latitude/longitude, sorted by distance, with address, phone, hours availability, and pickup/delivery support.\n *\n * Price: $0.0009 per request.\n *\n * @example\n * const res = await client.pandaexpress.locations({ latitude: 34.0522, longitude: -118.2437, limit: 5 });\n */\n locations(\n input: PandaexpressLocationsInput,\n options?: RequestOptions,\n ): Promise<RunResult<PandaexpressLocationsData>> {\n return this._core.run(\"pandaexpress.locations\", input, options);\n }\n\n /**\n * Panda Express Menu\n *\n * Get the live menu for a Panda Express restaurant by id: categories with item names, descriptions, and USD prices. Pair with Panda Express Locations to resolve a restaurant id.\n *\n * Price: $0.0009 per request.\n *\n * @example\n * const res = await client.pandaexpress.menu({ restaurantId: \"112551\" });\n */\n menu(\n input: PandaexpressMenuInput,\n options?: RequestOptions,\n ): Promise<RunResult<PandaexpressMenuData>> {\n return this._core.run(\"pandaexpress.menu\", input, options);\n }\n\n /**\n * Panda Express Nutrition\n *\n * Look up official Panda Express nutrition facts by item name: serving size, calories, fat, cholesterol, sodium, carbs, fiber, sugars, and protein.\n *\n * Price: $0.006 per request.\n *\n * @example\n * const res = await client.pandaexpress.nutrition({ query: \"orange chicken\" });\n */\n nutrition(\n input: PandaexpressNutritionInput,\n options?: RequestOptions,\n ): Promise<RunResult<PandaexpressNutritionData>> {\n return this._core.run(\"pandaexpress.nutrition\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Skip Trace (person.skip_trace).\n */\nexport interface PersonSkipTraceInput {\n /**\n * Street address with city/state/zip.\n */\n address?: string;\n /**\n * Email address to reverse-trace (e.g. john.smith@example.com).\n */\n email?: string;\n /**\n * Full name of the person to trace. Provide at least one of name, address, phone, or email.\n */\n name?: string;\n /**\n * Phone number to reverse-trace (e.g. 415-555-2671).\n */\n phone?: string;\n}\n\n/**\n * A skip-trace match: name, age, current and past addresses, phone numbers, email addresses, relatives, and associates.\n */\nexport interface PersonSkipTraceItem {\n /**\n * Current city.\n */\n addressLocality?: string;\n /**\n * Current state.\n */\n addressRegion?: string;\n /**\n * Reported age.\n */\n age?: string;\n /**\n * Reported associates. Each entry is an open object with name and age.\n */\n associates?: PersonSkipTraceAssociate[];\n /**\n * Reported birth month and year.\n */\n born?: string;\n /**\n * Current county.\n */\n county?: string;\n /**\n * Up to five known email addresses, most-recent first. Absent slots are empty strings.\n */\n emails?: {\n email1?: string;\n email2?: string;\n email3?: string;\n email4?: string;\n email5?: string;\n };\n /**\n * First name of the matched person.\n */\n firstName?: string;\n /**\n * Last name of the matched person.\n */\n lastName?: string;\n /**\n * Current city and state (e.g. Brook Park, OH).\n */\n location?: string;\n /**\n * Up to five known phone numbers with line type, most-recent first. Absent slots are empty strings.\n */\n phones?: {\n phone1?: string;\n phone1Type?: string;\n phone2?: string;\n phone2Type?: string;\n phone3?: string;\n phone3Type?: string;\n phone4?: string;\n phone4Type?: string;\n phone5?: string;\n phone5Type?: string;\n };\n /**\n * Current ZIP code.\n */\n postalCode?: string;\n /**\n * Prior addresses. Each entry is an open object with street, locality, region, postal code, county, and timespan.\n */\n previousAddresses?: PersonSkipTracePreviousAddresse[];\n /**\n * Reported relatives. Each entry is an open object with name and age.\n */\n relatives?: PersonSkipTraceRelative[];\n /**\n * Current street address.\n */\n streetAddress?: string;\n /**\n * Source record URL for the matched person. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\nexport interface PersonSkipTraceAssociate {\n [extra: string]: unknown;\n}\n\nexport interface PersonSkipTracePreviousAddresse {\n [extra: string]: unknown;\n}\n\nexport interface PersonSkipTraceRelative {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Skip Trace (person.skip_trace).\n */\nexport interface PersonSkipTraceData {\n /**\n * Matched person records with identity, address, and contact details. Populated whenever the provider has data for the entity.\n */\n items: PersonSkipTraceItem[];\n}\n\n/**\n * Typed methods for the person platform. Attached to the AnyAPI client as\n * `client.person`.\n */\nexport class PersonNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Skip Trace\n *\n * Skip-trace a person in the US by name, address, phone, or email and get back identity, address, and contact records in normalized JSON.\n *\n * Price: $0 per request plus $0.007 per result (maximum $0.007).\n *\n * @example\n * const res = await client.person.skipTrace({ address: \"123 Main St, Austin, TX 78701\", name: \"John Smith\" });\n */\n skipTrace(\n input: PersonSkipTraceInput,\n options?: RequestOptions,\n ): Promise<RunResult<PersonSkipTraceData>> {\n return this._core.run(\"person.skip_trace\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Pinterest Search (pinterest.search).\n */\nexport interface PinterestSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Keyword, topic, brand, or theme to search Pinterest for (e.g. mid-century living room).\n */\n query: string;\n /**\n * Kind of results to return: all pins, only video pins, boards, or profiles (e.g. videos).\n * One of: all-pins, videos, boards, profiles.\n * Default: all-pins.\n */\n type?: \"all-pins\" | \"videos\" | \"boards\" | \"profiles\";\n}\n\nexport interface PinterestSearchItem {\n id: string;\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Pinterest Search (pinterest.search).\n */\nexport interface PinterestSearchData {\n /**\n * Matching Pinterest records: pin or board title, description, image/video URL, creator, and link. Populated whenever the provider has data for the entity.\n */\n items: PinterestSearchItem[];\n}\n\n/**\n * Typed methods for the pinterest platform. Attached to the AnyAPI client as\n * `client.pinterest`.\n */\nexport class PinterestNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Pinterest Search\n *\n * Search Pinterest by keyword and get pin, video, board, or profile results with titles, images, and links.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.pinterest.search({ query: \"home decor\", limit: 3 });\n */\n search(\n input: PinterestSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<PinterestSearchData>> {\n return this._core.run(\"pinterest.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Play Reviews (playstore.reviews).\n */\nexport interface PlaystoreReviewsInput {\n /**\n * Android app package name or full Google Play store URL (e.g. com.supercell.brawlstars).\n */\n appId: string;\n /**\n * Only return reviews left on these app versions (e.g. [\"2.24.1\", \"2.24.2\"]).\n */\n appVersion?: string[];\n /**\n * Only return reviews from this device type (e.g. \"tablet\"); defaults to mobile.\n * One of: mobile, tablet, chromebook.\n * Default: mobile.\n */\n deviceType?: \"mobile\" | \"tablet\" | \"chromebook\";\n /**\n * Only return reviews on or before this date, inclusive, in YYYY-MM-DD format (e.g. 2026-06-30).\n */\n endDate?: string;\n /**\n * Only return reviews whose text contains one of these keywords (e.g. [\"crash\", \"login\"]).\n */\n keywords?: string[];\n /**\n * Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"es\"]).\n */\n languages?: string[];\n /**\n * Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n /**\n * Only return reviews with this exact star rating from 1 to 5 (e.g. 1); omit for all ratings.\n */\n rating?: number;\n /**\n * Only return reviews from the last N days (e.g. 30); omit for no time limit.\n * Range: minimum 1.\n */\n recentDays?: number;\n /**\n * Review ordering: mostRelevant, newest, or rating (e.g. newest).\n * Default: mostRelevant.\n */\n sortBy?: string;\n}\n\nexport interface PlaystoreReviewsItem {\n /**\n * Reviewer display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n author?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the review was posted. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Number of helpful votes on the review.\n */\n helpfulVotes?: number;\n /**\n * Review identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n id?: string;\n /**\n * Star rating, 1 to 5. Populated whenever the provider has data for the entity.\n */\n rating: number;\n /**\n * Review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review title, when the store provides one.\n */\n title?: string;\n /**\n * App version the review was left on.\n */\n version?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Play Reviews (playstore.reviews).\n */\nexport interface PlaystoreReviewsData {\n /**\n * Review records: star rating, review text, reviewer name, app version, helpfulness votes, and review date. Populated whenever the provider has data for the entity.\n */\n items: PlaystoreReviewsItem[];\n}\n\n/**\n * Typed methods for the playstore platform. Attached to the AnyAPI client as\n * `client.playstore`.\n */\nexport class PlaystoreNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Play Reviews\n *\n * Fetch Google Play reviews for any Android app by package name or store URL: ratings, review text, dates, and helpfulness votes.\n *\n * Price: $0 per request plus $0.00011 per result (maximum $0.011).\n *\n * @example\n * const res = await client.playstore.reviews({ appId: \"com.whatsapp\", limit: 3 });\n */\n reviews(\n input: PlaystoreReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<PlaystoreReviewsData>> {\n return this._core.run(\"playstore.reviews\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Polymarket Markets (polymarket.markets).\n */\nexport interface PolymarketMarketsInput {\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Search term for markets (e.g. election, bitcoin, super bowl).\n */\n query: string;\n /**\n * How discovered markets are ordered before results are returned (e.g. volume_24hr for recent momentum).\n * One of: volume_24hr, volume, liquidity, start_date, ending_soon, competitive.\n * Default: volume_24hr.\n */\n sortBy?:\n | \"volume_24hr\"\n | \"volume\"\n | \"liquidity\"\n | \"start_date\"\n | \"ending_soon\"\n | \"competitive\";\n /**\n * Return \"active\" markets for current prices and volume, or \"resolved\" markets for historical outcomes.\n * One of: active, resolved.\n * Default: active.\n */\n status?: \"active\" | \"resolved\";\n}\n\nexport interface PolymarketMarketsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the market resolves/ends.\n */\n endsUtc?: number;\n /**\n * Title of the parent event grouping this market.\n */\n eventTitle?: string;\n /**\n * Polymarket market identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Event image URL.\n */\n image?: string;\n /**\n * Available liquidity in USD.\n */\n liquidityUsd?: number;\n /**\n * Market outcomes with their current implied prices.\n */\n outcomes?: PolymarketMarketsOutcome[];\n /**\n * Market status, e.g. active or closed.\n */\n status?: string;\n /**\n * The market question. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Polymarket URL for the market event. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Traded volume in USD over the past 24 hours.\n */\n volume24hUsd?: number;\n /**\n * Total traded volume in USD.\n */\n volumeUsd?: number;\n [extra: string]: unknown;\n}\n\nexport interface PolymarketMarketsOutcome {\n /**\n * Outcome label, e.g. Yes or No.\n */\n name?: string;\n /**\n * Current implied probability price for the outcome (0 to 1).\n */\n price?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Polymarket Markets (polymarket.markets).\n */\nexport interface PolymarketMarketsData {\n /**\n * Prediction-market records: market question, outcomes with current prices, volume, liquidity, and end date. Populated whenever the provider has data for the entity.\n */\n items: PolymarketMarketsItem[];\n}\n\n/**\n * Typed methods for the polymarket platform. Attached to the AnyAPI client as\n * `client.polymarket`.\n */\nexport class PolymarketNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Polymarket Markets\n *\n * Discover Polymarket prediction markets (question, outcome prices, volume, liquidity, and end dates) by keyword or sorted by activity, as normalized JSON.\n *\n * Price: $0.105 per request plus $0.0006 per result (maximum $0.12).\n *\n * @example\n * const res = await client.polymarket.markets({ query: \"election\", limit: 10 });\n */\n markets(\n input: PolymarketMarketsInput,\n options?: RequestOptions,\n ): Promise<RunResult<PolymarketMarketsData>> {\n return this._core.run(\"polymarket.markets\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Realtor.com Search (realtor.search).\n */\nexport interface RealtorSearchInput {\n /**\n * Minimum number of bathrooms (e.g. 2).\n * Range: minimum 0.\n */\n bathsMin?: number;\n /**\n * Minimum number of bedrooms (e.g. 3).\n * Range: minimum 0.\n */\n bedsMin?: number;\n /**\n * Free-text keyword that must appear in the listing description (e.g. 'pool').\n */\n keyword?: string;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * City, ZIP code, neighborhood or state to search (e.g. Las Vegas, NV).\n */\n location: string;\n /**\n * Maximum listing price in USD (e.g. 750000).\n * Range: minimum 0.\n */\n priceMax?: number;\n /**\n * Minimum listing price in USD (e.g. 250000).\n * Range: minimum 0.\n */\n priceMin?: number;\n /**\n * Filter by one or more property types; omit for all types (e.g. [\"single_family\", \"townhomes\"]).\n */\n propertyTypes?: (\n | \"single_family\"\n | \"townhomes\"\n | \"condo_townhome\"\n | \"multi_family\"\n | \"land\"\n | \"farm\"\n | \"manufactured\"\n | \"mobile\"\n | \"apartment\"\n | \"coop\"\n | \"duplex_triplex\"\n )[];\n /**\n * Listing type to search: for_sale or sold (e.g. for_sale).\n * One of: for_sale, sold.\n * Default: for_sale.\n */\n searchMode?: \"for_sale\" | \"sold\";\n /**\n * Listing statuses to include in for_sale mode; omit for active For Sale + Ready to Build. Ignored in sold mode (e.g. [\"for_sale\", \"pending\"]).\n */\n searchStatuses?: (\n \"for_sale\" | \"ready_to_build\" | \"pending\" | \"coming_soon\" | \"contingent\"\n )[];\n}\n\nexport interface RealtorSearchItem {\n /**\n * Street address line of the property.\n */\n addressLine?: string;\n /**\n * Consolidated bathroom count (e.g. \"3.5\" for three full and one half bath).\n */\n baths?: string;\n /**\n * Number of bedrooms.\n */\n beds?: number;\n /**\n * City the property is in.\n */\n city?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Number of days the listing has been on the market.\n */\n daysOnMarket?: number;\n /**\n * Primary listing photo URL.\n */\n image?: string;\n /**\n * Latitude of the property in decimal degrees.\n */\n latitude?: number;\n /**\n * Realtor.com listing id for this specific listing of the property.\n */\n listingId?: string;\n /**\n * Longitude of the property in decimal degrees.\n */\n longitude?: number;\n /**\n * Lot size in square feet.\n */\n lotSqft?: number;\n /**\n * Postal (ZIP) code of the property.\n */\n postalCode?: string;\n /**\n * Current list price in US dollars.\n */\n price?: number;\n /**\n * List price per square foot in US dollars.\n */\n pricePerSqft?: number;\n /**\n * Realtor.com property id (stable identifier for the listing). Populated whenever the provider has data for the entity.\n */\n propertyId: string;\n /**\n * Property type (e.g. single_family, condos, townhomes).\n */\n propertyType?: string;\n /**\n * Interior living area in square feet.\n */\n sqft?: number;\n /**\n * Two-letter state code the property is in.\n */\n state?: string;\n /**\n * Display listing status, including ready-to-build, pending, contingent, and coming-soon sub-statuses when present.\n * One of: for_sale, ready_to_build, sold, pending, contingent, coming_soon.\n */\n status?:\n | \"for_sale\"\n | \"ready_to_build\"\n | \"sold\"\n | \"pending\"\n | \"contingent\"\n | \"coming_soon\";\n /**\n * Human-readable street address line used as the listing title.\n */\n title?: string;\n /**\n * Canonical Realtor.com listing detail page URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Year the property was built.\n */\n yearBuilt?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Realtor.com Search (realtor.search).\n */\nexport interface RealtorSearchData {\n /**\n * Matching Realtor.com property listing records. Populated whenever the provider has data for the entity.\n */\n items: RealtorSearchItem[];\n}\n\n/**\n * Typed methods for the realtor platform. Attached to the AnyAPI client as\n * `client.realtor`.\n */\nexport class RealtorNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Realtor.com Search\n *\n * Search Realtor.com listings by location with optional price, property-type, beds/baths, listing-status, and keyword filters and get property records (price, address, beds, baths) as normalized JSON.\n *\n * Price: $0.005 per request plus $0.0015 per result (maximum $0.0425).\n *\n * @example\n * const res = await client.realtor.search({ location: \"Austin, TX\", bedsMin: 4, limit: 3, propertyTypes: [\"single_family\"], searchStatuses: [\"pending\"] });\n */\n search(\n input: RealtorSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RealtorSearchData>> {\n return this._core.run(\"realtor.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Reddit Post Comments (reddit.post_comments).\n */\nexport interface RedditPostCommentsInput {\n /**\n * Cursor from a previous response for more comments.\n */\n cursor?: string;\n /**\n * Full Reddit post URL.\n */\n url: string;\n}\n\nexport interface RedditPostCommentsComment {\n /**\n * Commenter username, without the u/ prefix. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Comment text, as Markdown. Populated whenever the provider has data for the entity.\n */\n body: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Reddit comment ID (base-36, without the t1_ prefix). Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Permalink to the comment on reddit.com. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Reddit Post Comments (reddit.post_comments).\n */\nexport interface RedditPostCommentsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n comments: RedditPostCommentsComment[];\n}\n\n/**\n * Input for Reddit Post Transcript (reddit.post_transcript).\n */\nexport interface RedditPostTranscriptInput {\n /**\n * Optional two-letter language code (defaults to en).\n */\n language?: string;\n /**\n * Reddit post URL or direct v.redd.it video URL to transcribe.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Reddit Post Transcript (reddit.post_transcript).\n */\nexport interface RedditPostTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n postId: string;\n transcript: string;\n transcriptNotAvailable: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Reddit Search (reddit.search).\n */\nexport interface RedditSearchInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of results.\n */\n cursor?: string;\n /**\n * Free-text search across all of Reddit. Reddit's field operators are supported inside the string: subreddit:<name> to scope to one subreddit, author:<user>, title:<text>, selftext:<text>, self:yes|no, nsfw:yes|no, and boolean AND/OR/NOT. To restrict to a single subreddit you can use subreddit:<name> here, or use the reddit.subreddit_posts SKU for a plain subreddit listing.\n */\n query: string;\n /**\n * Result sort order.\n * One of: relevance, hot, top, new, comments.\n */\n sort?: \"relevance\" | \"hot\" | \"top\" | \"new\" | \"comments\";\n /**\n * Time window for results.\n * One of: hour, day, week, month, year, all.\n */\n timeframe?: \"hour\" | \"day\" | \"week\" | \"month\" | \"year\" | \"all\";\n}\n\nexport interface RedditSearchPost {\n /**\n * Author username, without the u/ prefix. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Total number of comments on the post.\n */\n numComments: number;\n /**\n * Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Empty if the upstream omits it. Populated whenever the provider has data for the entity.\n */\n permalink: string;\n /**\n * Net score (upvotes minus downvotes) at fetch time.\n */\n score: number;\n /**\n * Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.\n */\n subreddit: string;\n /**\n * Post title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Reddit Search (reddit.search).\n */\nexport interface RedditSearchData {\n /**\n * Cursor for the next page of results; pass it back as the `cursor` input to fetch the following page. Empty string when there are no more results.\n */\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: RedditSearchPost[];\n}\n\n/**\n * Input for Reddit Subreddit Details (reddit.subreddit_details).\n */\nexport interface RedditSubredditDetailsInput {\n /**\n * Subreddit name without the r/ prefix. Case-sensitive (e.g. \"AskReddit\", not \"askreddit\").\n */\n subreddit: string;\n}\n\n/**\n * The `data` payload of Reddit Subreddit Details (reddit.subreddit_details).\n */\nexport interface RedditSubredditDetailsData {\n /**\n * Reddit advertiser category for the subreddit.\n */\n advertiserCategory: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Subreddit description text. Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * URL of the subreddit icon. Populated whenever the provider has data for the entity.\n */\n iconUrl: string;\n /**\n * Reddit fullname, e.g. \"t5_2qh1i\". Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Subreddit name (without the r/ prefix). Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Number of users active in the past week.\n */\n weeklyActiveUsers: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Reddit Subreddit Posts (reddit.subreddit_posts).\n */\nexport interface RedditSubredditPostsInput {\n /**\n * Pagination cursor from a previous response (its `nextCursor`). Fetches the page that follows; omit for the first page.\n */\n after?: string;\n /**\n * Requested number of posts. Note: the upstream returns one page (about 25 posts) per call; values larger than a page are not delivered in a single response. To fetch more, page with the `after` cursor returned as `nextCursor`.\n * Range: minimum 1, maximum 100.\n * Default: 25.\n */\n limit?: number;\n /**\n * Listing sort order.\n * One of: hot, new, top.\n * Default: hot.\n */\n sort?: \"hot\" | \"new\" | \"top\";\n /**\n * Subreddit name without the leading r/ (e.g. \"golang\").\n */\n subreddit: string;\n /**\n * Time window, applied when sort is \"top\" (e.g. \"year\" for the year's top posts). Ignored for hot/new. Omit to default to the current day for top.\n * One of: all, year, month, week, day, hour.\n */\n timeframe?: \"all\" | \"year\" | \"month\" | \"week\" | \"day\" | \"hour\";\n}\n\nexport interface RedditSubredditPostsPost {\n /**\n * Author username, without the u/ prefix. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Total number of comments on the post.\n */\n numComments: number;\n /**\n * Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Empty if the upstream omits it. Populated whenever the provider has data for the entity.\n */\n permalink: string;\n /**\n * Net score (upvotes minus downvotes) at fetch time.\n */\n score: number;\n /**\n * Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.\n */\n subreddit: string;\n /**\n * Post title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Reddit Subreddit Posts (reddit.subreddit_posts).\n */\nexport interface RedditSubredditPostsData {\n /**\n * Cursor for the next page of results; pass it back as the `after` input to fetch the following page. Empty string when there are no more results.\n */\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: RedditSubredditPostsPost[];\n}\n\n/**\n * Input for Reddit Subreddit Search (reddit.subreddit_search).\n */\nexport interface RedditSubredditSearchInput {\n /**\n * Optional pagination token from a previous response.\n */\n cursor?: string;\n /**\n * Optional search query to match posts (e.g. 'push ups').\n */\n query?: string;\n /**\n * Optional sort order: relevance, hot, top, new, comments.\n */\n sort?: string;\n /**\n * Subreddit name without the r/ prefix (e.g. 'Fitness').\n */\n subreddit: string;\n /**\n * Optional time filter: all, year, month, week, day, hour.\n */\n timeframe?: string;\n}\n\nexport interface RedditSubredditSearchPost {\n /**\n * Author username, without the u/ prefix. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Post creation time as a UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Whether the post is marked NSFW (over 18).\n */\n nsfw: boolean;\n /**\n * Total number of comments on the post.\n */\n numComments: number;\n /**\n * Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Populated whenever the provider has data for the entity.\n */\n permalink: string;\n /**\n * Net score (upvotes minus downvotes) at fetch time.\n */\n score: number;\n /**\n * Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.\n */\n subreddit: string;\n /**\n * Post title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Reddit Subreddit Search (reddit.subreddit_search).\n */\nexport interface RedditSubredditSearchData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: RedditSubredditSearchPost[];\n}\n\n/**\n * Typed methods for the reddit platform. Attached to the AnyAPI client as\n * `client.reddit`.\n */\nexport class RedditNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Reddit Post Comments\n *\n * List the top-level comments on a Reddit post by URL (author, body, score, timestamp), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.reddit.postComments({ url: \"https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/\" });\n */\n postComments(\n input: RedditPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditPostCommentsData>> {\n return this._core.run(\"reddit.post_comments\", input, options);\n }\n\n /**\n * Reddit Post Transcript\n *\n * Extract the spoken transcript from a Reddit video post by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.reddit.postTranscript({ url: \"https://www.reddit.com/r/youseeingthisshit/comments/1oiu9xm/\" });\n */\n postTranscript(\n input: RedditPostTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditPostTranscriptData>> {\n return this._core.run(\"reddit.post_transcript\", input, options);\n }\n\n /**\n * Reddit Search\n *\n * Search Reddit posts across all subreddits by query, normalized across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.reddit.search({ query: \"mechanical keyboard\" });\n */\n search(\n input: RedditSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditSearchData>> {\n return this._core.run(\"reddit.search\", input, options);\n }\n\n /**\n * Iterate every result of Reddit Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearch(\n input: RedditSearchInput,\n options?: RequestOptions,\n ): Paginator<RedditSearchPost, RunResult<RedditSearchData>> {\n return paginate<RedditSearchPost, RunResult<RedditSearchData>>(\n this._core,\n \"reddit.search\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n\n /**\n * Reddit Subreddit Details\n *\n * Fetch a subreddit's metadata (weekly active users, description, and category), normalized across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.reddit.subredditDetails({ subreddit: \"programming\" });\n */\n subredditDetails(\n input: RedditSubredditDetailsInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditSubredditDetailsData>> {\n return this._core.run(\"reddit.subreddit_details\", input, options);\n }\n\n /**\n * Reddit Subreddit Posts\n *\n * Fetch posts from a subreddit listing (hot, new, or top), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.reddit.subredditPosts({ subreddit: \"programming\", limit: 5 });\n */\n subredditPosts(\n input: RedditSubredditPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditSubredditPostsData>> {\n return this._core.run(\"reddit.subreddit_posts\", input, options);\n }\n\n /**\n * Reddit Subreddit Search\n *\n * Search posts within a single subreddit by query, sort, and timeframe, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.reddit.subredditSearch({ subreddit: \"Fitness\", query: \"push ups\" });\n */\n subredditSearch(\n input: RedditSubredditSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditSubredditSearchData>> {\n return this._core.run(\"reddit.subreddit_search\", input, options);\n }\n\n /**\n * Iterate every result of Reddit Subreddit Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSubredditSearch(\n input: RedditSubredditSearchInput,\n options?: RequestOptions,\n ): Paginator<\n RedditSubredditSearchPost,\n RunResult<RedditSubredditSearchData>\n > {\n return paginate<\n RedditSubredditSearchPost,\n RunResult<RedditSubredditSearchData>\n >(\n this._core,\n \"reddit.subreddit_search\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Redfin Search (redfin.search).\n */\nexport interface RedfinSearchInput {\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Redfin search results URL for a city, ZIP or map area (e.g. https://www.redfin.com/city/30772/CA/San-Francisco).\n */\n url: string;\n}\n\nexport interface RedfinSearchItem {\n /**\n * Street address line of the home.\n */\n addressLine?: string;\n /**\n * Number of bathrooms (fractional for half baths).\n */\n baths?: number;\n /**\n * Number of bedrooms.\n */\n beds?: number;\n /**\n * City the home is in.\n */\n city?: string;\n /**\n * Latitude of the home in decimal degrees.\n */\n latitude?: number;\n /**\n * Redfin listing id for this specific listing.\n */\n listingId?: string;\n /**\n * Longitude of the home in decimal degrees.\n */\n longitude?: number;\n /**\n * Lot size in square feet.\n */\n lotSize?: number;\n /**\n * MLS number for the listing.\n */\n mlsId?: string;\n /**\n * Postal (ZIP) code of the home.\n */\n postalCode?: string;\n /**\n * List (or last sale) price in US dollars.\n */\n price?: number;\n /**\n * Price per square foot in US dollars.\n */\n pricePerSqft?: number;\n /**\n * Redfin property id (stable identifier for the home). Populated whenever the provider has data for the entity.\n */\n propertyId: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n soldUtc?: number;\n /**\n * Interior living area in square feet.\n */\n sqft?: number;\n /**\n * Two-letter state code the home is in.\n */\n state?: string;\n /**\n * MLS listing status (e.g. Active, Coming Soon, Sold).\n */\n status?: string;\n /**\n * Street address line used as the listing title.\n */\n title?: string;\n /**\n * Canonical Redfin listing detail page URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Year the home was built.\n */\n yearBuilt?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Redfin Search (redfin.search).\n */\nexport interface RedfinSearchData {\n /**\n * Matching Redfin home listing records. Populated whenever the provider has data for the entity.\n */\n items: RedfinSearchItem[];\n}\n\n/**\n * Typed methods for the redfin platform. Attached to the AnyAPI client as\n * `client.redfin`.\n */\nexport class RedfinNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Redfin Search\n *\n * Run a Redfin map search by URL and get matching home listings (price, address, beds, baths, status) as normalized JSON.\n *\n * Price: $0.0027 per request plus $0.00043 per result (maximum $0.01345).\n *\n * @example\n * const res = await client.redfin.search({ url: \"https://www.redfin.com/city/30818/TX/Austin\", limit: 3 });\n */\n search(\n input: RedfinSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedfinSearchData>> {\n return this._core.run(\"redfin.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for RedNote (Xiaohongshu) Note (rednote.note).\n */\nexport interface RednoteNoteInput {\n /**\n * RedNote (Xiaohongshu) note ID.\n */\n noteId: string;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) Note (rednote.note).\n */\nexport interface RednoteNoteData {\n /**\n * URL of the author's avatar. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorImage?: string;\n /**\n * Display name of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author's public RedNote ID. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorRedId?: string;\n /**\n * Identifier of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Number of times the note was collected.\n */\n collectCount?: number;\n /**\n * Number of comments on the note.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Note body text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * URL of the note cover image. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Detected language of the note. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n language?: string;\n /**\n * Number of likes on the note.\n */\n likeCount?: number;\n /**\n * Note identifier. Populated whenever the provider has data for the entity.\n */\n noteId: string;\n /**\n * Number of times the note was shared.\n */\n shareCount?: number;\n /**\n * Note title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Note type, e.g. \"normal\" or \"video\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n type?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n updatedUtc?: number;\n /**\n * Canonical URL of the note. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) Note Comments (rednote.note_comments).\n */\nexport interface RednoteNoteCommentsInput {\n /**\n * Pagination cursor from the previous response.\n */\n cursor?: string;\n /**\n * RedNote (Xiaohongshu) note ID.\n */\n noteId: string;\n}\n\nexport interface RednoteNoteCommentsComment {\n /**\n * Comment identifier. Populated whenever the provider has data for the entity.\n */\n commentId: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * URL of the author's avatar. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * IP-based location shown for the commenter. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n ipLocation?: string;\n /**\n * Number of likes on the comment.\n */\n likeCount?: number;\n /**\n * Display name of the comment author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n nickname?: string;\n /**\n * Identifier of the note the comment belongs to. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n noteId?: string;\n /**\n * Author's public RedNote ID. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n redId?: string;\n /**\n * Number of replies to the comment.\n */\n replyCount?: number;\n /**\n * Comment text content. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n /**\n * Identifier of the comment author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n userId?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) Note Comments (rednote.note_comments).\n */\nexport interface RednoteNoteCommentsData {\n /**\n * Comments on the note. Populated whenever the provider has data for the entity.\n */\n comments: RednoteNoteCommentsComment[];\n /**\n * Cursor for the next page of comments; empty when there are no more.\n */\n nextCursor: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) Profile (rednote.profile).\n */\nexport interface RednoteProfileInput {\n /**\n * RedNote (Xiaohongshu) user ID.\n */\n userId: string;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) Profile (rednote.profile).\n */\nexport interface RednoteProfileData {\n collectedCount?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n followers?: number;\n following?: number;\n gender?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n likedCount?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n location?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n nickname?: string;\n postedNotes?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n redId?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n shareUrl?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n verified?: boolean;\n verifyType?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) Search (rednote.search).\n */\nexport interface RednoteSearchInput {\n /**\n * Pagination cursor from the previous response.\n */\n cursor?: string;\n /**\n * Keyword to search for on RedNote (Xiaohongshu).\n */\n query: string;\n /**\n * Sort order for matching notes.\n * One of: general, hot, time.\n * Default: general.\n */\n sort?: \"general\" | \"hot\" | \"time\";\n}\n\nexport interface RednoteSearchNote {\n /**\n * URL of the author's avatar. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorImage?: string;\n /**\n * Display name of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author's public RedNote ID. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorRedId?: string;\n /**\n * Identifier of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Number of times the note was collected.\n */\n collectCount?: number;\n /**\n * Number of comments on the note.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Note body text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * URL of the note cover image. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Number of likes on the note.\n */\n likeCount?: number;\n /**\n * Note identifier. Populated whenever the provider has data for the entity.\n */\n noteId: string;\n /**\n * Number of times the note was shared.\n */\n shareCount?: number;\n /**\n * Note title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Note type, e.g. \"normal\" or \"video\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n type?: string;\n /**\n * Security token required to fetch the note's full detail. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n xsecToken?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) Search (rednote.search).\n */\nexport interface RednoteSearchData {\n /**\n * Cursor for the next page of results; empty when there are no more.\n */\n nextCursor: string;\n /**\n * Notes matching the search. Populated whenever the provider has data for the entity.\n */\n notes: RednoteSearchNote[];\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) User Search (rednote.search_users).\n */\nexport interface RednoteSearchUsersInput {\n /**\n * Pagination cursor from the previous response.\n */\n cursor?: string;\n /**\n * Keyword to search for on RedNote (Xiaohongshu).\n */\n query: string;\n}\n\nexport interface RednoteSearchUsersUser {\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n link?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n redId?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n subtitle?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n verified?: boolean;\n verifyType?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) User Search (rednote.search_users).\n */\nexport interface RednoteSearchUsersData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n users: RednoteSearchUsersUser[];\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) User Notes (rednote.user_notes).\n */\nexport interface RednoteUserNotesInput {\n /**\n * Pagination cursor from the previous response.\n */\n cursor?: string;\n /**\n * RedNote (Xiaohongshu) user ID.\n */\n userId: string;\n}\n\nexport interface RednoteUserNotesNote {\n /**\n * URL of the author's avatar. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorImage?: string;\n /**\n * Display name of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Identifier of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Number of times the note was collected.\n */\n collectCount?: number;\n /**\n * Number of comments on the note.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Note body text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * URL of the note cover image. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Number of likes on the note.\n */\n likeCount?: number;\n /**\n * Note identifier. Populated whenever the provider has data for the entity.\n */\n noteId: string;\n /**\n * Number of times the note was shared.\n */\n shareCount?: number;\n /**\n * Note title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Note type, e.g. \"normal\" or \"video\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n type?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) User Notes (rednote.user_notes).\n */\nexport interface RednoteUserNotesData {\n /**\n * Cursor for the next page of results; empty when there are no more.\n */\n nextCursor: string;\n /**\n * The user's notes. Populated whenever the provider has data for the entity.\n */\n notes: RednoteUserNotesNote[];\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the rednote platform. Attached to the AnyAPI client as\n * `client.rednote`.\n */\nexport class RednoteNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * RedNote (Xiaohongshu) Note\n *\n * Look up a RedNote (Xiaohongshu) note by note ID and return normalized note details.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.note({ noteId: \"66f2a24f000000002c02cf57\" });\n */\n note(\n input: RednoteNoteInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteNoteData>> {\n return this._core.run(\"rednote.note\", input, options);\n }\n\n /**\n * RedNote (Xiaohongshu) Note Comments\n *\n * List comments on a RedNote (Xiaohongshu) note and return normalized comment records with pagination.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.noteComments({ noteId: \"68dd422c0000000203019829\" });\n */\n noteComments(\n input: RednoteNoteCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteNoteCommentsData>> {\n return this._core.run(\"rednote.note_comments\", input, options);\n }\n\n /**\n * Iterate every result of RedNote (Xiaohongshu) Note Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterNoteComments(\n input: RednoteNoteCommentsInput,\n options?: RequestOptions,\n ): Paginator<RednoteNoteCommentsComment, RunResult<RednoteNoteCommentsData>> {\n return paginate<\n RednoteNoteCommentsComment,\n RunResult<RednoteNoteCommentsData>\n >(\n this._core,\n \"rednote.note_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * RedNote (Xiaohongshu) Profile\n *\n * Look up a RedNote (Xiaohongshu) profile by user ID and return normalized profile details.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.profile({ userId: \"56b0a4491c07df6365277af7\" });\n */\n profile(\n input: RednoteProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteProfileData>> {\n return this._core.run(\"rednote.profile\", input, options);\n }\n\n /**\n * RedNote (Xiaohongshu) Search\n *\n * Search RedNote (Xiaohongshu) notes by keyword and return normalized note records with pagination.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.search({ query: \"coffee\", sort: \"general\" });\n */\n search(\n input: RednoteSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteSearchData>> {\n return this._core.run(\"rednote.search\", input, options);\n }\n\n /**\n * Iterate every result of RedNote (Xiaohongshu) Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearch(\n input: RednoteSearchInput,\n options?: RequestOptions,\n ): Paginator<RednoteSearchNote, RunResult<RednoteSearchData>> {\n return paginate<RednoteSearchNote, RunResult<RednoteSearchData>>(\n this._core,\n \"rednote.search\",\n input as unknown as Record<string, unknown>,\n \"notes\",\n false,\n options,\n );\n }\n\n /**\n * RedNote (Xiaohongshu) User Search\n *\n * Search RedNote (Xiaohongshu) users by keyword and return normalized user records with pagination.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.searchUsers({ query: \"coffee\" });\n */\n searchUsers(\n input: RednoteSearchUsersInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteSearchUsersData>> {\n return this._core.run(\"rednote.search_users\", input, options);\n }\n\n /**\n * Iterate every result of RedNote (Xiaohongshu) User Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchUsers(\n input: RednoteSearchUsersInput,\n options?: RequestOptions,\n ): Paginator<RednoteSearchUsersUser, RunResult<RednoteSearchUsersData>> {\n return paginate<RednoteSearchUsersUser, RunResult<RednoteSearchUsersData>>(\n this._core,\n \"rednote.search_users\",\n input as unknown as Record<string, unknown>,\n \"users\",\n false,\n options,\n );\n }\n\n /**\n * RedNote (Xiaohongshu) User Notes\n *\n * List notes posted by a RedNote (Xiaohongshu) user and return normalized note records with pagination.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.userNotes({ userId: \"56b0a4491c07df6365277af7\" });\n */\n userNotes(\n input: RednoteUserNotesInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteUserNotesData>> {\n return this._core.run(\"rednote.user_notes\", input, options);\n }\n\n /**\n * Iterate every result of RedNote (Xiaohongshu) User Notes across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserNotes(\n input: RednoteUserNotesInput,\n options?: RequestOptions,\n ): Paginator<RednoteUserNotesNote, RunResult<RednoteUserNotesData>> {\n return paginate<RednoteUserNotesNote, RunResult<RednoteUserNotesData>>(\n this._core,\n \"rednote.user_notes\",\n input as unknown as Record<string, unknown>,\n \"notes\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for SEC EDGAR Filings (sec.filings).\n */\nexport interface SecFilingsInput {\n /**\n * Company name to search for (partial match supported, e.g. 'Tesla' or 'Berkshire'). Use this when you do not have the ticker symbol. If both ticker and companyName are given, ticker takes precedence.\n */\n companyName?: string;\n /**\n * Only return filings filed on or after this date, in YYYY-MM-DD format (e.g. 2025-01-01).\n */\n dateFrom?: string;\n /**\n * Only return filings filed on or before this date, in YYYY-MM-DD format (e.g. 2026-06-01).\n */\n dateTo?: string;\n /**\n * Filter filings by SEC form type (e.g. 10-K, 10-Q, 8-K, 4, DEF 14A, S-1, 13F-HR); omit for all forms.\n */\n form?: string;\n /**\n * Maximum number of filings to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Company stock ticker symbol, e.g. AAPL, MSFT, or TSLA. Provide either ticker or companyName; ticker is the more precise lookup.\n */\n ticker?: string;\n}\n\nexport interface SecFilingsItem {\n /**\n * SEC accession number uniquely identifying the filing. Populated whenever the provider has data for the entity.\n */\n accessionNumber: string;\n /**\n * SEC Central Index Key for the filer. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cik?: string;\n /**\n * Filer company name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n companyName?: string;\n /**\n * Primary document description, e.g. the form label.\n */\n description?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Date the filing was filed. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n filedUtc?: number;\n /**\n * Link to the filing index/folder on sec.gov.\n */\n filingUrl?: string;\n /**\n * SEC form type, e.g. 10-K, 10-Q, 8-K. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n form?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Period-of-report date for the filing.\n */\n reportedUtc?: number;\n /**\n * Stock ticker symbol of the filer, when known.\n */\n ticker?: string;\n /**\n * Direct link to the primary filing document on sec.gov. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEC EDGAR Filings (sec.filings).\n */\nexport interface SecFilingsData {\n /**\n * Filing records: company and CIK, form type, filing date, accession number, and document links. Populated whenever the provider has data for the entity.\n */\n items: SecFilingsItem[];\n}\n\n/**\n * Typed methods for the sec platform. Attached to the AnyAPI client as\n * `client.sec`.\n */\nexport class SecNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * SEC EDGAR Filings\n *\n * List a public company's SEC EDGAR filings - form type, filing date, accession number, and document links - by ticker, company name, or CIK, with optional form-type and date filters.\n *\n * Price: $0.002 per request plus $0.0004 per result (maximum $0.012).\n *\n * @example\n * const res = await client.sec.filings({ limit: 3, ticker: \"AAPL\" });\n */\n filings(\n input: SecFilingsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SecFilingsData>> {\n return this._core.run(\"sec.filings\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Semrush Keyword Research (semrush.keywords).\n */\nexport interface SemrushKeywordsInput {\n /**\n * Two-letter Semrush regional database that scopes the metrics (e.g. us, uk, de).\n * Default: us.\n */\n database?: string;\n /**\n * The search term to research (e.g. \"best running shoes\").\n */\n keyword: string;\n}\n\nexport interface SemrushKeywordsItem {\n /**\n * Paid-search competition density, 0 to 1.\n */\n competition?: number;\n /**\n * Average cost per click in USD.\n */\n cpcUsd?: number;\n /**\n * Two-letter Semrush regional database the metrics are scoped to.\n */\n database?: string;\n /**\n * Search-intent labels for the keyword (e.g. commercial, informational). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n intents?: string[];\n /**\n * The researched search term. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Semrush Keyword Difficulty, 0 to 100.\n */\n keywordDifficulty?: number;\n /**\n * Number of organic results Google returns for the keyword.\n */\n organicResultsCount?: number;\n /**\n * Question-phrased keyword variations with their own volume and difficulty. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n questions?: SemrushKeywordsQuestion[];\n /**\n * Median number of referring domains across the ranking pages.\n */\n referringDomainsMedian?: number;\n /**\n * Related keyword suggestions with their own volume and difficulty. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n relatedKeywords?: SemrushKeywordsRelatedKeyword[];\n /**\n * Average monthly search volume in the selected database.\n */\n searchVolume?: number;\n [extra: string]: unknown;\n}\n\nexport interface SemrushKeywordsQuestion {\n /**\n * The question keyword.\n */\n keyword: string;\n /**\n * Semrush Keyword Difficulty for the question keyword, 0 to 100.\n */\n keywordDifficulty?: number;\n /**\n * Average monthly search volume for the question keyword.\n */\n searchVolume?: number;\n [extra: string]: unknown;\n}\n\nexport interface SemrushKeywordsRelatedKeyword {\n /**\n * The related keyword.\n */\n keyword: string;\n /**\n * Semrush Keyword Difficulty for the related keyword, 0 to 100.\n */\n keywordDifficulty?: number;\n /**\n * Average monthly search volume for the related keyword.\n */\n searchVolume?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Semrush Keyword Research (semrush.keywords).\n */\nexport interface SemrushKeywordsData {\n /**\n * Keyword-research records: search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords for the researched term. Populated whenever the provider has data for the entity.\n */\n items: SemrushKeywordsItem[];\n}\n\n/**\n * Input for Semrush Domain Overview (semrush.overview).\n */\nexport interface SemrushOverviewInput {\n /**\n * Two-letter Semrush regional database that scopes the metrics (e.g. us, uk, de).\n * Default: us.\n */\n database?: string;\n /**\n * The domain to analyze (e.g. ahrefs.com).\n */\n domain: string;\n /**\n * Add Moz Domain Authority and Spam Score to the response.\n * Default: false.\n */\n includeMoz?: boolean;\n}\n\nexport interface SemrushOverviewItem {\n /**\n * Semrush AI visibility metric for the domain.\n */\n aiVisibility?: number;\n /**\n * Semrush Authority Score, 0-100.\n */\n authorityScore?: number;\n /**\n * Total number of backlinks pointing at the domain.\n */\n backlinks?: number;\n /**\n * Two-letter Semrush regional database the metrics are scoped to.\n */\n database?: string;\n /**\n * The analyzed domain. Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Number of dofollow backlinks.\n */\n followBacklinks?: number;\n /**\n * Moz Domain Authority, 0-100 (only when includeMoz is true).\n */\n mozDomainAuthority?: number;\n /**\n * Moz Spam Score as a percentage string (only when includeMoz is true).\n */\n mozSpamScore?: string;\n /**\n * Number of nofollow backlinks.\n */\n nofollowBacklinks?: number;\n /**\n * Number of keywords the domain ranks for organically.\n */\n organicKeywords?: number;\n /**\n * Estimated monthly organic search traffic.\n */\n organicTraffic?: number;\n /**\n * Estimated USD value of the organic traffic.\n */\n organicTrafficCostUsd?: number;\n /**\n * Number of keywords the domain bids on.\n */\n paidKeywords?: number;\n /**\n * Estimated monthly paid search traffic.\n */\n paidTraffic?: number;\n /**\n * Estimated USD value of the paid traffic.\n */\n paidTrafficCostUsd?: number;\n /**\n * Number of unique domains linking to the domain.\n */\n referringDomains?: number;\n /**\n * Two-letter code of the country sending the most traffic.\n */\n topCountry?: string;\n /**\n * Estimated monthly traffic from the top country.\n */\n topCountryTraffic?: number;\n /**\n * The domain's top organic keywords with position, volume, and value. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n topKeywords?: SemrushOverviewTopKeyword[];\n /**\n * Estimated total monthly traffic across organic and paid.\n */\n totalTraffic?: number;\n [extra: string]: unknown;\n}\n\nexport interface SemrushOverviewTopKeyword {\n /**\n * Average cost per click in USD.\n */\n cpcUsd?: number;\n /**\n * Search intents associated with the keyword.\n */\n intents?: string[];\n /**\n * The organic keyword.\n */\n keyword: string;\n /**\n * Semrush Keyword Difficulty, 0-100.\n */\n keywordDifficulty?: number;\n /**\n * Current SERP position for this keyword.\n */\n position?: number;\n /**\n * Monthly search volume for this keyword.\n */\n searchVolume?: number;\n /**\n * Estimated monthly traffic this keyword drives to the domain.\n */\n traffic?: number;\n /**\n * The ranking URL on the domain.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Semrush Domain Overview (semrush.overview).\n */\nexport interface SemrushOverviewData {\n /**\n * Domain overview records: Authority Score, organic and paid traffic, keyword and backlink counts, top country, and the domain's top organic keywords. Populated whenever the provider has data for the entity.\n */\n items: SemrushOverviewItem[];\n}\n\n/**\n * Typed methods for the semrush platform. Attached to the AnyAPI client as\n * `client.semrush`.\n */\nexport class SemrushNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Semrush Keyword Research\n *\n * Semrush keyword research for any term: monthly search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords.\n *\n * Price: $0 per request plus $0.015 per result (maximum $0.015).\n *\n * @example\n * const res = await client.semrush.keywords({ keyword: \"best running shoes\", database: \"us\" });\n */\n keywords(\n input: SemrushKeywordsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SemrushKeywordsData>> {\n return this._core.run(\"semrush.keywords\", input, options);\n }\n\n /**\n * Semrush Domain Overview\n *\n * a Semrush SEO overview for any domain: Authority Score, organic and paid traffic, keyword and backlink counts, top country, and the domain's top organic keywords.\n *\n * Price: $0 per request plus $0.015 per result (maximum $0.015).\n *\n * @example\n * const res = await client.semrush.overview({ domain: \"ahrefs.com\", database: \"us\" });\n */\n overview(\n input: SemrushOverviewInput,\n options?: RequestOptions,\n ): Promise<RunResult<SemrushOverviewData>> {\n return this._core.run(\"semrush.overview\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for SEO Competitor Domains (seo.competitors_domain).\n */\nexport interface SeoCompetitorsDomainInput {\n /**\n * Language code for SEO competitor metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of competitor domains to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 10.\n */\n limit?: number;\n /**\n * Location code for SEO competitor metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned competitors: by shared keyword count (intersections), organic keyword count, organic traffic value (etv), or average position. Omit for the default order.\n * One of: intersections_desc, organic_keywords_desc, organic_etv_desc, avg_position_asc.\n */\n orderBy?:\n | \"intersections_desc\"\n | \"organic_keywords_desc\"\n | \"organic_etv_desc\"\n | \"avg_position_asc\";\n /**\n * Domain to analyze, without a protocol or leading www.\n */\n target: string;\n}\n\nexport interface SeoCompetitorsDomainCompetitor {\n /**\n * Average ranking position across shared keywords. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n avgPosition?: number;\n /**\n * Competing domain. Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Number of keywords shared with the target domain. Populated whenever the provider has data for the entity.\n */\n intersections: number;\n /**\n * Estimated monthly organic search traffic for the competitor domain.\n */\n organicEtv?: number;\n /**\n * Number of organic search results where the competitor domain appears.\n */\n organicKeywords?: number;\n /**\n * Sum of ranking positions across shared keywords. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n sumPosition?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Competitor Domains (seo.competitors_domain).\n */\nexport interface SeoCompetitorsDomainData {\n /**\n * SEO competitor domain records. Populated whenever the provider has data for the entity.\n */\n competitors: SeoCompetitorsDomainCompetitor[];\n}\n\n/**\n * Input for SEO Domain Intersection (seo.domain_intersection).\n */\nexport interface SeoDomainIntersectionInput {\n /**\n * When true (the default), return keywords both domains rank for (overlap). When false, return keywords the first domain ranks for that the second domain does NOT (the content-gap query); in that mode secondRank and secondUrl are absent.\n */\n intersections?: boolean;\n /**\n * Language code for SEO overlap metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of keywords to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 10.\n */\n limit?: number;\n /**\n * Location code for SEO overlap metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned keywords: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.\n * One of: volume_desc, volume_asc, cpc_desc, difficulty_asc, difficulty_desc.\n */\n orderBy?:\n | \"volume_desc\"\n | \"volume_asc\"\n | \"cpc_desc\"\n | \"difficulty_asc\"\n | \"difficulty_desc\";\n /**\n * First domain to compare, without a protocol or leading www.\n */\n target1: string;\n /**\n * Second domain to compare, without a protocol or leading www.\n */\n target2: string;\n}\n\nexport interface SeoDomainIntersectionKeyword {\n /**\n * Average paid-search cost per click in USD.\n */\n cpc?: number;\n /**\n * Absolute organic ranking position for the first domain. Populated whenever the provider has data for the entity.\n */\n firstRank: number;\n /**\n * Ranking URL for the first domain.\n */\n firstUrl?: string;\n /**\n * Keyword phrase both domains rank for. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale.\n */\n keywordDifficulty?: number;\n /**\n * Average monthly search volume for the keyword.\n */\n searchVolume?: number;\n /**\n * Absolute organic ranking position for the second domain. Absent when intersections is false (the second domain does not rank for this keyword).\n */\n secondRank?: number;\n /**\n * Ranking URL for the second domain. Absent when intersections is false.\n */\n secondUrl?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Domain Intersection (seo.domain_intersection).\n */\nexport interface SeoDomainIntersectionData {\n /**\n * SEO keyword records both domains rank for. Populated whenever the provider has data for the entity.\n */\n keywords: SeoDomainIntersectionKeyword[];\n}\n\n/**\n * Input for SEO Domain Rank Overview (seo.domain_rank_overview).\n */\nexport interface SeoDomainRankOverviewInput {\n /**\n * Language code for SEO domain metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Location code for SEO domain metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Domain to analyze, without a protocol or leading www.\n */\n target: string;\n}\n\n/**\n * The `data` payload of SEO Domain Rank Overview (seo.domain_rank_overview).\n */\nexport interface SeoDomainRankOverviewData {\n /**\n * Analyzed domain. Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Language code the metrics are scoped to.\n */\n language?: string;\n /**\n * Location code the metrics are scoped to.\n */\n location?: number;\n /**\n * Number of organic search results where the domain appears. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicKeywords?: number;\n /**\n * Number of organic search results where the domain ranks first. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicPos1?: number;\n /**\n * Number of organic search results where the domain ranks second or third. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicPos2To3?: number;\n /**\n * Number of organic search results where the domain ranks fourth through tenth. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicPos4To10?: number;\n /**\n * Estimated monthly organic search traffic. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicTraffic?: number;\n /**\n * Estimated USD value of the organic search traffic. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicTrafficCostUsd?: number;\n /**\n * Number of paid search results where the domain appears.\n */\n paidKeywords?: number;\n /**\n * Number of paid search results where the domain ranks first.\n */\n paidPos1?: number;\n /**\n * Number of paid search results where the domain ranks second or third.\n */\n paidPos2To3?: number;\n /**\n * Number of paid search results where the domain ranks fourth through tenth.\n */\n paidPos4To10?: number;\n /**\n * Estimated monthly paid search traffic.\n */\n paidTraffic?: number;\n /**\n * Estimated USD value of the paid search traffic.\n */\n paidTrafficCostUsd?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for SEO Keyword Difficulty (seo.keyword_difficulty).\n */\nexport interface SeoKeywordDifficultyInput {\n /**\n * SEO keywords to score for organic ranking difficulty.\n */\n keywords: string[];\n /**\n * Language code for SEO keyword difficulty metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Location code for SEO keyword difficulty metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n}\n\nexport interface SeoKeywordDifficultyDifficultie {\n /**\n * Keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Omitted when the upstream has no difficulty for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Keyword Difficulty (seo.keyword_difficulty).\n */\nexport interface SeoKeywordDifficultyData {\n /**\n * SEO keyword difficulty records. Populated whenever the provider has data for the entity.\n */\n difficulties: SeoKeywordDifficultyDifficultie[];\n}\n\n/**\n * Input for SEO Keyword Ideas (seo.keyword_ideas).\n */\nexport interface SeoKeywordIdeasInput {\n /**\n * When true, generate only close variants of the seed keywords; when false (the default), generate a broader set of related ideas.\n */\n closelyVariants?: boolean;\n /**\n * Seed SEO keywords used to generate related keyword ideas.\n */\n keywords: string[];\n /**\n * Language code for SEO metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of keyword ideas to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 5.\n */\n limit?: number;\n /**\n * Location code for SEO metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned ideas: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.\n * One of: volume_desc, volume_asc, cpc_desc, difficulty_asc, difficulty_desc.\n */\n orderBy?:\n | \"volume_desc\"\n | \"volume_asc\"\n | \"cpc_desc\"\n | \"difficulty_asc\"\n | \"difficulty_desc\";\n}\n\nexport interface SeoKeywordIdeasIdea {\n /**\n * Paid-search competition level for the keyword idea. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Keyword idea phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n /**\n * Primary SEO search intent for the keyword idea. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the keyword idea. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Keyword Ideas (seo.keyword_ideas).\n */\nexport interface SeoKeywordIdeasData {\n /**\n * SEO keyword idea records. Populated whenever the provider has data for the entity.\n */\n ideas: SeoKeywordIdeasIdea[];\n}\n\n/**\n * Input for SEO Keyword Overview (seo.keyword_overview).\n */\nexport interface SeoKeywordOverviewInput {\n /**\n * SEO keywords to analyze.\n */\n keywords: string[];\n /**\n * Language code for SEO metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Location code for SEO metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n}\n\nexport interface SeoKeywordOverviewKeyword {\n /**\n * Upper bound of the estimated paid-search top-of-page bid in USD.\n */\n bidHigh?: number;\n /**\n * Lower bound of the estimated paid-search top-of-page bid in USD.\n */\n bidLow?: number;\n /**\n * Paid-search competition level for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n /**\n * Monthly search-volume history for the keyword.\n */\n monthlySearches?: SeoKeywordOverviewMonthlySearche[];\n /**\n * Primary SEO search intent for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\nexport interface SeoKeywordOverviewMonthlySearche {\n /**\n * Calendar month number for the monthly search-volume record.\n */\n month?: number;\n /**\n * Search volume for the month.\n */\n searchVolume?: number;\n /**\n * Calendar year for the monthly search-volume record.\n */\n year?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Keyword Overview (seo.keyword_overview).\n */\nexport interface SeoKeywordOverviewData {\n /**\n * SEO keyword metric records. Populated whenever the provider has data for the entity.\n */\n keywords: SeoKeywordOverviewKeyword[];\n}\n\n/**\n * Input for SEO Keyword Suggestions (seo.keyword_suggestions).\n */\nexport interface SeoKeywordSuggestionsInput {\n /**\n * When true, only return suggestions that contain the exact seed phrase; when false (the default), allow reordered and partial-match suggestions.\n */\n exactMatch?: boolean;\n /**\n * Seed SEO keyword used to generate keyword suggestions.\n */\n keyword: string;\n /**\n * Language code for SEO metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of keyword suggestions to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 5.\n */\n limit?: number;\n /**\n * Location code for SEO metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned suggestions: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.\n * One of: volume_desc, volume_asc, cpc_desc, difficulty_asc, difficulty_desc.\n */\n orderBy?:\n | \"volume_desc\"\n | \"volume_asc\"\n | \"cpc_desc\"\n | \"difficulty_asc\"\n | \"difficulty_desc\";\n}\n\nexport interface SeoKeywordSuggestionsSuggestion {\n /**\n * Paid-search competition level for the keyword suggestion. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Keyword suggestion phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n /**\n * Primary SEO search intent for the keyword suggestion. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the keyword suggestion. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Keyword Suggestions (seo.keyword_suggestions).\n */\nexport interface SeoKeywordSuggestionsData {\n /**\n * SEO keyword suggestion records. Populated whenever the provider has data for the entity.\n */\n suggestions: SeoKeywordSuggestionsSuggestion[];\n}\n\n/**\n * Input for SEO Local Pack (seo.local_pack).\n */\nexport interface SeoLocalPackInput {\n /**\n * SEO local pack search keyword.\n */\n keyword: string;\n /**\n * Language code for SEO local pack results.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of local pack places to return. Billing is flat per request.\n * Range: minimum 1, maximum 100.\n * Default: 20.\n */\n limit?: number;\n /**\n * Local pack search location name, formatted like City,Region,Country; for example, New York,New York,United States. Supply either location or locationCoordinate, not both.\n */\n location?: string;\n /**\n * Precise geo target as latitude,longitude or latitude,longitude,radius (radius in meters); for example, 40.7580,-73.9855 or 40.7580,-73.9855,1000. Supply either location or locationCoordinate, not both.\n */\n locationCoordinate?: string;\n}\n\nexport interface SeoLocalPackPlace {\n /**\n * Full formatted street address. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n address?: string;\n /**\n * Primary place category.\n */\n category?: string;\n /**\n * True when the place listing is claimed.\n */\n claimed?: boolean;\n /**\n * Latitude of the place in decimal degrees.\n */\n latitude?: number;\n /**\n * Longitude of the place in decimal degrees.\n */\n longitude?: number;\n /**\n * Place name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Business phone number, when listed.\n */\n phone?: string;\n /**\n * Place identifier.\n */\n placeId?: string;\n /**\n * Absolute ranking position in the local pack results. Populated whenever the provider has data for the entity.\n */\n rankAbsolute: number;\n /**\n * Average star rating out of 5. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n rating?: number;\n /**\n * Total number of reviews.\n */\n reviewsCount?: number;\n /**\n * Canonical place URL.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Local Pack (seo.local_pack).\n */\nexport interface SeoLocalPackData {\n /**\n * SEO local pack place records. Populated whenever the provider has data for the entity.\n */\n places: SeoLocalPackPlace[];\n}\n\n/**\n * Input for SEO Ranked Keywords (seo.ranked_keywords).\n */\nexport interface SeoRankedKeywordsInput {\n /**\n * Language code for SEO ranking metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of ranked keywords to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 10.\n */\n limit?: number;\n /**\n * Location code for SEO ranking metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned ranked keywords: by SERP position (ascending for best rankings first), search volume, or estimated traffic value (etv). Omit for the default order.\n * One of: position_asc, position_desc, volume_desc, etv_desc.\n */\n orderBy?: \"position_asc\" | \"position_desc\" | \"volume_desc\" | \"etv_desc\";\n /**\n * Domain to analyze, without a protocol or leading www.\n */\n target: string;\n}\n\nexport interface SeoRankedKeywordsRankedKeyword {\n /**\n * Average paid-search cost per click in USD.\n */\n cpc?: number;\n /**\n * Estimated organic search traffic for the ranking URL.\n */\n etv?: number;\n /**\n * Keyword phrase the domain ranks for. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale.\n */\n keywordDifficulty?: number;\n /**\n * Absolute organic ranking position for the keyword. Populated whenever the provider has data for the entity.\n */\n rankAbsolute: number;\n /**\n * Grouped organic ranking position for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n rankGroup?: number;\n /**\n * Primary SEO search intent for the keyword.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Ranking URL for the domain.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Ranked Keywords (seo.ranked_keywords).\n */\nexport interface SeoRankedKeywordsData {\n /**\n * SEO ranked keyword records for the domain. Populated whenever the provider has data for the entity.\n */\n rankedKeywords: SeoRankedKeywordsRankedKeyword[];\n}\n\n/**\n * Input for SEO Related Keywords (seo.related_keywords).\n */\nexport interface SeoRelatedKeywordsInput {\n /**\n * Depth of the related-keyword expansion (0-4). Higher depth explores a broader keyword tree; the number of returned results, and therefore the price, is still capped by limit.\n * Range: minimum 0, maximum 4.\n */\n depth?: number;\n /**\n * Seed SEO keyword used to find related keywords.\n */\n keyword: string;\n /**\n * Language code for SEO metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of related keywords to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 5.\n */\n limit?: number;\n /**\n * Location code for SEO metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned related keywords: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.\n * One of: volume_desc, volume_asc, cpc_desc, difficulty_asc, difficulty_desc.\n */\n orderBy?:\n | \"volume_desc\"\n | \"volume_asc\"\n | \"cpc_desc\"\n | \"difficulty_asc\"\n | \"difficulty_desc\";\n}\n\nexport interface SeoRelatedKeywordsRelatedKeyword {\n /**\n * Paid-search competition level for the related keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Related-keyword graph depth from the seed keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n depth?: number;\n /**\n * Related keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n /**\n * Primary SEO search intent for the related keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the related keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Related Keywords (seo.related_keywords).\n */\nexport interface SeoRelatedKeywordsData {\n /**\n * SEO related keyword records. Populated whenever the provider has data for the entity.\n */\n relatedKeywords: SeoRelatedKeywordsRelatedKeyword[];\n}\n\n/**\n * Input for SEO Search Intent (seo.search_intent).\n */\nexport interface SeoSearchIntentInput {\n /**\n * SEO keywords to classify by search intent.\n */\n keywords: string[];\n /**\n * Language code for search intent classification.\n * Default: en.\n */\n language?: string;\n}\n\nexport interface SeoSearchIntentIntent {\n /**\n * Primary SEO search intent for the keyword. Populated whenever the provider has data for the entity.\n */\n intent: string;\n /**\n * Keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Search Intent (seo.search_intent).\n */\nexport interface SeoSearchIntentData {\n /**\n * SEO keyword search intent records. Populated whenever the provider has data for the entity.\n */\n intents: SeoSearchIntentIntent[];\n}\n\n/**\n * Input for SEO Search Volume (seo.search_volume).\n */\nexport interface SeoSearchVolumeInput {\n /**\n * Start of the historical monthly-searches window, formatted YYYY-MM-DD. Cannot be more than four years before today. Omit for the default trailing window.\n */\n dateFrom?: string;\n /**\n * End of the historical monthly-searches window, formatted YYYY-MM-DD. Omit for the default trailing window.\n */\n dateTo?: string;\n /**\n * SEO keyword phrases to retrieve search-volume metrics for.\n */\n keywords: string[];\n /**\n * Language code for SEO search-volume metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Location code for SEO search-volume metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * When true, include Google search-partner network volume in the reported numbers; when false (the default), count Google search only.\n */\n searchPartners?: boolean;\n}\n\nexport interface SeoSearchVolumeKeyword {\n /**\n * Upper bound of the estimated paid-search top-of-page bid in USD.\n */\n bidHigh?: number;\n /**\n * Lower bound of the estimated paid-search top-of-page bid in USD.\n */\n bidLow?: number;\n /**\n * Paid-search competition level for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Paid-search competition index for the keyword.\n */\n competitionIndex?: number;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Monthly search-volume history for the keyword.\n */\n monthlySearches?: SeoSearchVolumeMonthlySearche[];\n /**\n * Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n [extra: string]: unknown;\n}\n\nexport interface SeoSearchVolumeMonthlySearche {\n /**\n * Calendar month number for the monthly search-volume record.\n */\n month?: number;\n /**\n * Search volume for the month.\n */\n searchVolume?: number;\n /**\n * Calendar year for the monthly search-volume record.\n */\n year?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Search Volume (seo.search_volume).\n */\nexport interface SeoSearchVolumeData {\n /**\n * SEO keyword search-volume records. Populated whenever the provider has data for the entity.\n */\n keywords: SeoSearchVolumeKeyword[];\n}\n\n/**\n * Typed methods for the seo platform. Attached to the AnyAPI client as\n * `client.seo`.\n */\nexport class SeoNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * SEO Competitor Domains\n *\n * Get AnyAPI SEO competitor domains for a target domain with shared keyword counts and organic metrics as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.competitorsDomain({ target: \"github.com\", language: \"en\", limit: 10, location: 2840 });\n */\n competitorsDomain(\n input: SeoCompetitorsDomainInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoCompetitorsDomainData>> {\n return this._core.run(\"seo.competitors_domain\", input, options);\n }\n\n /**\n * SEO Domain Intersection\n *\n * Get AnyAPI SEO keyword overlap for two domains with each domain's rankings, URLs, volume, CPC, and difficulty as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.domainIntersection({ target1: \"github.com\", target2: \"gitlab.com\", language: \"en\", limit: 10, location: 2840 });\n */\n domainIntersection(\n input: SeoDomainIntersectionInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoDomainIntersectionData>> {\n return this._core.run(\"seo.domain_intersection\", input, options);\n }\n\n /**\n * SEO Domain Rank Overview\n *\n * Get AnyAPI SEO domain ranking, organic traffic, and paid traffic metrics as normalized JSON.\n *\n * Price: $0.0156 per request plus $0 per result (maximum $0.0156).\n *\n * @example\n * const res = await client.seo.domainRankOverview({ target: \"ahrefs.com\", language: \"en\", location: 2840 });\n */\n domainRankOverview(\n input: SeoDomainRankOverviewInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoDomainRankOverviewData>> {\n return this._core.run(\"seo.domain_rank_overview\", input, options);\n }\n\n /**\n * SEO Keyword Difficulty\n *\n * Get AnyAPI SEO keyword difficulty scores for one or more keywords as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per keyword (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.keywordDifficulty({ keywords: [\"seo tools\"], language: \"en\", location: 2840 });\n */\n keywordDifficulty(\n input: SeoKeywordDifficultyInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoKeywordDifficultyData>> {\n return this._core.run(\"seo.keyword_difficulty\", input, options);\n }\n\n /**\n * SEO Keyword Ideas\n *\n * Find AnyAPI SEO keyword ideas from seed terms with volume, CPC, competition, difficulty, and intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.keywordIdeas({ keywords: [\"project management software\"], language: \"en\", limit: 5, location: 2840 });\n */\n keywordIdeas(\n input: SeoKeywordIdeasInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoKeywordIdeasData>> {\n return this._core.run(\"seo.keyword_ideas\", input, options);\n }\n\n /**\n * SEO Keyword Overview\n *\n * Get AnyAPI SEO keyword metrics including search volume, CPC, competition, difficulty, and search intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per keyword (maximum $0.1276).\n *\n * @example\n * const res = await client.seo.keywordOverview({ keywords: [\"project management software\"], language: \"en\", location: 2840 });\n */\n keywordOverview(\n input: SeoKeywordOverviewInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoKeywordOverviewData>> {\n return this._core.run(\"seo.keyword_overview\", input, options);\n }\n\n /**\n * SEO Keyword Suggestions\n *\n * Find AnyAPI SEO keyword suggestions from a seed term with volume, CPC, competition, difficulty, and intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.keywordSuggestions({ keyword: \"project management software\", language: \"en\", limit: 5, location: 2840 });\n */\n keywordSuggestions(\n input: SeoKeywordSuggestionsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoKeywordSuggestionsData>> {\n return this._core.run(\"seo.keyword_suggestions\", input, options);\n }\n\n /**\n * SEO Local Pack\n *\n * Search AnyAPI SEO local pack results with rankings, ratings, addresses, and contact basics as normalized JSON.\n *\n * Price: $0.0026 per request plus $0 per result (maximum $0.0026).\n *\n * @example\n * const res = await client.seo.localPack({ keyword: \"coffee shop\", language: \"en\", limit: 5, location: \"New York,New York,United States\" });\n */\n localPack(\n input: SeoLocalPackInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoLocalPackData>> {\n return this._core.run(\"seo.local_pack\", input, options);\n }\n\n /**\n * SEO Ranked Keywords\n *\n * Get AnyAPI SEO ranked keywords for a domain with rankings, traffic estimates, volume, CPC, difficulty, and intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.rankedKeywords({ target: \"github.com\", language: \"en\", limit: 10, location: 2840 });\n */\n rankedKeywords(\n input: SeoRankedKeywordsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoRankedKeywordsData>> {\n return this._core.run(\"seo.ranked_keywords\", input, options);\n }\n\n /**\n * SEO Related Keywords\n *\n * Find AnyAPI SEO related keywords from a seed term with volume, CPC, competition, difficulty, and intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.relatedKeywords({ keyword: \"project management software\", language: \"en\", limit: 5, location: 2840 });\n */\n relatedKeywords(\n input: SeoRelatedKeywordsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoRelatedKeywordsData>> {\n return this._core.run(\"seo.related_keywords\", input, options);\n }\n\n /**\n * SEO Search Intent\n *\n * Classify AnyAPI SEO keyword search intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per keyword (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.searchIntent({ keywords: [\"seo tools\"], language: \"en\" });\n */\n searchIntent(\n input: SeoSearchIntentInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoSearchIntentData>> {\n return this._core.run(\"seo.search_intent\", input, options);\n }\n\n /**\n * SEO Search Volume\n *\n * Get AnyAPI SEO keyword search volume, CPC, competition, bid estimates, and monthly history as normalized JSON.\n *\n * Price: $0.117 per request plus $0 per result (maximum $0.117).\n *\n * @example\n * const res = await client.seo.searchVolume({ keywords: [\"seo tools\"], language: \"en\", location: 2840 });\n */\n searchVolume(\n input: SeoSearchVolumeInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoSearchVolumeData>> {\n return this._core.run(\"seo.search_volume\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Snapchat Profile (snapchat.profile).\n */\nexport interface SnapchatProfileInput {\n /**\n * The Snapchat username or profile URL to look up (e.g. fcbarcelona or https://www.snapchat.com/add/fcbarcelona).\n */\n username: string;\n}\n\nexport interface SnapchatProfileItem {\n /**\n * The profile's public bio / description text. Empty when the profile has none.\n */\n bio?: string;\n /**\n * The profile's category (e.g. \"Government Org\"). Empty when the upstream omits it.\n */\n category?: string;\n /**\n * The profile's public display name. Populated whenever the provider has data for the entity.\n */\n displayName: string;\n /**\n * The profile's Snapchat username (add-me handle). Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * URL of the profile avatar image, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * Recent public stories on the profile.\n */\n stories?: SnapchatProfileStorie[];\n /**\n * Public subscriber count.\n */\n subscribers?: number;\n /**\n * Canonical public profile URL, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The profile's linked website URL. Empty when the profile has none.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\nexport interface SnapchatProfileStorie {\n /**\n * Story identifier.\n */\n id?: string;\n /**\n * Story title. Empty when the story has no title.\n */\n storyTitle?: string;\n /**\n * Story thumbnail image URL, with tracking query params stripped.\n */\n thumbnailUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Snapchat Profile (snapchat.profile).\n */\nexport interface SnapchatProfileData {\n /**\n * Profile record for the requested Snapchat username (one item). Populated whenever the provider has data for the entity.\n */\n items: SnapchatProfileItem[];\n}\n\n/**\n * Typed methods for the snapchat platform. Attached to the AnyAPI client as\n * `client.snapchat`.\n */\nexport class SnapchatNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Snapchat Profile\n *\n * Fetch a Snapchat user's public profile by username: display name, bio, subscriber count, and recent public content.\n *\n * Price: $0.001 per request plus $0.002 per result (maximum $0.003).\n *\n * @example\n * const res = await client.snapchat.profile({ username: \"nasa\" });\n */\n profile(\n input: SnapchatProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<SnapchatProfileData>> {\n return this._core.run(\"snapchat.profile\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Social Profile Finder (social.finder).\n */\nexport interface SocialFinderInput {\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * The profile name or handle to search for across social networks (e.g. johndoe).\n */\n name: string;\n /**\n * Limit the search to one network: askfm, discord, facebook, github, instagram, linkedin, medium, pinterest, steam, threads, tiktok, twitch, or youtube (e.g. instagram); all networks are searched when omitted.\n */\n platform?: string;\n}\n\nexport interface SocialFinderItem {\n /**\n * The name that was searched for. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n inputProfileName?: string;\n /**\n * The social network checked (e.g. discord, facebook, github). Populated whenever the provider has data for the entity.\n */\n social: string;\n /**\n * URL of the matching profile, or null when no account was found on that network.\n */\n socialProfileUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Social Profile Finder (social.finder).\n */\nexport interface SocialFinderData {\n /**\n * Profile match records: the queried profile name, the social network, and the matching profile URL when one was found. Populated whenever the provider has data for the entity.\n */\n items: SocialFinderItem[];\n}\n\n/**\n * Typed methods for the social platform. Attached to the AnyAPI client as\n * `client.social`.\n */\nexport class SocialNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Social Profile Finder\n *\n * Find a person's or brand's profiles across major social networks from a single name, returned as normalized JSON.\n *\n * Price: $0.001 per request plus $0.002 per result (maximum $0.021).\n *\n * @example\n * const res = await client.social.finder({ name: \"Elon Musk\", limit: 3 });\n */\n finder(\n input: SocialFinderInput,\n options?: RequestOptions,\n ): Promise<RunResult<SocialFinderData>> {\n return this._core.run(\"social.finder\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Spotify Album (spotify.album).\n */\nexport interface SpotifyAlbumInput {\n /**\n * Spotify album ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify album URL (e.g. https://open.spotify.com/album/0pgrg7phBbnwGJ2HBEl9EG).\n */\n url?: string;\n}\n\nexport interface SpotifyAlbumTrack {\n durationMs: number;\n name: string;\n playcount: number;\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Album (spotify.album).\n */\nexport interface SpotifyAlbumData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n label: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n popularity: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n releaseDate: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n tracks: SpotifyAlbumTrack[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n}\n\n/**\n * Input for Spotify Artist (spotify.artist).\n */\nexport interface SpotifyArtistInput {\n /**\n * Spotify artist ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify artist URL (e.g. https://open.spotify.com/artist/3DiDSECUqqY1AuBP8qtaIa).\n */\n url?: string;\n}\n\nexport interface SpotifyArtistAlbum {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n trackCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n year: number;\n [extra: string]: unknown;\n}\n\nexport interface SpotifyArtistTopTrack {\n id: string;\n name: string;\n playcount: number;\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Artist (spotify.artist).\n */\nexport interface SpotifyArtistData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n albums: SpotifyArtistAlbum[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n topTracks: SpotifyArtistTopTrack[];\n}\n\n/**\n * Input for Spotify Play Count (spotify.play_count).\n */\nexport interface SpotifyPlayCountInput {\n /**\n * Spotify track, album, or artist URL to fetch stream counts for (e.g. https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp).\n */\n url: string;\n}\n\nexport interface SpotifyPlayCountItem {\n /**\n * Name of the album the track belongs to. Empty when the upstream omits it.\n */\n albumName?: string;\n /**\n * Name of the primary artist. Empty when the upstream omits it.\n */\n artistName?: string;\n /**\n * Track duration in milliseconds.\n */\n durationMs?: number;\n /**\n * The Spotify entity ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * The track (or entity) name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Total number of streams/plays for the track. Populated whenever the provider has data for the entity.\n */\n playCount: number;\n /**\n * The Spotify entity type (e.g. \"track\").\n */\n type?: string;\n /**\n * Canonical open.spotify.com URL for the entity, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Play Count (spotify.play_count).\n */\nexport interface SpotifyPlayCountData {\n /**\n * Play-count records for the requested Spotify entity (one per track). Populated whenever the provider has data for the entity.\n */\n items: SpotifyPlayCountItem[];\n}\n\n/**\n * Input for Spotify Podcast (spotify.podcast).\n */\nexport interface SpotifyPodcastInput {\n /**\n * Spotify podcast show ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify podcast show URL (e.g. https://open.spotify.com/show/3mliji9352UAk3XnWElnDV).\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Spotify Podcast (spotify.podcast).\n */\nexport interface SpotifyPodcastData {\n averageRating: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publisher: string;\n totalRatings: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Spotify Podcast Episodes (spotify.podcast_episodes).\n */\nexport interface SpotifyPodcastEpisodesInput {\n /**\n * Pagination cursor from a previous response for subsequent pages.\n */\n cursor?: string;\n /**\n * Spotify podcast show ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify podcast show URL (e.g. https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk).\n */\n url?: string;\n}\n\nexport interface SpotifyPodcastEpisodesEpisode {\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n durationMs: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n releaseDate: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Podcast Episodes (spotify.podcast_episodes).\n */\nexport interface SpotifyPodcastEpisodesData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n episodes: SpotifyPodcastEpisodesEpisode[];\n nextCursor: string;\n totalCount: number;\n}\n\n/**\n * Input for Spotify Search (spotify.search).\n */\nexport interface SpotifySearchInput {\n /**\n * Search term (e.g. \"my first million\").\n */\n query: string;\n}\n\nexport interface SpotifySearchAlbum {\n id: string;\n name: string;\n uri: string;\n year: number;\n [extra: string]: unknown;\n}\n\nexport interface SpotifySearchArtist {\n id: string;\n name: string;\n uri: string;\n verified: boolean;\n [extra: string]: unknown;\n}\n\nexport interface SpotifySearchPodcast {\n id: string;\n name: string;\n publisher: string;\n [extra: string]: unknown;\n}\n\nexport interface SpotifySearchTrack {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Search (spotify.search).\n */\nexport interface SpotifySearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n albums: SpotifySearchAlbum[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n artists: SpotifySearchArtist[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n podcasts: SpotifySearchPodcast[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n tracks: SpotifySearchTrack[];\n}\n\n/**\n * Input for Spotify Track (spotify.track).\n */\nexport interface SpotifyTrackInput {\n /**\n * Spotify track ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify track URL (e.g. https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT).\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Spotify Track (spotify.track).\n */\nexport interface SpotifyTrackData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n durationMs: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n playcount: number;\n popularity: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shareUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n trackNumber: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the spotify platform. Attached to the AnyAPI client as\n * `client.spotify`.\n */\nexport class SpotifyNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Spotify Album\n *\n * Fetch a Spotify album's tracklist, play counts, label, and release details by album URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.album({ url: \"https://open.spotify.com/album/0pgrg7phBbnwGJ2HBEl9EG\" });\n */\n album(\n input: SpotifyAlbumInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyAlbumData>> {\n return this._core.run(\"spotify.album\", input, options);\n }\n\n /**\n * Spotify Artist\n *\n * Fetch a Spotify artist's discography (albums, singles, top tracks) and metadata by artist URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.artist({ url: \"https://open.spotify.com/artist/3DiDSECUqqY1AuBP8qtaIa\" });\n */\n artist(\n input: SpotifyArtistInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyArtistData>> {\n return this._core.run(\"spotify.artist\", input, options);\n }\n\n /**\n * Spotify Play Count\n *\n * Fetch stream counts and stats for a Spotify track, album, or artist URL.\n *\n * Price: $0 per request plus $0.003 per result (maximum $0.003).\n *\n * @example\n * const res = await client.spotify.playCount({ url: \"https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT\" });\n */\n playCount(\n input: SpotifyPlayCountInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyPlayCountData>> {\n return this._core.run(\"spotify.play_count\", input, options);\n }\n\n /**\n * Spotify Podcast\n *\n * Fetch a Spotify podcast show's name, publisher, description, rating, and topics by show URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.podcast({ url: \"https://open.spotify.com/show/3mliji9352UAk3XnWElnDV\" });\n */\n podcast(\n input: SpotifyPodcastInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyPodcastData>> {\n return this._core.run(\"spotify.podcast\", input, options);\n }\n\n /**\n * Spotify Podcast Episodes\n *\n * List a Spotify podcast show's episodes with titles, durations, descriptions, and release dates by show URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.podcastEpisodes({ url: \"https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk\" });\n */\n podcastEpisodes(\n input: SpotifyPodcastEpisodesInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyPodcastEpisodesData>> {\n return this._core.run(\"spotify.podcast_episodes\", input, options);\n }\n\n /**\n * Iterate every result of Spotify Podcast Episodes across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterPodcastEpisodes(\n input: SpotifyPodcastEpisodesInput,\n options?: RequestOptions,\n ): Paginator<\n SpotifyPodcastEpisodesEpisode,\n RunResult<SpotifyPodcastEpisodesData>\n > {\n return paginate<\n SpotifyPodcastEpisodesEpisode,\n RunResult<SpotifyPodcastEpisodesData>\n >(\n this._core,\n \"spotify.podcast_episodes\",\n input as unknown as Record<string, unknown>,\n \"episodes\",\n false,\n options,\n );\n }\n\n /**\n * Spotify Search\n *\n * Search Spotify for matching tracks, albums, artists, podcasts, and playlists by keyword.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.search({ query: \"my first million\" });\n */\n search(\n input: SpotifySearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifySearchData>> {\n return this._core.run(\"spotify.search\", input, options);\n }\n\n /**\n * Spotify Track\n *\n * Fetch a Spotify track's play count, popularity, duration, and album details by track URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.track({ url: \"https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT\" });\n */\n track(\n input: SpotifyTrackInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyTrackData>> {\n return this._core.run(\"spotify.track\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Substack Posts (substack.posts).\n */\nexport interface SubstackPostsInput {\n /**\n * Restrict to a single post type, or 'all' (e.g. newsletter).\n * One of: all, newsletter, podcast, thread.\n * Default: all.\n */\n contentType?: \"all\" | \"newsletter\" | \"podcast\" | \"thread\";\n /**\n * Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2024-12-31). Applied within the most recent 'limit' posts scanned.\n */\n endDate?: string;\n /**\n * Include the full article body as HTML. Set false for metadata only (e.g. false).\n * Default: true.\n */\n includeContent?: boolean;\n /**\n * Maximum number of recent posts to return when given a publication URL (1-100, default 25); ignored for a single post URL, which always returns that one post. You are billed per post returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n /**\n * Return only free (non-paywalled) posts (e.g. true).\n * Default: false.\n */\n onlyFree?: boolean;\n /**\n * Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2024-01-01). Applied within the most recent 'limit' posts scanned, so raise 'limit' to reach older date ranges.\n */\n startDate?: string;\n /**\n * Either a Substack publication URL / custom domain to fetch its recent posts (e.g. https://www.astralcodexten.com), OR a single post URL to fetch just that one article with full content (e.g. https://www.astralcodexten.com/p/your-book-review).\n */\n url: string;\n}\n\nexport interface SubstackPostsItem {\n /**\n * Handle of the post author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorHandle?: string;\n /**\n * Display name of the post author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Number of comments on the post.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Post description or article HTML/summary. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * Cover image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Whether the post is behind a paywall.\n */\n isPaid?: boolean;\n /**\n * Substack post identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n postId?: string;\n /**\n * Post type (e.g. newsletter, podcast, thread). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n postType?: string;\n /**\n * Number of reactions on the post.\n */\n reactionCount?: number;\n /**\n * Post subtitle or deck. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n subtitle?: string;\n /**\n * Post title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical post URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Approximate word count of the article.\n */\n wordcount?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Substack Posts (substack.posts).\n */\nexport interface SubstackPostsData {\n /**\n * Post records: title, subtitle, URL, publish date, paywall status, word count, engagement (reactions, comments, restacks), author profile, publication info, and full article HTML when requested. Populated whenever the provider has data for the entity.\n */\n items: SubstackPostsItem[];\n}\n\n/**\n * Typed methods for the substack platform. Attached to the AnyAPI client as\n * `client.substack`.\n */\nexport class SubstackNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Substack Posts\n *\n * Pull posts from any Substack publication by its URL, or pass a single post URL (…/p/slug) to fetch just that one article. Returns title, subtitle, publish date, paywall status, word count, engagement (reactions, comments, restacks), author profile, and full article HTML.\n *\n * Price: $0.005 per request plus $0.00156 per result (maximum $0.161).\n *\n * @example\n * const res = await client.substack.posts({ url: \"https://www.astralcodexten.com\", limit: 3 });\n */\n posts(\n input: SubstackPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SubstackPostsData>> {\n return this._core.run(\"substack.posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Threads Post (threads.post).\n */\nexport interface ThreadsPostInput {\n /**\n * The full URL of the Threads post to fetch (e.g. https://www.threads.com/@zuck/post/C8yKXdRxKqK).\n */\n url: string;\n}\n\n/**\n * The `data` payload of Threads Post (threads.post).\n */\nexport interface ThreadsPostData {\n /**\n * Threads post shortcode.\n */\n code: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Display name of the author. Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likeCount: number;\n /**\n * Number of quote posts.\n */\n quoteCount: number;\n /**\n * Number of replies to the post.\n */\n replyCount: number;\n /**\n * Number of reposts of the post.\n */\n repostCount: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Username of the author. Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Threads Profile (threads.profile).\n */\nexport interface ThreadsProfileInput {\n /**\n * The Threads username to look up, without the @ prefix (e.g. zuck).\n */\n username: string;\n}\n\n/**\n * The `data` payload of Threads Profile (threads.profile).\n */\nexport interface ThreadsProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n biography: string;\n followerCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isPrivate: boolean;\n isVerified: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n profilePicUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Threads Search (threads.search).\n */\nexport interface ThreadsSearchInput {\n /**\n * Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents).\n */\n query: string;\n}\n\nexport interface ThreadsSearchPost {\n /**\n * Threads post shortcode.\n */\n code: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Display name of the author. Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likeCount: number;\n /**\n * Number of replies to the post.\n */\n replyCount: number;\n /**\n * Number of reposts of the post.\n */\n repostCount: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Username of the author. Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Threads Search (threads.search).\n */\nexport interface ThreadsSearchData {\n /**\n * Matching public post records: text, author, engagement counts, timestamp, and URL. Populated whenever the provider has data for the entity.\n */\n posts: ThreadsSearchPost[];\n}\n\n/**\n * Input for Threads User Search (threads.search_users).\n */\nexport interface ThreadsSearchUsersInput {\n /**\n * The name or username to search Threads users for.\n */\n query: string;\n}\n\nexport interface ThreadsSearchUsersUser {\n /**\n * Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isVerified: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n profilePicUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Threads User Search (threads.search_users).\n */\nexport interface ThreadsSearchUsersData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n users: ThreadsSearchUsersUser[];\n}\n\n/**\n * Input for Threads User Posts (threads.user_posts).\n */\nexport interface ThreadsUserPostsInput {\n /**\n * The Threads username to list posts for, without the @ prefix.\n */\n handle: string;\n}\n\nexport interface ThreadsUserPostsPost {\n /**\n * Threads post shortcode.\n */\n code: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likeCount: number;\n /**\n * Number of quote posts.\n */\n quoteCount: number;\n /**\n * Number of replies to the post.\n */\n replyCount: number;\n /**\n * Number of reposts of the post.\n */\n repostCount: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Username of the author. Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Threads User Posts (threads.user_posts).\n */\nexport interface ThreadsUserPostsData {\n /**\n * The user's recent posts. Populated whenever the provider has data for the entity.\n */\n posts: ThreadsUserPostsPost[];\n}\n\n/**\n * Typed methods for the threads platform. Attached to the AnyAPI client as\n * `client.threads`.\n */\nexport class ThreadsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Threads Post\n *\n * Fetch a single Threads post by URL: text, author, engagement counts, and timestamp.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.post({ url: \"https://www.threads.com/@aaronparnas/post/DZxPYVFkYSq\" });\n */\n post(\n input: ThreadsPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsPostData>> {\n return this._core.run(\"threads.post\", input, options);\n }\n\n /**\n * Threads Profile\n *\n * Fetch a Threads user's public profile (bio, follower count, verification, profile picture) by username.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.profile({ username: \"zuck\" });\n */\n profile(\n input: ThreadsProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsProfileData>> {\n return this._core.run(\"threads.profile\", input, options);\n }\n\n /**\n * Threads Search\n *\n * Search public Threads posts by keyword or hashtag and get normalized post records: text, author, and engagement.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.search({ query: \"trump\" });\n */\n search(\n input: ThreadsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsSearchData>> {\n return this._core.run(\"threads.search\", input, options);\n }\n\n /**\n * Threads User Search\n *\n * Search Threads users by name or username and get normalized profile records: username, full name, verification, and picture.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.searchUsers({ query: \"shams\" });\n */\n searchUsers(\n input: ThreadsSearchUsersInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsSearchUsersData>> {\n return this._core.run(\"threads.search_users\", input, options);\n }\n\n /**\n * Threads User Posts\n *\n * List a Threads user's recent public posts by username: text, engagement counts, and post URLs.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.userPosts({ handle: \"trendspider\" });\n */\n userPosts(\n input: ThreadsUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsUserPostsData>> {\n return this._core.run(\"threads.user_posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for TikTok Ad Library Ad (tiktok.ad_library_ad).\n */\nexport interface TiktokAdLibraryAdInput {\n /**\n * TikTok Top Ads material/ad ID, or a Top Ads detail URL (e.g. 7648493525660270600).\n */\n adId: string;\n}\n\n/**\n * The `data` payload of TikTok Ad Library Ad (tiktok.ad_library_ad).\n */\nexport interface TiktokAdLibraryAdData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n adTitle: string;\n brandName: string;\n comments: number;\n cost: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n ctr: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n industry: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n landingPage: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n objective: string;\n shares: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videoUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Ad Library Search (tiktok.ad_library_search).\n */\nexport interface TiktokAdLibrarySearchInput {\n /**\n * Ad format filter.\n * One of: spark_ads, non_spark_ads.\n */\n adFormat?: \"spark_ads\" | \"non_spark_ads\";\n /**\n * Ad language filter.\n * One of: en, es, ar, vi, th, de, id, pt, fr, ms, nl, ja, it, ro, zh-Hant, ko.\n */\n adLanguage?:\n | \"en\"\n | \"es\"\n | \"ar\"\n | \"vi\"\n | \"th\"\n | \"de\"\n | \"id\"\n | \"pt\"\n | \"fr\"\n | \"ms\"\n | \"nl\"\n | \"ja\"\n | \"it\"\n | \"ro\"\n | \"zh-Hant\"\n | \"ko\";\n /**\n * Filter to a specific advertiser by name (searches the public TikTok Ads Library by advertiser).\n */\n advertiserName?: string;\n /**\n * Page number for pagination (defaults to 1).\n */\n cursor?: string;\n /**\n * Video duration bucket filter.\n * One of: under_10s, 10_20s, 20_30s, 30_40s, 40_50s, over_50s.\n */\n duration?:\n \"under_10s\" | \"10_20s\" | \"20_30s\" | \"30_40s\" | \"40_50s\" | \"over_50s\";\n /**\n * Advertiser industry filter.\n * One of: apparel_accessories, appliances, apps, baby_kids_maternity, beauty_personal_care, business_services, ecommerce_non_app, education, financial_services, food_beverage, games, health, home_improvement, household_products, life_services, news_entertainment, pets, sports_outdoor, tech_electronics, travel, vehicle_transportation.\n */\n industry?:\n | \"apparel_accessories\"\n | \"appliances\"\n | \"apps\"\n | \"baby_kids_maternity\"\n | \"beauty_personal_care\"\n | \"business_services\"\n | \"ecommerce_non_app\"\n | \"education\"\n | \"financial_services\"\n | \"food_beverage\"\n | \"games\"\n | \"health\"\n | \"home_improvement\"\n | \"household_products\"\n | \"life_services\"\n | \"news_entertainment\"\n | \"pets\"\n | \"sports_outdoor\"\n | \"tech_electronics\"\n | \"travel\"\n | \"vehicle_transportation\";\n /**\n * Likes percentile bucket filter (top_1_20 is the top-performing 20 percent).\n * One of: top_1_20, top_21_40, top_41_60, top_61_80, top_81_100.\n */\n likes?: \"top_1_20\" | \"top_21_40\" | \"top_41_60\" | \"top_61_80\" | \"top_81_100\";\n /**\n * Results per page, max 50 (defaults to 20).\n */\n limit?: string;\n /**\n * Campaign objective filter.\n * One of: app_installs, conversions, lead_generation, product_sales, reach, traffic, video_views.\n */\n objective?:\n | \"app_installs\"\n | \"conversions\"\n | \"lead_generation\"\n | \"product_sales\"\n | \"reach\"\n | \"traffic\"\n | \"video_views\";\n /**\n * Sort metric: for_you, impression, play_2s_rate, play_6s_rate, cvr, ctr, or like.\n */\n orderBy?: string;\n /**\n * Time window for top ads: 7, 30, or 180 days.\n */\n period?: string;\n /**\n * Keyword to search ad titles and content (e.g. spotify).\n */\n query: string;\n /**\n * Country code (defaults to US).\n */\n region?: string;\n}\n\nexport interface TiktokAdLibrarySearchAd {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n adTitle: string;\n brandName: string;\n cost: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n ctr: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n industry: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n objective: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videoUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Ad Library Search (tiktok.ad_library_search).\n */\nexport interface TiktokAdLibrarySearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n ads: TiktokAdLibrarySearchAd[];\n hasMore: boolean;\n nextCursor: string;\n total: number;\n}\n\n/**\n * Input for TikTok Audience Demographics (tiktok.audience_demographics).\n */\nexport interface TiktokAudienceDemographicsInput {\n /**\n * TikTok username without the leading @ (e.g. \"shakira\").\n */\n handle: string;\n}\n\nexport interface TiktokAudienceDemographicsAudienceLocation {\n count: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n country: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n countryCode: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n percentage: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Audience Demographics (tiktok.audience_demographics).\n */\nexport interface TiktokAudienceDemographicsData {\n audienceLocations: TiktokAudienceDemographicsAudienceLocation[];\n}\n\n/**\n * Input for TikTok Comment Replies (tiktok.comment_replies).\n */\nexport interface TiktokCommentRepliesInput {\n /**\n * TikTok comment ID (the comment's cid from the comments endpoint).\n */\n commentId: string;\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * TikTok video URL the comment belongs to.\n */\n url: string;\n}\n\nexport interface TiktokCommentRepliesComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Comment Replies (tiktok.comment_replies).\n */\nexport interface TiktokCommentRepliesData {\n comments: TiktokCommentRepliesComment[];\n nextCursor: string;\n}\n\n/**\n * Input for TikTok Followers (tiktok.followers).\n */\nexport interface TiktokFollowersInput {\n /**\n * Pagination cursor from a previous response's nextCursor, to fetch the next page of followers.\n */\n cursor?: string;\n /**\n * TikTok username whose followers to list, without the @ prefix (e.g. stoolpresidente).\n */\n handle: string;\n}\n\nexport interface TiktokFollowersFollower {\n avatarUrl: string;\n followerCount: number;\n followingCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n nickname: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Followers (tiktok.followers).\n */\nexport interface TiktokFollowersData {\n followers: TiktokFollowersFollower[];\n nextCursor: string;\n total: number;\n}\n\n/**\n * Input for TikTok Following (tiktok.following).\n */\nexport interface TiktokFollowingInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * TikTok username without the leading @ (e.g. \"stoolpresidente\").\n */\n handle: string;\n}\n\nexport interface TiktokFollowingFollowing {\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n videos: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Following (tiktok.following).\n */\nexport interface TiktokFollowingData {\n following: TiktokFollowingFollowing[];\n}\n\n/**\n * Input for TikTok Hashtag Videos (tiktok.hashtag_videos).\n */\nexport interface TiktokHashtagVideosInput {\n /**\n * TikTok hashtag to fetch videos for, without the # prefix (e.g. booktok).\n */\n hashtag: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n}\n\nexport interface TiktokHashtagVideosItem {\n /**\n * Username of the video's creator, without the @ prefix. Empty when the upstream omits it.\n */\n authorHandle?: string;\n /**\n * Number of comments on the video.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * The video's numeric TikTok ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the video's cover/thumbnail image, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * Number of likes on the video.\n */\n likeCount?: number;\n /**\n * Number of views/plays of the video.\n */\n playCount?: number;\n /**\n * Number of shares of the video.\n */\n shareCount?: number;\n /**\n * The video caption text. Empty for videos with no caption.\n */\n text?: string;\n /**\n * Canonical tiktok.com URL of the video, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Hashtag Videos (tiktok.hashtag_videos).\n */\nexport interface TiktokHashtagVideosData {\n /**\n * Recent TikTok video records for the hashtag. Populated whenever the provider has data for the entity.\n */\n items: TiktokHashtagVideosItem[];\n}\n\n/**\n * Input for TikTok Live (tiktok.live).\n */\nexport interface TiktokLiveInput {\n /**\n * TikTok username without the leading @ (e.g. \"thejustalex\").\n */\n handle: string;\n}\n\n/**\n * The `data` payload of TikTok Live (tiktok.live).\n */\nexport interface TiktokLiveData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n enterCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n roomId: string;\n startTime: number;\n status: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n viewers: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Profile (tiktok.profile).\n */\nexport interface TiktokProfileInput {\n /**\n * TikTok username without the leading @ (e.g. \"stoolpresidente\").\n */\n handle: string;\n}\n\n/**\n * The `data` payload of TikTok Profile (tiktok.profile).\n */\nexport interface TiktokProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n likes: number;\n verified: boolean;\n videos: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Profile Region (tiktok.profile_region).\n */\nexport interface TiktokProfileRegionInput {\n /**\n * TikTok username without the leading @ (e.g. \"stoolpresidente\").\n */\n handle: string;\n}\n\n/**\n * The `data` payload of TikTok Profile Region (tiktok.profile_region).\n */\nexport interface TiktokProfileRegionData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n profileUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Profile Videos (tiktok.profile_videos).\n */\nexport interface TiktokProfileVideosInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * TikTok username without the leading @.\n */\n handle: string;\n}\n\nexport interface TiktokProfileVideosVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the video's cover/thumbnail image. A signed, short-lived TikTok CDN URL (typically expires within about a day; query params are load-bearing and kept intact), often served as HEIC rather than JPEG, so fetch it promptly and transcode if you need broad browser support. Absent when the upstream provides no cover.\n */\n image?: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Profile Videos (tiktok.profile_videos).\n */\nexport interface TiktokProfileVideosData {\n nextCursor: string;\n videos: TiktokProfileVideosVideo[];\n}\n\n/**\n * Input for TikTok Hashtag Search (tiktok.search_hashtag).\n */\nexport interface TiktokSearchHashtagInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Hashtag or keyword to search for (without the leading #).\n */\n query: string;\n}\n\nexport interface TiktokSearchHashtagVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n shares: number;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Hashtag Search (tiktok.search_hashtag).\n */\nexport interface TiktokSearchHashtagData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: TiktokSearchHashtagVideo[];\n}\n\n/**\n * Input for TikTok Keyword Search (tiktok.search_keyword).\n */\nexport interface TiktokSearchKeywordInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Time frame filter (e.g. 0=any, 1=past 24h, 7=past week).\n */\n datePosted?: string;\n /**\n * The keyword to search TikTok for.\n */\n query: string;\n /**\n * Sort order (e.g. 0=relevance, 1=most liked).\n */\n sortBy?: string;\n}\n\nexport interface TiktokSearchKeywordVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n region: string;\n shares: number;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Keyword Search (tiktok.search_keyword).\n */\nexport interface TiktokSearchKeywordData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: TiktokSearchKeywordVideo[];\n}\n\n/**\n * Input for TikTok Top Search (tiktok.search_top).\n */\nexport interface TiktokSearchTopInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Time-frame filter: yesterday, this-week, this-month, last-3-months, last-6-months, all-time.\n */\n publishTime?: string;\n /**\n * Keyword to search for (e.g. \"funny\").\n */\n query: string;\n /**\n * 2-letter country code for the proxy location (e.g. US, GB, FR).\n */\n region?: string;\n /**\n * Sort order: relevance, most-liked, date-posted.\n */\n sortBy?: string;\n}\n\nexport interface TiktokSearchTopItem {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n contentType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n shares: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Top Search (tiktok.search_top).\n */\nexport interface TiktokSearchTopData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n items: TiktokSearchTopItem[];\n nextCursor: string;\n}\n\n/**\n * Input for TikTok User Search (tiktok.search_users).\n */\nexport interface TiktokSearchUsersInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * The keyword to search TikTok accounts for.\n */\n query: string;\n}\n\nexport interface TiktokSearchUsersUser {\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n nickname: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok User Search (tiktok.search_users).\n */\nexport interface TiktokSearchUsersData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n users: TiktokSearchUsersUser[];\n}\n\n/**\n * Input for TikTok Song (tiktok.song).\n */\nexport interface TiktokSongInput {\n /**\n * The clip identifier for the song, found in TikTok music URLs (e.g. 7439295283975702544).\n */\n clipId: string;\n}\n\n/**\n * The `data` payload of TikTok Song (tiktok.song).\n */\nexport interface TiktokSongData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n album: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n duration: number;\n isOriginal: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shareUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n songId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n videoCount: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Song Videos (tiktok.song_videos).\n */\nexport interface TiktokSongVideosInput {\n /**\n * The song ID found in TikTok music URLs (e.g. 7439295283975702544).\n */\n clipId: string;\n /**\n * Pagination cursor for retrieving the next page of results.\n */\n cursor?: string;\n}\n\nexport interface TiktokSongVideosVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorHandle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorName: string;\n commentCount: number;\n createTime: number;\n description: string;\n likeCount: number;\n playCount: number;\n shareCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videoId: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Song Videos (tiktok.song_videos).\n */\nexport interface TiktokSongVideosData {\n hasMore: number;\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: TiktokSongVideosVideo[];\n}\n\n/**\n * Input for TikTok Trending Feed (tiktok.trending_feed).\n */\nexport interface TiktokTrendingFeedInput {\n /**\n * 2-letter country code for the proxy location (e.g. \"US\").\n */\n region: string;\n /**\n * Set to true to return a simplified response.\n */\n trim?: string;\n}\n\nexport interface TiktokTrendingFeedVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n shares: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Trending Feed (tiktok.trending_feed).\n */\nexport interface TiktokTrendingFeedData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: TiktokTrendingFeedVideo[];\n}\n\n/**\n * Input for TikTok Video (tiktok.video).\n */\nexport interface TiktokVideoInput {\n /**\n * Full TikTok video URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of TikTok Video (tiktok.video).\n */\nexport interface TiktokVideoData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the video's cover/thumbnail image. A signed, short-lived TikTok CDN URL (typically expires within about a day; query params are load-bearing and kept intact), often served as HEIC rather than JPEG, so fetch it promptly and transcode if you need broad browser support. Absent when the upstream provides no cover.\n */\n image?: string;\n likes: number;\n region: string;\n saves: number;\n shares: number;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Video Comments (tiktok.video_comments).\n */\nexport interface TiktokVideoCommentsInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Full TikTok video URL.\n */\n url: string;\n}\n\nexport interface TiktokVideoCommentsComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n replies: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Video Comments (tiktok.video_comments).\n */\nexport interface TiktokVideoCommentsData {\n comments: TiktokVideoCommentsComment[];\n nextCursor: string;\n}\n\n/**\n * Input for TikTok Video Transcript (tiktok.video_transcript).\n */\nexport interface TiktokVideoTranscriptInput {\n /**\n * Full TikTok video URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of TikTok Video Transcript (tiktok.video_transcript).\n */\nexport interface TiktokVideoTranscriptData {\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n transcript: string;\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the tiktok platform. Attached to the AnyAPI client as\n * `client.tiktok`.\n */\nexport class TiktokNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * TikTok Ad Library Ad\n *\n * Fetch full details for a single TikTok ad (brand, title, spend, CTR, objectives, landing page, and video info), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.adLibraryAd({ adId: \"7648493525660270600\" });\n */\n adLibraryAd(\n input: TiktokAdLibraryAdInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokAdLibraryAdData>> {\n return this._core.run(\"tiktok.ad_library_ad\", input, options);\n }\n\n /**\n * TikTok Ad Library Search\n *\n * Search TikTok's ad library by keyword (top ads with brand, title, spend, CTR, likes, and video info), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.adLibrarySearch({ query: \"spotify\", objective: \"conversions\" });\n */\n adLibrarySearch(\n input: TiktokAdLibrarySearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokAdLibrarySearchData>> {\n return this._core.run(\"tiktok.ad_library_search\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Ad Library Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterAdLibrarySearch(\n input: TiktokAdLibrarySearchInput,\n options?: RequestOptions,\n ): Paginator<TiktokAdLibrarySearchAd, RunResult<TiktokAdLibrarySearchData>> {\n return paginate<\n TiktokAdLibrarySearchAd,\n RunResult<TiktokAdLibrarySearchData>\n >(\n this._core,\n \"tiktok.ad_library_search\",\n input as unknown as Record<string, unknown>,\n \"ads\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Audience Demographics\n *\n * Get the audience country breakdown (follower count and share per country) for a TikTok creator by handle, normalized across providers.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.tiktok.audienceDemographics({ handle: \"shakira\" });\n */\n audienceDemographics(\n input: TiktokAudienceDemographicsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokAudienceDemographicsData>> {\n return this._core.run(\"tiktok.audience_demographics\", input, options);\n }\n\n /**\n * TikTok Comment Replies\n *\n * List the replies to a TikTok comment with cursor pagination (text, author, likes), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.commentReplies({ commentId: \"7623828115408274207\", url: \"https://www.tiktok.com/@stoolpresidente/video/7623818255903329566\" });\n */\n commentReplies(\n input: TiktokCommentRepliesInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokCommentRepliesData>> {\n return this._core.run(\"tiktok.comment_replies\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Comment Replies across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterCommentReplies(\n input: TiktokCommentRepliesInput,\n options?: RequestOptions,\n ): Paginator<\n TiktokCommentRepliesComment,\n RunResult<TiktokCommentRepliesData>\n > {\n return paginate<\n TiktokCommentRepliesComment,\n RunResult<TiktokCommentRepliesData>\n >(\n this._core,\n \"tiktok.comment_replies\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Followers\n *\n * List the followers of a TikTok account by username, returning each follower's profile basics.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.followers({ handle: \"stoolpresidente\" });\n */\n followers(\n input: TiktokFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokFollowersData>> {\n return this._core.run(\"tiktok.followers\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Followers across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowers(\n input: TiktokFollowersInput,\n options?: RequestOptions,\n ): Paginator<TiktokFollowersFollower, RunResult<TiktokFollowersData>> {\n return paginate<TiktokFollowersFollower, RunResult<TiktokFollowersData>>(\n this._core,\n \"tiktok.followers\",\n input as unknown as Record<string, unknown>,\n \"followers\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Following\n *\n * List the accounts a TikTok user follows (handle, display name, follower count, bio) by username, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.following({ handle: \"stoolpresidente\" });\n */\n following(\n input: TiktokFollowingInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokFollowingData>> {\n return this._core.run(\"tiktok.following\", input, options);\n }\n\n /**\n * TikTok Hashtag Videos\n *\n * List recent TikTok videos for a hashtag (creator, caption, views, likes, shares), normalized output.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.tiktok.hashtagVideos({ hashtag: \"cooking\", limit: 3 });\n */\n hashtagVideos(\n input: TiktokHashtagVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokHashtagVideosData>> {\n return this._core.run(\"tiktok.hashtag_videos\", input, options);\n }\n\n /**\n * TikTok Live\n *\n * Check whether a TikTok creator is live and get the current live room (title, viewers, start time) by handle, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.live({ handle: \"thejustalex\" });\n */\n live(\n input: TiktokLiveInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokLiveData>> {\n return this._core.run(\"tiktok.live\", input, options);\n }\n\n /**\n * TikTok Profile\n *\n * Fetch a TikTok creator's public profile (followers, likes, bio, verification) by handle, normalized across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.profile({ handle: \"zachking\" });\n */\n profile(\n input: TiktokProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokProfileData>> {\n return this._core.run(\"tiktok.profile\", input, options);\n }\n\n /**\n * TikTok Profile Region\n *\n * Resolve the home region (country) of a TikTok creator by handle, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.profileRegion({ handle: \"stoolpresidente\" });\n */\n profileRegion(\n input: TiktokProfileRegionInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokProfileRegionData>> {\n return this._core.run(\"tiktok.profile_region\", input, options);\n }\n\n /**\n * TikTok Profile Videos\n *\n * List a TikTok creator's recent videos (views, likes, comments) by handle with cursor pagination, normalized across providers.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.profileVideos({ handle: \"zachking\" });\n */\n profileVideos(\n input: TiktokProfileVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokProfileVideosData>> {\n return this._core.run(\"tiktok.profile_videos\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Profile Videos across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterProfileVideos(\n input: TiktokProfileVideosInput,\n options?: RequestOptions,\n ): Paginator<TiktokProfileVideosVideo, RunResult<TiktokProfileVideosData>> {\n return paginate<\n TiktokProfileVideosVideo,\n RunResult<TiktokProfileVideosData>\n >(\n this._core,\n \"tiktok.profile_videos\",\n input as unknown as Record<string, unknown>,\n \"videos\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Hashtag Search\n *\n * Search TikTok by hashtag and get matching videos (caption, views, likes, comments, shares) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.searchHashtag({ query: \"recipe\" });\n */\n searchHashtag(\n input: TiktokSearchHashtagInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSearchHashtagData>> {\n return this._core.run(\"tiktok.search_hashtag\", input, options);\n }\n\n /**\n * TikTok Keyword Search\n *\n * Search TikTok by keyword and get matching videos (caption, views, likes, comments, shares) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.searchKeyword({ query: \"cooking\" });\n */\n searchKeyword(\n input: TiktokSearchKeywordInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSearchKeywordData>> {\n return this._core.run(\"tiktok.search_keyword\", input, options);\n }\n\n /**\n * TikTok Top Search\n *\n * Search TikTok's top results for a keyword (caption, views, likes, comments, shares) with cursor pagination, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.searchTop({ query: \"funny\" });\n */\n searchTop(\n input: TiktokSearchTopInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSearchTopData>> {\n return this._core.run(\"tiktok.search_top\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Top Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchTop(\n input: TiktokSearchTopInput,\n options?: RequestOptions,\n ): Paginator<TiktokSearchTopItem, RunResult<TiktokSearchTopData>> {\n return paginate<TiktokSearchTopItem, RunResult<TiktokSearchTopData>>(\n this._core,\n \"tiktok.search_top\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * TikTok User Search\n *\n * Search TikTok accounts by keyword (handle, nickname, follower count) with cursor pagination, normalized across providers.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.searchUsers({ query: \"chef\" });\n */\n searchUsers(\n input: TiktokSearchUsersInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSearchUsersData>> {\n return this._core.run(\"tiktok.search_users\", input, options);\n }\n\n /**\n * Iterate every result of TikTok User Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchUsers(\n input: TiktokSearchUsersInput,\n options?: RequestOptions,\n ): Paginator<TiktokSearchUsersUser, RunResult<TiktokSearchUsersData>> {\n return paginate<TiktokSearchUsersUser, RunResult<TiktokSearchUsersData>>(\n this._core,\n \"tiktok.search_users\",\n input as unknown as Record<string, unknown>,\n \"users\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Song\n *\n * Fetch details for a TikTok song or sound (title, author, duration, cover art, and how many videos use it), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.song({ clipId: \"7439295283975702544\" });\n */\n song(\n input: TiktokSongInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSongData>> {\n return this._core.run(\"tiktok.song\", input, options);\n }\n\n /**\n * TikTok Song Videos\n *\n * List TikTok videos that use a given song or sound (with descriptions, authors, and engagement stats), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.songVideos({ clipId: \"7439295283975702544\" });\n */\n songVideos(\n input: TiktokSongVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSongVideosData>> {\n return this._core.run(\"tiktok.song_videos\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Song Videos across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSongVideos(\n input: TiktokSongVideosInput,\n options?: RequestOptions,\n ): Paginator<TiktokSongVideosVideo, RunResult<TiktokSongVideosData>> {\n return paginate<TiktokSongVideosVideo, RunResult<TiktokSongVideosData>>(\n this._core,\n \"tiktok.song_videos\",\n input as unknown as Record<string, unknown>,\n \"videos\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Trending Feed\n *\n * Get TikTok's trending feed for a region (caption, views, likes, comments, author) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.trendingFeed({ region: \"US\" });\n */\n trendingFeed(\n input: TiktokTrendingFeedInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokTrendingFeedData>> {\n return this._core.run(\"tiktok.trending_feed\", input, options);\n }\n\n /**\n * TikTok Video\n *\n * Fetch a single TikTok video by URL with its caption and engagement counts (views, likes, comments, shares, saves), normalized across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.video({ url: \"https://www.tiktok.com/@mrbeast/video/7654638524729216287?_r=1&u_code=elgjf3ff8cajhk&preview_pb=0&sharer_language=en&_d=elh6737j6kjl71&share_item_id=7654638524729216287&source=h5_m\" });\n */\n video(\n input: TiktokVideoInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokVideoData>> {\n return this._core.run(\"tiktok.video\", input, options);\n }\n\n /**\n * TikTok Video Comments\n *\n * List the comments on a TikTok video by URL with cursor pagination (text, author, likes, reply count), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.videoComments({ url: \"https://www.tiktok.com/@zachking/video/7650468599424945422?_r=1&u_code=f0hj7d780760m9&preview_pb=0&sharer_language=en&_d=f0hj7blh067h71&share_item_id=7650468599424945422&source=h5_m\" });\n */\n videoComments(\n input: TiktokVideoCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokVideoCommentsData>> {\n return this._core.run(\"tiktok.video_comments\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Video Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterVideoComments(\n input: TiktokVideoCommentsInput,\n options?: RequestOptions,\n ): Paginator<TiktokVideoCommentsComment, RunResult<TiktokVideoCommentsData>> {\n return paginate<\n TiktokVideoCommentsComment,\n RunResult<TiktokVideoCommentsData>\n >(\n this._core,\n \"tiktok.video_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Video Transcript\n *\n * Fetch the spoken-word transcript of a TikTok video by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.videoTranscript({ url: \"https://www.tiktok.com/@washingtonpost/video/7609177768793787679\" });\n */\n videoTranscript(\n input: TiktokVideoTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokVideoTranscriptData>> {\n return this._core.run(\"tiktok.video_transcript\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for TikTok Shop Product (tiktok_shop.product).\n */\nexport interface TiktokShopProductInput {\n /**\n * Two-letter country code for the proxy location used to access region-specific products (e.g. US, GB, FR). Defaults to US.\n */\n region?: string;\n /**\n * TikTok Shop product detail page URL (e.g. https://www.tiktok.com/shop/pdp/.../1729587769570529799).\n */\n url: string;\n}\n\n/**\n * The `data` payload of TikTok Shop Product (tiktok_shop.product).\n */\nexport interface TiktokShopProductData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n currency: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n originalPrice: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n price: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n productId: string;\n rating: number;\n reviewCount: number;\n sellerLocation: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n sellerName: string;\n soldCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Shop Product Reviews (tiktok_shop.product_reviews).\n */\nexport interface TiktokShopProductReviewsInput {\n /**\n * 1-based results page. Use with hasMore in the output to paginate.\n * Range: minimum 1.\n * Default: 1.\n */\n page?: number;\n /**\n * Two-letter country code of the product's shop region (e.g. US). Strongly recommended for correct results.\n */\n region?: string;\n /**\n * TikTok Shop product URL (e.g. https://www.tiktok.com/shop/pdp/.../1729385633899532161).\n */\n url: string;\n}\n\nexport interface TiktokShopProductReviewsReview {\n /**\n * Reviewer's country code.\n */\n country: string;\n /**\n * Review time as epoch milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Review identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Star rating for this review (1-5).\n */\n rating: number;\n /**\n * Display name of the reviewer. Populated whenever the provider has data for the entity.\n */\n reviewerName: string;\n /**\n * Variant bought, e.g. \"Color: Black\". Populated whenever the provider has data for the entity.\n */\n sku: string;\n /**\n * Review text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * True when the review is from a verified purchase.\n */\n verifiedPurchase: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Shop Product Reviews (tiktok_shop.product_reviews).\n */\nexport interface TiktokShopProductReviewsData {\n /**\n * True when more reviews are available beyond this page.\n */\n hasMore: boolean;\n /**\n * Overall product score (1-5).\n */\n rating: number;\n /**\n * Product reviews. Populated whenever the provider has data for the entity.\n */\n reviews: TiktokShopProductReviewsReview[];\n /**\n * Total number of reviews for the product.\n */\n totalReviews: number;\n}\n\n/**\n * Input for TikTok Shop Search (tiktok_shop.search).\n */\nexport interface TiktokShopSearchInput {\n /**\n * Country code of the TikTok Shop market to search (e.g. US).\n * One of: US, VN, TH, PH, MY, ID, GB, SG, ES, MX, DE, IT, FR, BR, JP.\n * Default: US.\n */\n country?:\n | \"US\"\n | \"VN\"\n | \"TH\"\n | \"PH\"\n | \"MY\"\n | \"ID\"\n | \"GB\"\n | \"SG\"\n | \"ES\"\n | \"MX\"\n | \"DE\"\n | \"IT\"\n | \"FR\"\n | \"BR\"\n | \"JP\";\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * Search keyword for TikTok Shop products (e.g. wireless earbuds).\n */\n query: string;\n}\n\nexport interface TiktokShopSearchItem {\n /**\n * ISO currency name, e.g. USD.\n */\n currency?: string;\n /**\n * Pre-discount list price (0 when not on sale).\n */\n originalPrice?: number;\n /**\n * Current sale price.\n */\n price?: number;\n /**\n * TikTok Shop product id. Populated whenever the provider has data for the entity.\n */\n productId: string;\n /**\n * Average review score.\n */\n rating?: number;\n /**\n * Seller shop name.\n */\n shopName?: string;\n /**\n * Units sold.\n */\n soldCount?: number;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical product detail page URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Shop Search (tiktok_shop.search).\n */\nexport interface TiktokShopSearchData {\n /**\n * Product records matching the search query: id, title, price, sales count, rating, seller, and product URL. Populated whenever the provider has data for the entity.\n */\n items: TiktokShopSearchItem[];\n}\n\n/**\n * Input for TikTok Shop Store Products (tiktok_shop.shop_products).\n */\nexport interface TiktokShopShopProductsInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Two-letter country code of the store's market (e.g. US).\n */\n region?: string;\n /**\n * Product ordering within the store.\n * One of: top, new_releases.\n * Default: top.\n */\n sortBy?: \"top\" | \"new_releases\";\n /**\n * TikTok Shop store URL (e.g. https://www.tiktok.com/shop/store/...).\n */\n url: string;\n}\n\nexport interface TiktokShopShopProductsProduct {\n currency: string;\n originalPrice: number;\n price: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n productId: string;\n rating: number;\n reviewCount: number;\n soldCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Shop Store Products (tiktok_shop.shop_products).\n */\nexport interface TiktokShopShopProductsData {\n hasMore: boolean;\n nextCursor: string;\n productCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n products: TiktokShopShopProductsProduct[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n shopName: string;\n shopRating: number;\n soldCount: number;\n}\n\n/**\n * Input for TikTok Shop User Showcase (tiktok_shop.user_showcase).\n */\nexport interface TiktokShopUserShowcaseInput {\n /**\n * Pagination token for retrieving subsequent product pages.\n */\n cursor?: string;\n /**\n * The handle of the TikTok user (e.g. mrtiktokreviews).\n */\n handle: string;\n /**\n * Geographical region for proxy placement (defaults to US).\n */\n region?: string;\n}\n\nexport interface TiktokShopUserShowcaseProduct {\n currency: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n imageUrl: string;\n originalPrice: string;\n price: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n productId: string;\n rating: number;\n reviewCount: number;\n soldCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Shop User Showcase (tiktok_shop.user_showcase).\n */\nexport interface TiktokShopUserShowcaseData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n products: TiktokShopUserShowcaseProduct[];\n}\n\n/**\n * Typed methods for the tiktok_shop platform. Attached to the AnyAPI client as\n * `client.tiktokShop`.\n */\nexport class TiktokShopNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * TikTok Shop Product\n *\n * Fetch TikTok Shop product details (title, price, sales, seller, and ratings) from a product URL.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.product({ url: \"https://www.tiktok.com/shop/pdp/goli-ashwagandha-gummies-with-vitamin-d-ksm-66-vegan-non-gmo/1729587769570529799\" });\n */\n product(\n input: TiktokShopProductInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopProductData>> {\n return this._core.run(\"tiktok_shop.product\", input, options);\n }\n\n /**\n * TikTok Shop Product Reviews\n *\n * Fetch customer reviews for a TikTok Shop product by URL (rating, text, reviewer, country, and verified-purchase flag), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.productReviews({ url: \"https://www.tiktok.com/shop/pdp/cat-nail-clipper-by-potaroma-adjustable-sizes-built-in-file-safe-for-kittens-cats/1731578642912612516\" });\n */\n productReviews(\n input: TiktokShopProductReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopProductReviewsData>> {\n return this._core.run(\"tiktok_shop.product_reviews\", input, options);\n }\n\n /**\n * TikTok Shop Search\n *\n * Search TikTok Shop products by keyword across 15 countries: price, sales, rating, and seller info per product, in one normalized response.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.search({ query: \"phone case\", limit: 3 });\n */\n search(\n input: TiktokShopSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopSearchData>> {\n return this._core.run(\"tiktok_shop.search\", input, options);\n }\n\n /**\n * TikTok Shop Store Products\n *\n * List every product of a TikTok Shop store by URL (title, price, sales, and rating per product plus shop-level stats) with cursor pagination and transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.shopProducts({ url: \"https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079\" });\n */\n shopProducts(\n input: TiktokShopShopProductsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopShopProductsData>> {\n return this._core.run(\"tiktok_shop.shop_products\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Shop Store Products across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterShopProducts(\n input: TiktokShopShopProductsInput,\n options?: RequestOptions,\n ): Paginator<\n TiktokShopShopProductsProduct,\n RunResult<TiktokShopShopProductsData>\n > {\n return paginate<\n TiktokShopShopProductsProduct,\n RunResult<TiktokShopShopProductsData>\n >(\n this._core,\n \"tiktok_shop.shop_products\",\n input as unknown as Record<string, unknown>,\n \"products\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Shop User Showcase\n *\n * List the TikTok Shop products a creator showcases (title, price, rating, and sales per product), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.userShowcase({ handle: \"mrtiktokreviews\" });\n */\n userShowcase(\n input: TiktokShopUserShowcaseInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopUserShowcaseData>> {\n return this._core.run(\"tiktok_shop.user_showcase\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Shop User Showcase across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserShowcase(\n input: TiktokShopUserShowcaseInput,\n options?: RequestOptions,\n ): Paginator<\n TiktokShopUserShowcaseProduct,\n RunResult<TiktokShopUserShowcaseData>\n > {\n return paginate<\n TiktokShopUserShowcaseProduct,\n RunResult<TiktokShopUserShowcaseData>\n >(\n this._core,\n \"tiktok_shop.user_showcase\",\n input as unknown as Record<string, unknown>,\n \"products\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Tripadvisor Reviews (tripadvisor.reviews).\n */\nexport interface TripadvisorReviewsInput {\n /**\n * Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"es\"]); omit for all languages.\n */\n languages?: string[];\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Only return reviews whose bubble rating is in this set (e.g. [\"5\", \"4\"] for 4 and 5 star reviews); omit for all ratings.\n */\n ratings?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n /**\n * Only return reviews newer than this date, YYYY-MM-DD or a relative window like '3 months' (e.g. 2026-01-01).\n */\n since?: string;\n /**\n * Tripadvisor page URL of the hotel, restaurant, or attraction.\n */\n url: string;\n}\n\nexport interface TripadvisorReviewsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Star rating (typically 1-5).\n */\n rating: number;\n /**\n * Review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review title or headline. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Canonical review URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Tripadvisor Reviews (tripadvisor.reviews).\n */\nexport interface TripadvisorReviewsData {\n /**\n * Review records for the place: rating, title, review text, publish date, trip type, and reviewer details. Populated whenever the provider has data for the entity.\n */\n items: TripadvisorReviewsItem[];\n}\n\n/**\n * Input for Tripadvisor Search (tripadvisor.search).\n */\nexport interface TripadvisorSearchInput {\n /**\n * ISO currency code for prices (e.g. USD, EUR).\n * Default: USD.\n */\n currency?: string;\n /**\n * Include attractions and things to do in the results; set false to exclude them (e.g. false). Defaults to true.\n * Default: true.\n */\n includeAttractions?: boolean;\n /**\n * Include hotels in the results; set false to exclude them (e.g. false). Defaults to true.\n * Default: true.\n */\n includeHotels?: boolean;\n /**\n * Include restaurants in the results; set false to exclude them (e.g. false). Defaults to true.\n * Default: true.\n */\n includeRestaurants?: boolean;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Destination or keyword to search for (e.g. Barcelona).\n */\n query: string;\n}\n\nexport interface TripadvisorSearchItem {\n /**\n * Full formatted street address.\n */\n address?: string;\n /**\n * High-level category (e.g. hotel, restaurant, attraction).\n */\n category?: string;\n /**\n * City the place is in.\n */\n city?: string;\n /**\n * Country the place is in.\n */\n country?: string;\n /**\n * Business contact email, when listed.\n */\n email?: string;\n /**\n * Star rating / hotel class, when applicable.\n */\n hotelClass?: string;\n /**\n * Tripadvisor location id (stable identifier for the place).\n */\n id?: string;\n /**\n * Primary place photo URL.\n */\n image?: string;\n /**\n * Latitude of the place in decimal degrees.\n */\n latitude?: number;\n /**\n * Longitude of the place in decimal degrees.\n */\n longitude?: number;\n /**\n * Business phone number, when listed.\n */\n phone?: string;\n /**\n * Postal code of the place.\n */\n postalCode?: string;\n /**\n * Relative price level indicator (e.g. $$, $$$$).\n */\n priceLevel?: string;\n /**\n * Nightly or per-visit price range in the requested currency.\n */\n priceRange?: string;\n /**\n * Ranking string within its location (e.g. \"#2 of 1,885 hotels in Paris\").\n */\n ranking?: string;\n /**\n * Average traveler rating out of 5. Populated whenever the provider has data for the entity.\n */\n rating: number;\n /**\n * Total number of traveler reviews.\n */\n reviewCount?: number;\n /**\n * Place name. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Tripadvisor place type (e.g. HOTEL, RESTAURANT, ATTRACTION).\n */\n type?: string;\n /**\n * Canonical Tripadvisor listing page URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The place's own website URL, when listed.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Tripadvisor Search (tripadvisor.search).\n */\nexport interface TripadvisorSearchData {\n /**\n * Matching Tripadvisor place records (hotels, restaurants, attractions). Populated whenever the provider has data for the entity.\n */\n items: TripadvisorSearchItem[];\n}\n\n/**\n * Typed methods for the tripadvisor platform. Attached to the AnyAPI client as\n * `client.tripadvisor`.\n */\nexport class TripadvisorNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Tripadvisor Reviews\n *\n * Fetch the latest reviews for any Tripadvisor hotel, restaurant, or attraction by its page URL: rating, text, date, and trip details as normalized JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.tripadvisor.reviews({ url: \"https://www.tripadvisor.com/Hotel_Review-g60763-d93450-Reviews-The_Plaza-New_York_City_New_York.html\", limit: 3 });\n */\n reviews(\n input: TripadvisorReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TripadvisorReviewsData>> {\n return this._core.run(\"tripadvisor.reviews\", input, options);\n }\n\n /**\n * Tripadvisor Search\n *\n * Search Tripadvisor for hotels, restaurants, and attractions in any destination and get rich place records (ratings, review counts, contact details, pricing) as normalized JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.tripadvisor.search({ query: \"Paris\", limit: 3 });\n */\n search(\n input: TripadvisorSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<TripadvisorSearchData>> {\n return this._core.run(\"tripadvisor.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Trustpilot Reviews (trustpilot.reviews).\n */\nexport interface TrustpilotReviewsInput {\n /**\n * Brand name or Trustpilot review-page URL to fetch reviews for (e.g. nike or https://www.trustpilot.com/review/nike.com).\n */\n company: string;\n /**\n * Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. [\"US\", \"GB\"]); omit for all countries.\n */\n countries?: string[];\n /**\n * Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"de\"]); omit for all languages.\n */\n languages?: string[];\n /**\n * Maximum number of results to return (1-50, default 50). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 50.\n */\n limit?: number;\n /**\n * Review ordering: auto, relevancy, or recent (e.g. recent).\n * Default: auto.\n */\n sortBy?: string;\n /**\n * Limit reviews to a single star rating from 1 to 5 (e.g. 5); omit for all ratings.\n */\n stars?: string;\n /**\n * Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).\n */\n startDate?: string;\n /**\n * Set true to return only verified reviews (e.g. true).\n * Default: false.\n */\n verifiedOnly?: boolean;\n}\n\nexport interface TrustpilotReviewsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Star rating (1-5).\n */\n rating: number;\n /**\n * Review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review title or headline. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Canonical review URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Whether the reviewer is verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Trustpilot Reviews (trustpilot.reviews).\n */\nexport interface TrustpilotReviewsData {\n /**\n * Review records: star rating, review title and text, date, reviewer name and country, and company reply when present. Populated whenever the provider has data for the entity.\n */\n items: TrustpilotReviewsItem[];\n}\n\n/**\n * Typed methods for the trustpilot platform. Attached to the AnyAPI client as\n * `client.trustpilot`.\n */\nexport class TrustpilotNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Trustpilot Reviews\n *\n * Pull Trustpilot reviews for any company by brand name: star ratings, review text, dates, and reviewer details as clean JSON.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.trustpilot.reviews({ company: \"stripe.com\", limit: 3 });\n */\n reviews(\n input: TrustpilotReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TrustpilotReviewsData>> {\n return this._core.run(\"trustpilot.reviews\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Truth Social Post (truthsocial.post).\n */\nexport interface TruthsocialPostInput {\n /**\n * Full Truth Social post URL, e.g. \"https://truthsocial.com/@realDonaldTrump/posts/116824551176646175\".\n */\n url: string;\n}\n\n/**\n * The `data` payload of Truth Social Post (truthsocial.post).\n */\nexport interface TruthsocialPostData {\n /**\n * Number of comments on the post.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Display name of the author. Populated whenever the provider has data for the entity.\n */\n displayName: string;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Number of reblogs of the post.\n */\n shares: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Username of the author. Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Truth Social Profile (truthsocial.profile).\n */\nexport interface TruthsocialProfileInput {\n /**\n * Truth Social handle without the @, e.g. \"realDonaldTrump\".\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Truth Social Profile (truthsocial.profile).\n */\nexport interface TruthsocialProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n joinedAt: string;\n postsCount: number;\n private: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Truth Social User Posts (truthsocial.user_posts).\n */\nexport interface TruthsocialUserPostsInput {\n /**\n * Truth Social handle without the @, e.g. \"realDonaldTrump\".\n */\n handle: string;\n}\n\nexport interface TruthsocialUserPostsPost {\n /**\n * Number of comments on the post.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Number of reblogs of the post.\n */\n shares: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Truth Social User Posts (truthsocial.user_posts).\n */\nexport interface TruthsocialUserPostsData {\n /**\n * The user's recent posts. Populated whenever the provider has data for the entity.\n */\n posts: TruthsocialUserPostsPost[];\n}\n\n/**\n * Typed methods for the truthsocial platform. Attached to the AnyAPI client as\n * `client.truthsocial`.\n */\nexport class TruthsocialNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Truth Social Post\n *\n * Get a single Truth Social post by its URL - text, author, engagement (likes, comments, shares), and timestamp as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.truthsocial.post({ url: \"https://truthsocial.com/@realDonaldTrump/posts/116824551176646175\" });\n */\n post(\n input: TruthsocialPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<TruthsocialPostData>> {\n return this._core.run(\"truthsocial.post\", input, options);\n }\n\n /**\n * Truth Social Profile\n *\n * Get a Truth Social account's public profile by handle - display name, bio, follower/following counts, and post count as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.truthsocial.profile({ handle: \"realDonaldTrump\" });\n */\n profile(\n input: TruthsocialProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<TruthsocialProfileData>> {\n return this._core.run(\"truthsocial.profile\", input, options);\n }\n\n /**\n * Truth Social User Posts\n *\n * List a Truth Social account's recent posts by handle - text, engagement (likes, comments, shares), and timestamps as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.truthsocial.userPosts({ handle: \"realDonaldTrump\" });\n */\n userPosts(\n input: TruthsocialUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TruthsocialUserPostsData>> {\n return this._core.run(\"truthsocial.user_posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for X / Twitter Article (twitter.article).\n */\nexport interface TwitterArticleInput {\n /**\n * Canonical x.com or twitter.com URL of the public wrapper post for an X Article.\n */\n url: string;\n}\n\nexport interface TwitterArticleContentBlock {\n /**\n * Entity references within the block text.\n */\n entities?: TwitterArticleEntitie[];\n /**\n * Image height in pixels when supplied.\n * Range: minimum 0.\n */\n height?: number;\n /**\n * Canonical image URL for an image block.\n * Format: uri.\n */\n image?: string;\n /**\n * Formatting ranges within the block text.\n */\n inlineStyles?: TwitterArticleInlineStyle[];\n /**\n * Text content for a text-bearing block.\n */\n text?: string;\n /**\n * Block type reported by X, such as unstyled, header-two, image, divider, blockquote, or list item. Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Image width in pixels when supplied.\n * Range: minimum 0.\n */\n width?: number;\n [extra: string]: unknown;\n}\n\nexport interface TwitterArticleEntitie {\n /**\n * Upstream entity table key.\n * Range: minimum 0.\n */\n key: number;\n /**\n * Entity character length.\n * Range: minimum 0.\n */\n length: number;\n /**\n * Zero-based character offset.\n * Range: minimum 0.\n */\n offset: number;\n [extra: string]: unknown;\n}\n\nexport interface TwitterArticleInlineStyle {\n /**\n * Formatted character length.\n * Range: minimum 0.\n */\n length: number;\n /**\n * Zero-based character offset.\n * Range: minimum 0.\n */\n offset: number;\n /**\n * Inline style name reported by X.\n */\n style: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Article (twitter.article).\n */\nexport interface TwitterArticleData {\n /**\n * Article author profile at retrieval time. Populated whenever the provider has data for the entity.\n */\n author: {\n /**\n * Profile avatar image URL.\n * Format: uri.\n */\n avatarUrl?: string;\n /**\n * Profile biography.\n */\n bio?: string;\n /**\n * Whether the account has X blue verification.\n */\n blueVerified?: boolean;\n /**\n * Profile cover image URL when available.\n * Format: uri.\n */\n coverUrl?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Follower count at retrieval time.\n * Range: minimum 0.\n */\n followers?: number;\n /**\n * Following count at retrieval time.\n * Range: minimum 0.\n */\n following?: number;\n /**\n * Current X handle without @. Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Stable numeric X user ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Self-reported profile location.\n */\n location?: string;\n /**\n * Profile display name.\n */\n name?: string;\n /**\n * Canonical public X profile URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * Whether the account has legacy verification.\n */\n verified?: boolean;\n };\n /**\n * Ordered, explicitly normalized article blocks. Unknown future block types remain representable through type and optional fields. Populated whenever the provider has data for the entity.\n */\n contentBlocks: TwitterArticleContentBlock[];\n /**\n * Canonical article cover image URL when available.\n * Format: uri.\n */\n coverImage?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Stable X Article entity ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Wrapper post like count at retrieval time.\n * Range: minimum 0.\n */\n likes?: number;\n /**\n * Preview text supplied by X.\n */\n previewText?: string;\n /**\n * Wrapper post quote count at retrieval time.\n * Range: minimum 0.\n */\n quotes?: number;\n /**\n * Wrapper post reply count at retrieval time.\n * Range: minimum 0.\n */\n replies?: number;\n /**\n * Article title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Wrapper post view count at retrieval time.\n * Range: minimum 0.\n */\n views?: number;\n}\n\n/**\n * Input for Twitter Community (twitter.community).\n */\nexport interface TwitterCommunityInput {\n /**\n * Community URL (e.g. https://x.com/i/communities/1926186499399139650).\n */\n url: string;\n}\n\n/**\n * The `data` payload of Twitter Community (twitter.community).\n */\nexport interface TwitterCommunityData {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Handle of the account that created the community. Populated whenever the provider has data for the entity.\n */\n creatorHandle: string;\n /**\n * Community description text. Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Community identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * How members join, e.g. \"open\" or \"restricted\". Populated whenever the provider has data for the entity.\n */\n joinPolicy: string;\n /**\n * Number of members in the community.\n */\n memberCount: number;\n /**\n * Community name. Populated whenever the provider has data for the entity.\n */\n name: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Twitter Community Tweets (twitter.community_tweets).\n */\nexport interface TwitterCommunityTweetsInput {\n /**\n * Community URL (e.g. https://x.com/i/communities/1926186499399139650).\n */\n url: string;\n}\n\nexport interface TwitterCommunityTweetsTweet {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorHandle: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n favoriteCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n quoteCount: number;\n replyCount: number;\n retweetCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Twitter Community Tweets (twitter.community_tweets).\n */\nexport interface TwitterCommunityTweetsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n tweets: TwitterCommunityTweetsTweet[];\n}\n\n/**\n * Input for X / Twitter Followers (twitter.followers).\n */\nexport interface TwitterFollowersInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of followers.\n */\n cursor?: string;\n /**\n * Per-page maximum number of followers to return (1-100000, default 200). A provider may return a smaller native page; follow nextCursor for more.\n * Range: minimum 1, maximum 100000.\n * Default: 200.\n */\n limit?: number;\n /**\n * Set true to get up to limit followers in one response instead of provider-native pages, served by a bulk provider when needed.\n */\n requireSinglePage?: boolean;\n /**\n * The X (Twitter) username to fetch followers for, without the @ prefix (e.g. elonmusk).\n */\n username: string;\n}\n\nexport interface TwitterFollowersItem {\n /**\n * URL of the account's profile image (may be empty). Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * The account's profile bio/description.\n */\n bio: string;\n /**\n * How many followers this account has.\n */\n followers: number;\n /**\n * How many accounts this account follows.\n */\n following: number;\n /**\n * The account's self-reported location (may be empty).\n */\n location: string;\n /**\n * The account's display name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * The account's @ handle, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n username: string;\n /**\n * Whether the account is verified.\n */\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Followers (twitter.followers).\n */\nexport interface TwitterFollowersData {\n /**\n * Follower records, normalized to a compact shape. Populated whenever the provider has data for the entity.\n */\n items: TwitterFollowersItem[];\n /**\n * Opaque cursor for the next page of followers, or null when there are no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for X / Twitter Following (twitter.following).\n */\nexport interface TwitterFollowingInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of followed accounts.\n */\n cursor?: string;\n /**\n * Per-page maximum number of followed accounts to return (1-100000, default 200). A provider may return a smaller native page; follow nextCursor for more.\n * Range: minimum 1, maximum 100000.\n * Default: 200.\n */\n limit?: number;\n /**\n * Set true to get up to limit accounts in one response instead of provider-native pages, served by a bulk provider when needed.\n */\n requireSinglePage?: boolean;\n /**\n * The X (Twitter) username to fetch the following list for, without the @ prefix (e.g. elonmusk).\n */\n username: string;\n}\n\nexport interface TwitterFollowingItem {\n /**\n * URL of the account's profile image (may be empty). Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * The account's profile bio/description.\n */\n bio: string;\n /**\n * How many followers this account has.\n */\n followers: number;\n /**\n * How many accounts this account follows.\n */\n following: number;\n /**\n * The account's self-reported location (may be empty).\n */\n location: string;\n /**\n * The account's display name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * The account's @ handle, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n username: string;\n /**\n * Whether the account is verified.\n */\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Following (twitter.following).\n */\nexport interface TwitterFollowingData {\n /**\n * Followed-account records, normalized to a compact shape. Populated whenever the provider has data for the entity.\n */\n items: TwitterFollowingItem[];\n /**\n * Opaque cursor for the next page of followed accounts, or null when there are no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for Twitter Profile (twitter.profile).\n */\nexport interface TwitterProfileInput {\n /**\n * Twitter/X handle without the leading @.\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Twitter Profile (twitter.profile).\n */\nexport interface TwitterProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n tweets: number;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for X / Twitter Post Replies (twitter.replies).\n */\nexport interface TwitterRepliesInput {\n /**\n * Maximum number of results to return (1-40, default 40). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 40.\n */\n limit?: number;\n /**\n * Full URL of the X (Twitter) post to fetch replies for (e.g. https://x.com/nasa/status/1846987139428634858).\n */\n url: string;\n}\n\nexport interface TwitterRepliesItem {\n /**\n * Screen name / handle of the reply's author, without the @ prefix.\n */\n authorHandle?: string;\n /**\n * Display name of the reply's author. Empty when the upstream omits it.\n */\n authorName?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * The reply's numeric tweet ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on this reply.\n */\n likeCount?: number;\n /**\n * Number of quote tweets of this reply.\n */\n quoteCount?: number;\n /**\n * Number of replies to this reply.\n */\n replyCount?: number;\n /**\n * Number of reposts/retweets of this reply.\n */\n repostCount?: number;\n /**\n * The reply's text. Empty for media-only replies with no text.\n */\n text: string;\n /**\n * Canonical x.com URL of the reply, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Number of views of this reply.\n */\n viewCount?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Post Replies (twitter.replies).\n */\nexport interface TwitterRepliesData {\n /**\n * Reply records for the requested post. Populated whenever the provider has data for the entity.\n */\n items: TwitterRepliesItem[];\n}\n\n/**\n * Input for X / Twitter Search (twitter.search).\n */\nexport interface TwitterSearchInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of search results.\n */\n cursor?: string;\n /**\n * Optional ISO 639-1 language code to restrict tweets to (e.g. en).\n */\n lang?: string;\n /**\n * Per-page maximum number of results to return (1-50, default 20). A provider may return a smaller native page; follow nextCursor for more.\n * Range: minimum 1, maximum 50.\n * Default: 20.\n */\n limit?: number;\n /**\n * Search query using X (Twitter) advanced-search syntax. IMPORTANT: bare terms are ANDed - a tweet must contain EVERY word, so a list of loosely related keywords matches nothing; use one short phrase or OR between alternatives (e.g. 'anyapi OR getanyapi'). You can embed X advanced-search operators directly in the query to filter results: from:username and to:username (author or recipient), since:YYYY-MM-DD and until:YYYY-MM-DD (date range), min_faves:N, min_retweets:N, min_replies:N (engagement floors), \"exact phrase\", -term to exclude, filter:media and filter:links and -filter:replies (content filters), lang:en, near:city, and geocode:lat,long,radius. Examples: 'from:OpenAI', 'AI agents min_faves:500 -filter:replies', 'nvidia since:2026-01-01 until:2026-03-01'. A query with no matches returns an empty items array; prefer the fewest words that identify the topic.\n */\n query: string;\n /**\n * Result ranking: 'Latest', 'Top', 'Photos', or 'Videos' (e.g. Latest).\n * Default: Latest.\n */\n queryType?: string;\n /**\n * Set true to get up to limit results in one response instead of provider-native pages, served by a bulk provider when needed.\n */\n requireSinglePage?: boolean;\n}\n\nexport interface TwitterSearchItem {\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUsername?: string;\n authorVerified?: boolean;\n bookmarkCount?: number;\n conversationId?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isReply?: boolean;\n lang?: string;\n likeCount?: number;\n quoteCount?: number;\n replyCount?: number;\n retweetCount?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n viewCount?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Search (twitter.search).\n */\nexport interface TwitterSearchData {\n /**\n * Tweet records: text, author profile, timestamp, and engagement metrics (likes, retweets, replies, views). Populated whenever the provider has data for the entity.\n */\n items: TwitterSearchItem[];\n /**\n * Opaque cursor for the next page of search results, or null when there are no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for X / Twitter Trends (twitter.trends).\n */\nexport interface TwitterTrendsInput {\n /**\n * Maximum number of ranked trends to return (1-50, default 50).\n * Range: minimum 1, maximum 50.\n * Default: 50.\n */\n limit?: number;\n /**\n * Country name, city name, or ISO country code. Omit for worldwide trends.\n */\n location?: string;\n}\n\nexport interface TwitterTrendsItem {\n /**\n * Whether the trend text is a hashtag.\n */\n isHashtag?: boolean;\n /**\n * Trend text displayed by X. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Whether X marks the trend as promoted.\n */\n promoted?: boolean;\n /**\n * Search query corresponding to the trend. Populated whenever the provider has data for the entity.\n */\n query: string;\n /**\n * One-based position in X's trend ranking. Populated whenever the provider has data for the entity.\n * Range: minimum 1.\n */\n rank: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Trends (twitter.trends).\n */\nexport interface TwitterTrendsData {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n asOfUtc: number;\n /**\n * Current trends in X's own ranking order. Distinct ranks may carry the same trend name. Populated whenever the provider has data for the entity.\n */\n items: TwitterTrendsItem[];\n /**\n * Resolved X trend-location name. Populated whenever the provider has data for the entity.\n */\n location: string;\n /**\n * Resolved Yahoo WOEID used by X, exposed as a stable location identifier. Populated whenever the provider has data for the entity.\n */\n locationId: string;\n}\n\n/**\n * Input for Twitter Tweet (twitter.tweet).\n */\nexport interface TwitterTweetInput {\n /**\n * Canonical x.com or twitter.com status URL with a numeric tweet ID, including /i/web/status and media-share variants.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Twitter Tweet (twitter.tweet).\n */\nexport interface TwitterTweetData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorId: string;\n bookmarks: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n quotes: number;\n replies: number;\n retweets: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Twitter Tweet Transcript (twitter.tweet_transcript).\n */\nexport interface TwitterTweetTranscriptInput {\n /**\n * Tweet URL of the video to transcribe (e.g. https://x.com/TheoVon/status/1916982720317821050).\n */\n url: string;\n}\n\n/**\n * The `data` payload of Twitter Tweet Transcript (twitter.tweet_transcript).\n */\nexport interface TwitterTweetTranscriptData {\n transcript: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for X / Twitter User Posts (twitter.user_posts).\n */\nexport interface TwitterUserPostsInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page.\n */\n cursor?: string;\n /**\n * Twitter/X handle without the leading @.\n */\n handle: string;\n}\n\nexport interface TwitterUserPostsTweet {\n /**\n * Number of bookmarks.\n */\n bookmarks: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * The post's numeric tweet ID, represented as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Whether X marks the post as pinned on the profile.\n */\n isPinned: boolean;\n /**\n * Whether X marks the record as a reply. Certified Posts-tab captures use this for self-thread continuations.\n */\n isReply?: boolean;\n /**\n * Language code reported for the post, when available.\n */\n lang?: string;\n /**\n * Number of likes.\n */\n likes: number;\n /**\n * Number of quote posts.\n */\n quotes?: number;\n /**\n * Number of replies.\n */\n replies: number;\n /**\n * Number of reposts or retweets.\n */\n retweets: number;\n /**\n * The post text. Empty for media-only posts. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical x.com URL of the post. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * Number of views.\n */\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter User Posts (twitter.user_posts).\n */\nexport interface TwitterUserPostsData {\n /**\n * Opaque cursor for the next native Posts-tab page, or null when no more pages are available.\n */\n nextCursor: string;\n /**\n * Posts in profile order. A pinned post may appear before otherwise reverse-chronological results. Populated whenever the provider has data for the entity.\n */\n tweets: TwitterUserPostsTweet[];\n}\n\n/**\n * Input for X / Twitter User Tweets and Replies (twitter.user_tweets).\n */\nexport interface TwitterUserTweetsInput {\n /**\n * Reserved for cursor-capable lanes. The current bulk lane returns nextCursor as null, so omit this field.\n */\n cursor?: string;\n /**\n * Twitter/X handle without the leading @.\n */\n handle: string;\n /**\n * Maximum number of authored tweets and replies to return in the current bulk call (1-1000). The provider may return fewer results.\n * Range: minimum 1, maximum 1000.\n * Default: 20.\n */\n limit?: number;\n /**\n * Compatibility flag for requiring one response. The current lane already returns up to limit results in one bulk call, whether this is omitted or true.\n */\n requireSinglePage?: boolean;\n}\n\nexport interface TwitterUserTweetsTweet {\n bookmarks: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isPinned: boolean;\n isReply?: boolean;\n lang?: string;\n likes: number;\n quotes?: number;\n replies: number;\n retweets: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter User Tweets and Replies (twitter.user_tweets).\n */\nexport interface TwitterUserTweetsData {\n /**\n * Reserved pagination cursor. The current bulk lane returns null; cursor-capable lanes may return an opaque continuation value in the future.\n */\n nextCursor?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n tweets: TwitterUserTweetsTweet[];\n}\n\n/**\n * Typed methods for the twitter platform. Attached to the AnyAPI client as\n * `client.twitter`.\n */\nexport class TwitterNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * X / Twitter Article\n *\n * Get a public X long-form article from its wrapper post URL, including its author, engagement, cover image, and structured content blocks.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.article({ url: \"https://x.com/Decentralisedco/status/1905545699552375179\" });\n */\n article(\n input: TwitterArticleInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterArticleData>> {\n return this._core.run(\"twitter.article\", input, options);\n }\n\n /**\n * Twitter Community\n *\n * Fetch a Twitter/X community's public details (name, description, member count, join policy) by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.twitter.community({ url: \"https://x.com/i/communities/1926186499399139650\" });\n */\n community(\n input: TwitterCommunityInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterCommunityData>> {\n return this._core.run(\"twitter.community\", input, options);\n }\n\n /**\n * Twitter Community Tweets\n *\n * List recent tweets posted in a Twitter/X community by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.twitter.communityTweets({ url: \"https://x.com/i/communities/1926186499399139650\" });\n */\n communityTweets(\n input: TwitterCommunityTweetsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterCommunityTweetsData>> {\n return this._core.run(\"twitter.community_tweets\", input, options);\n }\n\n /**\n * X / Twitter Followers\n *\n * Fetch the follower list of any public X (Twitter) account by username with cursor pagination. Limit is a per-page maximum; native pages contain up to 200 accounts unless requireSinglePage selects a bulk lane.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.followers({ username: \"nasa\", limit: 200 });\n */\n followers(\n input: TwitterFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterFollowersData>> {\n return this._core.run(\"twitter.followers\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter Followers across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowers(\n input: TwitterFollowersInput,\n options?: RequestOptions,\n ): Paginator<TwitterFollowersItem, RunResult<TwitterFollowersData>> {\n return paginate<TwitterFollowersItem, RunResult<TwitterFollowersData>>(\n this._core,\n \"twitter.followers\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * X / Twitter Following\n *\n * List the accounts a public X (Twitter) account follows by username with cursor pagination. Limit is a per-page maximum; native pages contain up to 200 accounts unless requireSinglePage selects a bulk lane.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.following({ username: \"nasa\", limit: 200 });\n */\n following(\n input: TwitterFollowingInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterFollowingData>> {\n return this._core.run(\"twitter.following\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter Following across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowing(\n input: TwitterFollowingInput,\n options?: RequestOptions,\n ): Paginator<TwitterFollowingItem, RunResult<TwitterFollowingData>> {\n return paginate<TwitterFollowingItem, RunResult<TwitterFollowingData>>(\n this._core,\n \"twitter.following\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * Twitter Profile\n *\n * Fetch a Twitter/X account's public profile (followers, tweets, bio, verification) by handle, normalized across providers with transparent failover.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.profile({ handle: \"nasa\" });\n */\n profile(\n input: TwitterProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterProfileData>> {\n return this._core.run(\"twitter.profile\", input, options);\n }\n\n /**\n * X / Twitter Post Replies\n *\n * Fetch the replies to any X (Twitter) post URL as structured records: author, text, and engagement.\n *\n * Price: $0.0025 per request plus $0.00025 per result (maximum $0.0125).\n *\n * @example\n * const res = await client.twitter.replies({ url: \"https://x.com/jack/status/20\", limit: 3 });\n */\n replies(\n input: TwitterRepliesInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterRepliesData>> {\n return this._core.run(\"twitter.replies\", input, options);\n }\n\n /**\n * X / Twitter Search\n *\n * Search X (Twitter) with full advanced-search syntax (operators like from:, since:, until:, min_faves: work inline in the query) and get structured tweets with text, author, engagement, and cursor pagination. Limit is a per-page maximum; native pages contain approximately 20 tweets unless requireSinglePage selects a bulk lane.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.search({ query: \"openai\" });\n */\n search(\n input: TwitterSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterSearchData>> {\n return this._core.run(\"twitter.search\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearch(\n input: TwitterSearchInput,\n options?: RequestOptions,\n ): Paginator<TwitterSearchItem, RunResult<TwitterSearchData>> {\n return paginate<TwitterSearchItem, RunResult<TwitterSearchData>>(\n this._core,\n \"twitter.search\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * X / Twitter Trends\n *\n * Get current X (Twitter) trends for worldwide, a country, or a city in X ranking order, including the resolved location.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.trends({ limit: 10, location: \"US\" });\n */\n trends(\n input: TwitterTrendsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterTrendsData>> {\n return this._core.run(\"twitter.trends\", input, options);\n }\n\n /**\n * Twitter Tweet\n *\n * Fetch a single Twitter/X tweet by URL with its full text and engagement counts (likes, retweets, replies, quotes, bookmarks, views), normalized across providers.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.tweet({ url: \"https://x.com/SpaceX/status/1732824684683784516\" });\n */\n tweet(\n input: TwitterTweetInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterTweetData>> {\n return this._core.run(\"twitter.tweet\", input, options);\n }\n\n /**\n * Twitter Tweet Transcript\n *\n * Extract the spoken transcript from a Twitter/X video tweet by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.twitter.tweetTranscript({ url: \"https://x.com/TheoVon/status/1916982720317821050\" });\n */\n tweetTranscript(\n input: TwitterTweetTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterTweetTranscriptData>> {\n return this._core.run(\"twitter.tweet_transcript\", input, options);\n }\n\n /**\n * X / Twitter User Posts\n *\n * Get an X (Twitter) account's profile Posts-tab timeline by handle. Results follow profile order: a pinned post may appear first, followed by otherwise reverse-chronological authored posts, reposts, quotes, and self-thread continuations.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.userPosts({ handle: \"levelsio\" });\n */\n userPosts(\n input: TwitterUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterUserPostsData>> {\n return this._core.run(\"twitter.user_posts\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter User Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserPosts(\n input: TwitterUserPostsInput,\n options?: RequestOptions,\n ): Paginator<TwitterUserPostsTweet, RunResult<TwitterUserPostsData>> {\n return paginate<TwitterUserPostsTweet, RunResult<TwitterUserPostsData>>(\n this._core,\n \"twitter.user_posts\",\n input as unknown as Record<string, unknown>,\n \"tweets\",\n false,\n options,\n );\n }\n\n /**\n * X / Twitter User Tweets and Replies\n *\n * Get up to the requested limit of tweets and replies authored by an X (Twitter) account in one bulk call, with engagement, views, and language. The current lane returns nextCursor as null; cursor is reserved for future cursor-capable lanes.\n *\n * Price: $0 per request plus $0.0002 per result (maximum $0.2).\n *\n * @example\n * const res = await client.twitter.userTweets({ handle: \"levelsio\", limit: 20 });\n */\n userTweets(\n input: TwitterUserTweetsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterUserTweetsData>> {\n return this._core.run(\"twitter.user_tweets\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter User Tweets and Replies across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserTweets(\n input: TwitterUserTweetsInput,\n options?: RequestOptions,\n ): Paginator<TwitterUserTweetsTweet, RunResult<TwitterUserTweetsData>> {\n return paginate<TwitterUserTweetsTweet, RunResult<TwitterUserTweetsData>>(\n this._core,\n \"twitter.user_tweets\",\n input as unknown as Record<string, unknown>,\n \"tweets\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Upwork Jobs (upwork.jobs).\n */\nexport interface UpworkJobsInput {\n /**\n * Filter by required experience level.\n * One of: entry, intermediate, expert.\n */\n experienceLevel?: \"entry\" | \"intermediate\" | \"expert\";\n /**\n * Budget range [min, max] in USD for fixed-price jobs (e.g. [500, 5000]).\n */\n fixedPriceRange?: number[];\n /**\n * Hourly rate range [min, max] in USD/hour for hourly jobs (e.g. [20, 50]).\n */\n hourlyRateRange?: number[];\n /**\n * Filter by payment type: fixed-price or hourly jobs.\n * One of: fixed, hourly.\n */\n jobType?: \"fixed\" | \"hourly\";\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Filter by client location - a region, subregion, or country (e.g. United States, Europe).\n */\n location?: string;\n /**\n * When true, only return jobs from clients with a verified payment method.\n */\n paymentVerified?: boolean;\n /**\n * Keywords to search Upwork jobs for (e.g. react developer).\n */\n query: string;\n /**\n * Sort order for listings: newest or relevance (e.g. newest).\n * One of: newest, relevance.\n * Default: newest.\n */\n sort?: \"newest\" | \"relevance\";\n}\n\nexport interface UpworkJobsItem {\n /**\n * Fixed budget or hourly range.\n */\n budget?: string;\n /**\n * Client country or location.\n */\n clientLocation?: string;\n /**\n * Client average rating.\n */\n clientRating?: number;\n /**\n * Client lifetime spend (USD).\n */\n clientTotalSpent?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Full job posting description text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * Required experience level (e.g. Entry, Intermediate, Expert).\n */\n experienceLevel?: string;\n /**\n * Upwork job identifier. Populated whenever the provider has data for the entity.\n */\n jobId: string;\n /**\n * Fixed or Hourly.\n */\n jobType?: string;\n /**\n * Whether the client's payment method is verified; null when Upwork reports it as unknown.\n */\n paymentVerified?: boolean;\n /**\n * Number of proposals submitted.\n */\n proposals?: number;\n /**\n * Skill tags.\n */\n tags?: string[];\n /**\n * Job posting title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Upwork job posting URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Upwork Jobs (upwork.jobs).\n */\nexport interface UpworkJobsData {\n /**\n * Job records: title, description, budget or hourly rate, required skills, posted date, and client details. Populated whenever the provider has data for the entity.\n */\n items: UpworkJobsItem[];\n}\n\n/**\n * Typed methods for the upwork platform. Attached to the AnyAPI client as\n * `client.upwork`.\n */\nexport class UpworkNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Upwork Jobs\n *\n * Search Upwork job postings by keyword, with up to 25 fresh listings per request.\n *\n * Price: $0 per request plus $0.0033 per result (maximum $0.0825).\n *\n * @example\n * const res = await client.upwork.jobs({ query: \"web developer\", jobType: \"fixed\", limit: 10 });\n */\n jobs(\n input: UpworkJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<UpworkJobsData>> {\n return this._core.run(\"upwork.jobs\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Walmart Product (walmart.product).\n */\nexport interface WalmartProductInput {\n /**\n * Walmart product page URL.\n */\n url: string;\n}\n\nexport interface WalmartProductItem {\n /**\n * Stock status, e.g. \"IN_STOCK\".\n */\n availability?: string;\n /**\n * Brand name; empty when not reported.\n */\n brand?: string;\n /**\n * Short product description; empty when the listing has none.\n */\n description?: string;\n /**\n * Primary product image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * All product image URLs.\n */\n images?: string[];\n /**\n * Walmart US item id (usItemId). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n itemId?: string;\n /**\n * Manufacturer model number; empty when not reported.\n */\n model?: string;\n /**\n * Current price as displayed, e.g. \"$125.00\"; empty when unavailable (Walmart returns a formatted string, not a numeric value).\n */\n priceText?: string;\n /**\n * Walmart internal product id.\n */\n productId?: string;\n /**\n * Average customer rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Number of customer reviews; 0 when none.\n */\n reviewsCount?: number;\n /**\n * Name of the seller fulfilling the offer.\n */\n sellerName?: string;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Universal Product Code; empty when not reported.\n */\n upc?: string;\n /**\n * Canonical Walmart product page URL (condition query param retained, as it selects the offer). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Walmart Product (walmart.product).\n */\nexport interface WalmartProductData {\n /**\n * Product detail records (one per requested product URL). Populated whenever the provider has data for the entity.\n */\n items: WalmartProductItem[];\n}\n\n/**\n * Typed methods for the walmart platform. Attached to the AnyAPI client as\n * `client.walmart`.\n */\nexport class WalmartNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Walmart Product\n *\n * Fetch a Walmart product page by URL and get full product details (title, price, availability, ratings, images, and specs) in one normalized response.\n *\n * Price: $0 per request plus $0.00368 per result (maximum $0.00368).\n *\n * @example\n * const res = await client.walmart.product({ url: \"https://www.walmart.com/ip/Apple-AirPods-Pro-2/5689919121\" });\n */\n product(\n input: WalmartProductInput,\n options?: RequestOptions,\n ): Promise<RunResult<WalmartProductData>> {\n return this._core.run(\"walmart.product\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Website Crawl (web.crawl).\n */\nexport interface WebCrawlInput {\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * The website URL or domain to crawl.\n */\n url: string;\n}\n\nexport interface WebCrawlItem {\n /**\n * Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Website Crawl (web.crawl).\n */\nexport interface WebCrawlData {\n /**\n * Crawled page records: URL, page title, and extracted text content for each page. Populated whenever the provider has data for the entity.\n */\n items: WebCrawlItem[];\n}\n\n/**\n * Input for Web Map (web.map).\n */\nexport interface WebMapInput {\n /**\n * When true (upstream default), include URLs on subdomains of the target (for example docs.example.com when mapping example.com). Set false to return only URLs on the exact host.\n */\n includeSubdomains?: boolean;\n /**\n * Maximum number of links to return.\n * Default: 100.\n */\n limit?: number;\n /**\n * Optional term that orders the returned links by relevance.\n */\n search?: string;\n /**\n * How to use the site's sitemap.xml when discovering URLs. 'include' (upstream default) merges sitemap URLs with links found by crawling; 'only' returns just the URLs listed in the sitemap (fastest and most authoritative); 'skip' ignores the sitemap and discovers URLs by crawling links. Omit to use 'include'.\n * One of: include, skip, only.\n */\n sitemap?: \"include\" | \"skip\" | \"only\";\n /**\n * The base URL of the site to map into a list of links.\n * Format: uri.\n */\n url: string;\n}\n\nexport interface WebMapResult {\n description: string;\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Web Map (web.map).\n */\nexport interface WebMapData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n results: WebMapResult[];\n}\n\n/**\n * Input for Web Scrape (web.scrape).\n */\nexport interface WebScrapeInput {\n /**\n * When true (upstream default), strip ad and cookie-consent elements before capture. Set false to keep them.\n */\n blockAds?: boolean;\n /**\n * CSS selectors to drop before capture (for example [\"nav\", \"footer\", \".ads\"]). Applied after includeTags.\n */\n excludeTags?: string[];\n /**\n * Which representations of the page to return. Any combination of: markdown (clean main content), html (cleaned HTML), rawHtml (verbatim page HTML). Each requested format is returned under the matching output field. Defaults to markdown only.\n */\n formats?: (\"markdown\" | \"html\" | \"rawHtml\")[];\n /**\n * CSS selectors to keep. When set, only content matching these selectors is captured (for example [\"article\", \"main\"] or [\"#content\"]).\n */\n includeTags?: string[];\n /**\n * When true, render the page with a mobile viewport and user agent instead of desktop. Some sites serve materially different content to mobile.\n */\n mobile?: boolean;\n /**\n * When true (default) return only the main article content, stripping navigation, headers, footers, and other boilerplate. Set false to capture the full page.\n * Default: true.\n */\n onlyMainContent?: boolean;\n /**\n * The URL of the page to scrape.\n * Format: uri.\n */\n url: string;\n /**\n * Milliseconds to wait for the page to finish rendering before capture. Use this for JavaScript-heavy pages or single-page apps whose content loads after the initial paint. Capped at 15000 to stay within the request timeout.\n * Range: minimum 0, maximum 15000.\n */\n waitFor?: number;\n}\n\n/**\n * The `data` payload of Web Scrape (web.scrape).\n */\nexport interface WebScrapeData {\n /**\n * The page meta description.\n */\n description: string;\n /**\n * The cleaned page HTML. Present only when 'html' is among the requested formats.\n */\n html?: string;\n /**\n * The page content as clean Markdown. Present when 'markdown' is among the requested formats (the default). Populated whenever the provider has data for the entity.\n */\n markdown: string;\n /**\n * The verbatim page HTML before cleaning. Present only when 'rawHtml' is among the requested formats.\n */\n rawHtml?: string;\n /**\n * The page title from its metadata.\n */\n title: string;\n /**\n * The canonical source URL of the scraped page. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Website Screenshot (web.screenshot).\n */\nexport interface WebScreenshotInput {\n /**\n * The full URL of the page to capture.\n */\n url: string;\n /**\n * Browser viewport width in pixels (e.g. 1280).\n * Default: 1280.\n */\n viewportWidth?: number;\n}\n\nexport interface WebScreenshotItem {\n /**\n * Link to the captured screenshot image. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * The final page URL that was captured. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Website Screenshot (web.screenshot).\n */\nexport interface WebScreenshotData {\n /**\n * Screenshot records: the requested page URL and a link to the captured image. Populated whenever the provider has data for the entity.\n */\n items: WebScreenshotItem[];\n}\n\n/**\n * Typed methods for the web platform. Attached to the AnyAPI client as\n * `client.web`.\n */\nexport class WebNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Website Crawl\n *\n * Crawl a website and get clean text content from up to 10 pages in one normalized response, ideal for feeding sites into LLMs and search indexes.\n *\n * Price: $0.0015 per request plus $0.003 per result (maximum $0.0315).\n *\n * @example\n * const res = await client.web.crawl({ url: \"https://example.com\", limit: 3 });\n */\n crawl(\n input: WebCrawlInput,\n options?: RequestOptions,\n ): Promise<RunResult<WebCrawlData>> {\n return this._core.run(\"web.crawl\", input, options);\n }\n\n /**\n * Web Map\n *\n * Map an entire website into a clean list of its URLs (with titles and descriptions) in a single call.\n *\n * Price: $0.0009 per request.\n *\n * @example\n * const res = await client.web.map({ url: \"https://www.iana.org\", search: \"domain\" });\n */\n map(\n input: WebMapInput,\n options?: RequestOptions,\n ): Promise<RunResult<WebMapData>> {\n return this._core.run(\"web.map\", input, options);\n }\n\n /**\n * Web Scrape\n *\n * Scrape any web page and get its content back as clean Markdown (or HTML, or raw HTML) plus title and metadata.\n *\n * Price: $0.0009 per request.\n *\n * @example\n * const res = await client.web.scrape({ url: \"https://example.com\", formats: [\"markdown\", \"html\", \"rawHtml\"], onlyMainContent: true });\n */\n scrape(\n input: WebScrapeInput,\n options?: RequestOptions,\n ): Promise<RunResult<WebScrapeData>> {\n return this._core.run(\"web.scrape\", input, options);\n }\n\n /**\n * Website Screenshot\n *\n * Capture a real-browser screenshot of any web page URL.\n *\n * Price: $0 per request plus $0.00158 per result (maximum $0.00158).\n *\n * @example\n * const res = await client.web.screenshot({ url: \"https://example.com\" });\n */\n screenshot(\n input: WebScreenshotInput,\n options?: RequestOptions,\n ): Promise<RunResult<WebScreenshotData>> {\n return this._core.run(\"web.screenshot\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Weibo Hot Search (weibo.hot_search).\n */\nexport interface WeiboHotSearchInput {}\n\nexport interface WeiboHotSearchTopic {\n /**\n * Topic popularity value.\n */\n heat?: string;\n /**\n * Hot-search keyword. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Whether the topic is pinned.\n */\n pinned?: boolean;\n /**\n * Ranking position; zero may indicate pinned content. Populated whenever the provider has data for the entity.\n */\n rank: number;\n /**\n * Hot-search label.\n */\n tag?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Weibo Hot Search (weibo.hot_search).\n */\nexport interface WeiboHotSearchData {\n /**\n * Ranked hot-search topics. Populated whenever the provider has data for the entity.\n */\n topics: WeiboHotSearchTopic[];\n /**\n * Total topics.\n */\n total: number;\n}\n\n/**\n * Input for Weibo Post (weibo.post).\n */\nexport interface WeiboPostInput {\n /**\n * Whether to include the full text of long posts.\n * Default: true.\n */\n includeLongText?: string;\n /**\n * Weibo post identifier.\n */\n postId: string;\n}\n\n/**\n * The `data` payload of Weibo Post (weibo.post).\n */\nexport interface WeiboPostData {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Whether the author is verified.\n */\n authorVerified?: boolean;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Attached image count.\n */\n imageCount?: number;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Region label reported by Weibo.\n */\n region?: string;\n /**\n * Repost count.\n */\n reposts?: number;\n /**\n * Short Weibo post identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n shortId?: string;\n /**\n * Plain post text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Weibo Post Comments (weibo.post_comments).\n */\nexport interface WeiboPostCommentsInput {\n /**\n * Pagination cursor returned as nextCursor.\n */\n cursor?: string;\n /**\n * Requested comment count.\n * Default: 10.\n */\n limit?: number;\n /**\n * Weibo post identifier.\n */\n postId: string;\n}\n\nexport interface WeiboPostCommentsComment {\n /**\n * Comment author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Comment author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Comment author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Whether the comment author is verified.\n */\n authorVerified?: boolean;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Comment identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Plain comment text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Weibo Post Comments (weibo.post_comments).\n */\nexport interface WeiboPostCommentsData {\n /**\n * Normalized first-level comments. Populated whenever the provider has data for the entity.\n */\n comments: WeiboPostCommentsComment[];\n /**\n * Cursor for the next page; empty when unavailable.\n */\n nextCursor: string;\n /**\n * Total comments reported by Weibo.\n */\n total: number;\n}\n\n/**\n * Input for Weibo Profile (weibo.profile).\n */\nexport interface WeiboProfileInput {\n /**\n * Weibo user identifier.\n */\n userId: string;\n}\n\n/**\n * The `data` payload of Weibo Profile (weibo.profile).\n */\nexport interface WeiboProfileData {\n /**\n * Profile biography.\n */\n bio?: string;\n /**\n * Custom Weibo username when configured.\n */\n customName?: string;\n /**\n * External profile URL.\n * Format: uri.\n */\n externalUrl?: string;\n /**\n * Follower count.\n */\n followers?: number;\n /**\n * Following count.\n */\n following?: number;\n /**\n * Gender code reported by Weibo.\n */\n gender?: string;\n /**\n * Profile image URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Profile location.\n */\n location?: string;\n /**\n * Display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Published post count.\n */\n posts?: number;\n /**\n * User identifier. Populated whenever the provider has data for the entity.\n */\n userId: string;\n /**\n * Whether the account is verified.\n */\n verified?: boolean;\n /**\n * Verification reason.\n */\n verifiedReason?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Weibo Advanced Search (weibo.search).\n */\nexport interface WeiboSearchInput {\n /**\n * Media filter, such as all, pic, video, music, or link.\n */\n includeType?: string;\n /**\n * Page number starting at 1.\n * Default: 1.\n */\n page?: number;\n /**\n * Search keyword.\n */\n query: string;\n /**\n * Search type, such as all, hot, original, verified, media, or viewpoint.\n */\n searchType?: string;\n /**\n * Custom time range in the API's custom:start:end format.\n */\n timeScope?: string;\n}\n\nexport interface WeiboSearchPost {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Whether the result contains an image.\n */\n hasImage?: boolean;\n /**\n * Whether the result contains a video.\n */\n hasVideo?: boolean;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Repost count.\n */\n reposts?: number;\n /**\n * Post text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n /**\n * Post type.\n */\n type?: string;\n /**\n * Canonical post URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Weibo Advanced Search (weibo.search).\n */\nexport interface WeiboSearchData {\n /**\n * Whether another result page is available.\n */\n hasMore: boolean;\n /**\n * Normalized Weibo search results. Populated whenever the provider has data for the entity.\n */\n posts: WeiboSearchPost[];\n /**\n * Result count reported for this page.\n */\n resultCount: number;\n}\n\n/**\n * Input for Weibo User Posts (weibo.user_posts).\n */\nexport interface WeiboUserPostsInput {\n /**\n * Pagination identifier returned as nextCursor.\n */\n cursor?: string;\n /**\n * Response detail feature: 0 basic, 1 extended, 2 image-oriented, or 3 video-oriented.\n * Default: 0.\n */\n feature?: number;\n /**\n * Page number starting at 1.\n * Default: 1.\n */\n page?: number;\n /**\n * Weibo user identifier.\n */\n userId: string;\n}\n\nexport interface WeiboUserPostsPost {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Whether the author is verified.\n */\n authorVerified?: boolean;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Post preview image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Repost count.\n */\n reposts?: number;\n /**\n * Short Weibo post identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n shortId?: string;\n /**\n * Plain post text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Weibo User Posts (weibo.user_posts).\n */\nexport interface WeiboUserPostsData {\n /**\n * Cursor for the next page; empty when unavailable.\n */\n nextCursor: string;\n /**\n * Normalized Weibo posts. Populated whenever the provider has data for the entity.\n */\n posts: WeiboUserPostsPost[];\n}\n\n/**\n * Typed methods for the weibo platform. Attached to the AnyAPI client as\n * `client.weibo`.\n */\nexport class WeiboNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Weibo Hot Search\n *\n * Get the complete current Weibo hot-search ranking with labels and heat values.\n *\n * Price: $0.0015 per request.\n *\n * @example\n * const res = await client.weibo.hotSearch({});\n */\n hotSearch(\n input: WeiboHotSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboHotSearchData>> {\n return this._core.run(\"weibo.hot_search\", input, options);\n }\n\n /**\n * Weibo Post\n *\n * Fetch a public Weibo post by ID with normalized author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.post({ postId: \"5092682368025584\", includeLongText: \"true\" });\n */\n post(\n input: WeiboPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboPostData>> {\n return this._core.run(\"weibo.post\", input, options);\n }\n\n /**\n * Weibo Post Comments\n *\n * List first-level comments on a public Weibo post with pagination.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.postComments({ postId: \"5283919831764022\", limit: 10 });\n */\n postComments(\n input: WeiboPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboPostCommentsData>> {\n return this._core.run(\"weibo.post_comments\", input, options);\n }\n\n /**\n * Iterate every result of Weibo Post Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterPostComments(\n input: WeiboPostCommentsInput,\n options?: RequestOptions,\n ): Paginator<WeiboPostCommentsComment, RunResult<WeiboPostCommentsData>> {\n return paginate<WeiboPostCommentsComment, RunResult<WeiboPostCommentsData>>(\n this._core,\n \"weibo.post_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * Weibo Profile\n *\n * Fetch a public Weibo profile by user ID with normalized audience and account data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.profile({ userId: \"1722594714\" });\n */\n profile(\n input: WeiboProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboProfileData>> {\n return this._core.run(\"weibo.profile\", input, options);\n }\n\n /**\n * Weibo Advanced Search\n *\n * Search public Weibo posts with optional result, media, and time filters.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.search({ query: \"python\", includeType: \"pic\", page: 1, searchType: \"hot\" });\n */\n search(\n input: WeiboSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboSearchData>> {\n return this._core.run(\"weibo.search\", input, options);\n }\n\n /**\n * Weibo User Posts\n *\n * List public posts from a Weibo user with normalized author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.userPosts({ userId: \"7277477906\", feature: 3, page: 1 });\n */\n userPosts(\n input: WeiboUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboUserPostsData>> {\n return this._core.run(\"weibo.user_posts\", input, options);\n }\n\n /**\n * Iterate every result of Weibo User Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserPosts(\n input: WeiboUserPostsInput,\n options?: RequestOptions,\n ): Paginator<WeiboUserPostsPost, RunResult<WeiboUserPostsData>> {\n return paginate<WeiboUserPostsPost, RunResult<WeiboUserPostsData>>(\n this._core,\n \"weibo.user_posts\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for WhatsApp Number Validator (whatsapp.validate).\n */\nexport interface WhatsappValidateInput {\n /**\n * The phone number to check, in international format.\n */\n phone: string;\n}\n\n/**\n * A WhatsApp validation result: the phone number with its registration status.\n */\nexport interface WhatsappValidateItem {\n /**\n * UTC epoch timestamp in seconds (Unix time) when the check ran. Multiply by 1000 for a JS Date in milliseconds.\n */\n checkedUtc?: number;\n /**\n * True when the number is registered on WhatsApp.\n */\n exists: boolean;\n /**\n * True when the number is a valid, reachable WhatsApp account.\n */\n isValid?: boolean;\n /**\n * The phone number that was checked, in international format. Populated whenever the provider has data for the entity.\n */\n phone: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of WhatsApp Number Validator (whatsapp.validate).\n */\nexport interface WhatsappValidateData {\n /**\n * Validation records for the phone number. Populated whenever the provider has data for the entity.\n */\n items: WhatsappValidateItem[];\n}\n\n/**\n * Typed methods for the whatsapp platform. Attached to the AnyAPI client as\n * `client.whatsapp`.\n */\nexport class WhatsappNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * WhatsApp Number Validator\n *\n * Check whether a phone number is registered on WhatsApp.\n *\n * Price: $0.0035 per request plus $0.001 per result (maximum $0.0045).\n *\n * @example\n * const res = await client.whatsapp.validate({ phone: \"+14155552671\" });\n */\n validate(\n input: WhatsappValidateInput,\n options?: RequestOptions,\n ): Promise<RunResult<WhatsappValidateData>> {\n return this._core.run(\"whatsapp.validate\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Yahoo Finance Quote (yahoo_finance.quote).\n */\nexport interface YahooFinanceQuoteInput {\n /**\n * The ticker symbol to look up.\n */\n ticker: string;\n}\n\nexport interface YahooFinanceQuoteItem {\n /**\n * Absolute price change from the previous close.\n */\n change?: number;\n /**\n * Percent price change from the previous close (e.g. 3.14 means +3.14%).\n */\n changePercent?: number;\n /**\n * Highest trade price during the current session.\n */\n dayHigh?: number;\n /**\n * Lowest trade price during the current session.\n */\n dayLow?: number;\n /**\n * Total market capitalization in the security's native currency.\n */\n marketCap?: number;\n /**\n * The security's display name, e.g. \"Apple Inc.\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * The previous session's closing price.\n */\n previousClose?: number;\n /**\n * The latest trade price in the security's native currency. Populated whenever the provider has data for the entity.\n */\n price: number;\n /**\n * The resolved ticker symbol for the quote, e.g. \"AAPL\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n symbol?: string;\n /**\n * Number of shares traded during the current session.\n */\n volume?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Yahoo Finance Quote (yahoo_finance.quote).\n */\nexport interface YahooFinanceQuoteData {\n /**\n * Quote records for the ticker: current price, day range, volume, and market cap. Populated whenever the provider has data for the entity.\n */\n items: YahooFinanceQuoteItem[];\n}\n\n/**\n * Typed methods for the yahoo_finance platform. Attached to the AnyAPI client as\n * `client.yahooFinance`.\n */\nexport class YahooFinanceNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Yahoo Finance Quote\n *\n * Look up a stock or ETF by ticker symbol and get its Yahoo Finance quote (price, market cap, volume, and key stats) as normalized JSON.\n *\n * Price: $0.00005 per request plus $0.0009 per result (maximum $0.00095).\n *\n * @example\n * const res = await client.yahooFinance.quote({ ticker: \"AAPL\" });\n */\n quote(\n input: YahooFinanceQuoteInput,\n options?: RequestOptions,\n ): Promise<RunResult<YahooFinanceQuoteData>> {\n return this._core.run(\"yahoo_finance.quote\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Yelp Search (yelp.search).\n */\nexport interface YelpSearchInput {\n /**\n * Maximum number of results to return (1 to 20, default 20).\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * City and state defining the search area (e.g. San Francisco, CA).\n */\n location: string;\n /**\n * Search term or category to look for (e.g. sushi).\n */\n query: string;\n}\n\nexport interface YelpSearchItem {\n /**\n * Primary street address line.\n */\n address1?: string;\n /**\n * Secondary address line.\n */\n address2?: string;\n /**\n * Tertiary address line.\n */\n address3?: string;\n /**\n * URL slug for the business. Populated whenever the provider has data for the entity.\n */\n alias: string;\n /**\n * Rounded average star rating.\n */\n avg_rating?: number;\n /**\n * Business category tags.\n */\n categories?: YelpSearchCategorie[];\n /**\n * City name.\n */\n city?: string;\n /**\n * ISO country code.\n */\n country?: string;\n /**\n * Dialable phone number.\n */\n dialable_phone?: string;\n /**\n * Stable Yelp business identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Whether the business is permanently closed.\n */\n is_closed?: boolean;\n /**\n * Latitude of the business.\n */\n latitude?: number;\n /**\n * Formatted local phone number.\n */\n localized_phone?: string;\n /**\n * Localized price tier (e.g. $$).\n */\n localized_price?: string;\n /**\n * Longitude of the business.\n */\n longitude?: number;\n /**\n * Business display name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Neighborhood labels for the location.\n */\n neighborhoods?: string[];\n /**\n * Raw phone number.\n */\n phone?: string;\n /**\n * Total photo count.\n */\n photo_count?: number;\n /**\n * Primary photo URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n photo_url?: string;\n /**\n * Numeric price tier.\n */\n price?: number;\n /**\n * Number of reviews.\n */\n review_count?: number;\n /**\n * State or region code.\n */\n state?: string;\n /**\n * Unrounded average star rating.\n */\n unrounded_avg_rating?: number;\n /**\n * Postal code.\n */\n zip?: string;\n [extra: string]: unknown;\n}\n\nexport interface YelpSearchCategorie {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Yelp Search (yelp.search).\n */\nexport interface YelpSearchData {\n /**\n * Business listing records: name, categories, rating, review count, address, and core business info. Populated whenever the provider has data for the entity.\n */\n items: YelpSearchItem[];\n}\n\n/**\n * Typed methods for the yelp platform. Attached to the AnyAPI client as\n * `client.yelp`.\n */\nexport class YelpNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Yelp Search\n *\n * Search Yelp for businesses by keyword and location: up to 20 listings with ratings, categories, and core business info per request.\n *\n * Price: $0.04 per request plus $0.00075 per result (maximum $0.055).\n *\n * @example\n * const res = await client.yelp.search({ location: \"Chicago, IL\", query: \"pizza\", limit: 5 });\n */\n search(\n input: YelpSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<YelpSearchData>> {\n return this._core.run(\"yelp.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for YouTube Channel (youtube.channel).\n */\nexport interface YoutubeChannelInput {\n /**\n * YouTube channel ID (UC...).\n */\n channelId?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n}\n\n/**\n * The `data` payload of YouTube Channel (youtube.channel).\n */\nexport interface YoutubeChannelData {\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n subscribers: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n videos: number;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for YouTube Channel Community Posts (youtube.channel_community_posts).\n */\nexport interface YoutubeChannelCommunityPostsInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n}\n\nexport interface YoutubeChannelCommunityPostsPost {\n /**\n * Populated whenever the provider has data for the entity.\n */\n content: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n image: string;\n likeCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Community Posts (youtube.channel_community_posts).\n */\nexport interface YoutubeChannelCommunityPostsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: YoutubeChannelCommunityPostsPost[];\n}\n\n/**\n * Input for YouTube Channel Live Streams (youtube.channel_lives).\n */\nexport interface YoutubeChannelLivesInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n}\n\nexport interface YoutubeChannelLivesLive {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Live Streams (youtube.channel_lives).\n */\nexport interface YoutubeChannelLivesData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n lives: YoutubeChannelLivesLive[];\n nextCursor: string;\n}\n\n/**\n * Input for YouTube Channel Playlists (youtube.channel_playlists).\n */\nexport interface YoutubeChannelPlaylistsInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n}\n\nexport interface YoutubeChannelPlaylistsPlaylist {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n playlistUrl: string;\n thumbnail: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n videoCount: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Playlists (youtube.channel_playlists).\n */\nexport interface YoutubeChannelPlaylistsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n playlists: YoutubeChannelPlaylistsPlaylist[];\n}\n\n/**\n * Input for YouTube Channel Shorts (youtube.channel_shorts).\n */\nexport interface YoutubeChannelShortsInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n /**\n * Sort order.\n * One of: newest, popular.\n */\n sort?: \"newest\" | \"popular\";\n}\n\nexport interface YoutubeChannelShortsShort {\n duration: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Shorts (youtube.channel_shorts).\n */\nexport interface YoutubeChannelShortsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shorts: YoutubeChannelShortsShort[];\n}\n\n/**\n * Input for YouTube Channel Videos (youtube.channel_videos).\n */\nexport interface YoutubeChannelVideosInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n /**\n * Sort order.\n * One of: latest, popular.\n */\n sort?: \"latest\" | \"popular\";\n}\n\nexport interface YoutubeChannelVideosVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Videos (youtube.channel_videos).\n */\nexport interface YoutubeChannelVideosData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: YoutubeChannelVideosVideo[];\n}\n\n/**\n * Input for YouTube Comment Replies (youtube.comment_replies).\n */\nexport interface YoutubeCommentRepliesInput {\n /**\n * Replies continuation token from the comments endpoint, or the continuationToken from a previous replies response for further pagination.\n */\n continuationToken: string;\n}\n\nexport interface YoutubeCommentRepliesComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n content: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Comment Replies (youtube.comment_replies).\n */\nexport interface YoutubeCommentRepliesData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n comments: YoutubeCommentRepliesComment[];\n nextCursor: string;\n}\n\n/**\n * Input for YouTube Community Post (youtube.community_post).\n */\nexport interface YoutubeCommunityPostInput {\n /**\n * URL of the YouTube community post.\n */\n url: string;\n}\n\n/**\n * The `data` payload of YouTube Community Post (youtube.community_post).\n */\nexport interface YoutubeCommunityPostData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelHandle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelTitle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n content: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for YouTube Playlist (youtube.playlist).\n */\nexport interface YoutubePlaylistInput {\n /**\n * The playlist ID: the \"list\" parameter in a playlist URL (e.g. \"PLu0W_9lII9ahIappRPN0MCAgtOu3lQjQi\").\n */\n playlistId: string;\n}\n\nexport interface YoutubePlaylistVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channel: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthSeconds: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n thumbnail: string;\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Playlist (youtube.playlist).\n */\nexport interface YoutubePlaylistData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n owner: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n totalVideos: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: YoutubePlaylistVideo[];\n}\n\n/**\n * Input for YouTube Search (youtube.search).\n */\nexport interface YoutubeSearchInput {\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * The YouTube search query.\n */\n query: string;\n /**\n * Sort order: \"relevance\" (default) or \"popular\" (most-viewed).\n * One of: relevance, popular.\n * Default: relevance.\n */\n sortBy?: \"relevance\" | \"popular\";\n /**\n * Filter by upload recency. Omit for any time.\n * One of: today, this_week, this_month, this_year.\n */\n uploadDate?: \"today\" | \"this_week\" | \"this_month\" | \"this_year\";\n}\n\nexport interface YoutubeSearchVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channel: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Search (youtube.search).\n */\nexport interface YoutubeSearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: YoutubeSearchVideo[];\n}\n\n/**\n * Input for YouTube Hashtag Search (youtube.search_hashtag).\n */\nexport interface YoutubeSearchHashtagInput {\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * Hashtag to search for (without the leading #).\n */\n hashtag: string;\n /**\n * Content filter.\n * One of: all, shorts.\n */\n type?: \"all\" | \"shorts\";\n}\n\nexport interface YoutubeSearchHashtagVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelTitle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Hashtag Search (youtube.search_hashtag).\n */\nexport interface YoutubeSearchHashtagData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: YoutubeSearchHashtagVideo[];\n}\n\n/**\n * Input for YouTube Trending Shorts (youtube.trending_shorts).\n */\nexport interface YoutubeTrendingShortsInput {}\n\nexport interface YoutubeTrendingShortsShort {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelTitle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n duration: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Trending Shorts (youtube.trending_shorts).\n */\nexport interface YoutubeTrendingShortsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n shorts: YoutubeTrendingShortsShort[];\n}\n\n/**\n * Input for YouTube Video (youtube.video).\n */\nexport interface YoutubeVideoInput {\n /**\n * YouTube video ID.\n */\n id?: string;\n /**\n * Full YouTube video URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of YouTube Video (youtube.video).\n */\nexport interface YoutubeVideoData {\n /**\n * Name of the channel that published the video. Populated whenever the provider has data for the entity.\n */\n channel: string;\n /**\n * Number of comments.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Duration of the video in milliseconds.\n */\n durationMs: number;\n /**\n * Unique identifier of the video. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes.\n */\n likes: number;\n /**\n * Title of the video. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Number of views.\n */\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for YouTube Video Comments (youtube.video_comments).\n */\nexport interface YoutubeVideoCommentsInput {\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * Comment order (e.g. top, newest).\n */\n order?: string;\n /**\n * Full YouTube video URL.\n */\n url: string;\n}\n\nexport interface YoutubeVideoCommentsComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n replies: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Video Comments (youtube.video_comments).\n */\nexport interface YoutubeVideoCommentsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n comments: YoutubeVideoCommentsComment[];\n nextCursor: string;\n}\n\n/**\n * Input for YouTube Video Sponsors (youtube.video_sponsors).\n */\nexport interface YoutubeVideoSponsorsInput {\n /**\n * 2-letter language code for transcript lookup (e.g. en, es, fr).\n */\n language?: string;\n /**\n * YouTube video or Short URL.\n */\n url: string;\n}\n\nexport interface YoutubeVideoSponsorsSuspectedSponsor {\n confidence: string;\n name: string;\n website: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Video Sponsors (youtube.video_sponsors).\n */\nexport interface YoutubeVideoSponsorsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n detectionStatus: string;\n isPaidPromotion: boolean;\n suspectedSponsors: YoutubeVideoSponsorsSuspectedSponsor[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videoId: string;\n}\n\n/**\n * Input for YouTube Video Transcript (youtube.video_transcript).\n */\nexport interface YoutubeVideoTranscriptInput {\n /**\n * YouTube video ID.\n */\n id?: string;\n /**\n * Full YouTube video URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of YouTube Video Transcript (youtube.video_transcript).\n */\nexport interface YoutubeVideoTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n transcript: string;\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the youtube platform. Attached to the AnyAPI client as\n * `client.youtube`.\n */\nexport class YoutubeNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * YouTube Channel\n *\n * Fetch a YouTube channel's stats (subscribers, video count, total views, description) by handle or channel ID, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channel({ handle: \"@mkbhd\" });\n */\n channel(\n input: YoutubeChannelInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelData>> {\n return this._core.run(\"youtube.channel\", input, options);\n }\n\n /**\n * YouTube Channel Community Posts\n *\n * List a YouTube channel's community posts by handle or channel ID with cursor pagination (text, likes, image, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelCommunityPosts({ handle: \"@MrBeast\" });\n */\n channelCommunityPosts(\n input: YoutubeChannelCommunityPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelCommunityPostsData>> {\n return this._core.run(\"youtube.channel_community_posts\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Community Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelCommunityPosts(\n input: YoutubeChannelCommunityPostsInput,\n options?: RequestOptions,\n ): Paginator<\n YoutubeChannelCommunityPostsPost,\n RunResult<YoutubeChannelCommunityPostsData>\n > {\n return paginate<\n YoutubeChannelCommunityPostsPost,\n RunResult<YoutubeChannelCommunityPostsData>\n >(\n this._core,\n \"youtube.channel_community_posts\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Channel Live Streams\n *\n * List a YouTube channel's live and past-live streams by handle or channel ID with cursor pagination (title, views, length, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelLives({ handle: \"@IShowSpeed\" });\n */\n channelLives(\n input: YoutubeChannelLivesInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelLivesData>> {\n return this._core.run(\"youtube.channel_lives\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Live Streams across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelLives(\n input: YoutubeChannelLivesInput,\n options?: RequestOptions,\n ): Paginator<YoutubeChannelLivesLive, RunResult<YoutubeChannelLivesData>> {\n return paginate<\n YoutubeChannelLivesLive,\n RunResult<YoutubeChannelLivesData>\n >(\n this._core,\n \"youtube.channel_lives\",\n input as unknown as Record<string, unknown>,\n \"lives\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Channel Playlists\n *\n * List a YouTube channel's playlists by handle or channel ID with cursor pagination (title, video count, thumbnail), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelPlaylists({ handle: \"@veritasium\" });\n */\n channelPlaylists(\n input: YoutubeChannelPlaylistsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelPlaylistsData>> {\n return this._core.run(\"youtube.channel_playlists\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Playlists across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelPlaylists(\n input: YoutubeChannelPlaylistsInput,\n options?: RequestOptions,\n ): Paginator<\n YoutubeChannelPlaylistsPlaylist,\n RunResult<YoutubeChannelPlaylistsData>\n > {\n return paginate<\n YoutubeChannelPlaylistsPlaylist,\n RunResult<YoutubeChannelPlaylistsData>\n >(\n this._core,\n \"youtube.channel_playlists\",\n input as unknown as Record<string, unknown>,\n \"playlists\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Channel Shorts\n *\n * List a YouTube channel's Shorts by handle or channel ID with cursor pagination (title, views, likes, duration), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelShorts({ handle: \"@starterstory\" });\n */\n channelShorts(\n input: YoutubeChannelShortsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelShortsData>> {\n return this._core.run(\"youtube.channel_shorts\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Shorts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelShorts(\n input: YoutubeChannelShortsInput,\n options?: RequestOptions,\n ): Paginator<YoutubeChannelShortsShort, RunResult<YoutubeChannelShortsData>> {\n return paginate<\n YoutubeChannelShortsShort,\n RunResult<YoutubeChannelShortsData>\n >(\n this._core,\n \"youtube.channel_shorts\",\n input as unknown as Record<string, unknown>,\n \"shorts\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Channel Videos\n *\n * List a YouTube channel's videos by handle or channel ID with cursor pagination (title, views, length, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelVideos({ handle: \"@mkbhd\" });\n */\n channelVideos(\n input: YoutubeChannelVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelVideosData>> {\n return this._core.run(\"youtube.channel_videos\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Videos across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelVideos(\n input: YoutubeChannelVideosInput,\n options?: RequestOptions,\n ): Paginator<YoutubeChannelVideosVideo, RunResult<YoutubeChannelVideosData>> {\n return paginate<\n YoutubeChannelVideosVideo,\n RunResult<YoutubeChannelVideosData>\n >(\n this._core,\n \"youtube.channel_videos\",\n input as unknown as Record<string, unknown>,\n \"videos\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Comment Replies\n *\n * List replies to a YouTube comment using a continuation token with cursor pagination (text, author, likes, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.commentReplies({ continuationToken: \"Eg0SC19fZm1EajBaSjFRGAYygwEaUBIaVWd3aXRjRk9fdmtpM0x4LUNfZDRBYUFCQWciAggAKhhVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEyC19fZm1EajBaSjFRQABICoIBAggBQi9jb21tZW50LXJlcGxpZXMtaXRlbS1VZ3dpdGNGT192a2kzTHgtQ19kNEFhQUJBZw==\" });\n */\n commentReplies(\n input: YoutubeCommentRepliesInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeCommentRepliesData>> {\n return this._core.run(\"youtube.comment_replies\", input, options);\n }\n\n /**\n * YouTube Community Post\n *\n * Fetch a single YouTube community post by URL (text, images, channel, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.communityPost({ url: \"https://www.youtube.com/post/Ugkx1LonSRBBUqASv-J8j9_FesxwlMAhT3_e\" });\n */\n communityPost(\n input: YoutubeCommunityPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeCommunityPostData>> {\n return this._core.run(\"youtube.community_post\", input, options);\n }\n\n /**\n * YouTube Playlist\n *\n * List every video in a YouTube playlist (title, length, and channel per video plus playlist owner and totals), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.playlist({ playlistId: \"PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj\" });\n */\n playlist(\n input: YoutubePlaylistInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubePlaylistData>> {\n return this._core.run(\"youtube.playlist\", input, options);\n }\n\n /**\n * YouTube Search\n *\n * Search YouTube and get matching videos (title, channel, views, length, publish time) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.search({ query: \"how to cook rice\" });\n */\n search(\n input: YoutubeSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeSearchData>> {\n return this._core.run(\"youtube.search\", input, options);\n }\n\n /**\n * YouTube Hashtag Search\n *\n * Search YouTube videos by hashtag with cursor pagination (title, channel, views, length, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.searchHashtag({ hashtag: \"funny\" });\n */\n searchHashtag(\n input: YoutubeSearchHashtagInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeSearchHashtagData>> {\n return this._core.run(\"youtube.search_hashtag\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Hashtag Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchHashtag(\n input: YoutubeSearchHashtagInput,\n options?: RequestOptions,\n ): Paginator<YoutubeSearchHashtagVideo, RunResult<YoutubeSearchHashtagData>> {\n return paginate<\n YoutubeSearchHashtagVideo,\n RunResult<YoutubeSearchHashtagData>\n >(\n this._core,\n \"youtube.search_hashtag\",\n input as unknown as Record<string, unknown>,\n \"videos\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Trending Shorts\n *\n * List currently trending YouTube Shorts (title, channel, views, likes, duration), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.trendingShorts({});\n */\n trendingShorts(\n input: YoutubeTrendingShortsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeTrendingShortsData>> {\n return this._core.run(\"youtube.trending_shorts\", input, options);\n }\n\n /**\n * YouTube Video\n *\n * Fetch a YouTube video's metadata (title, channel, views, likes, duration, publish date) by URL or ID, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.video({ url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" });\n */\n video(\n input: YoutubeVideoInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeVideoData>> {\n return this._core.run(\"youtube.video\", input, options);\n }\n\n /**\n * YouTube Video Comments\n *\n * List the comments on a YouTube video by URL with cursor pagination (text, author, likes, reply count), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.videoComments({ url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" });\n */\n videoComments(\n input: YoutubeVideoCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeVideoCommentsData>> {\n return this._core.run(\"youtube.video_comments\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Video Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterVideoComments(\n input: YoutubeVideoCommentsInput,\n options?: RequestOptions,\n ): Paginator<\n YoutubeVideoCommentsComment,\n RunResult<YoutubeVideoCommentsData>\n > {\n return paginate<\n YoutubeVideoCommentsComment,\n RunResult<YoutubeVideoCommentsData>\n >(\n this._core,\n \"youtube.video_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Video Sponsors\n *\n * Detect suspected sponsors and paid promotions in a YouTube video by URL (sponsor names, websites, confidence), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.videoSponsors({ url: \"https://www.youtube.com/watch?v=AVO0ifle-OU\" });\n */\n videoSponsors(\n input: YoutubeVideoSponsorsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeVideoSponsorsData>> {\n return this._core.run(\"youtube.video_sponsors\", input, options);\n }\n\n /**\n * YouTube Video Transcript\n *\n * Fetch the transcript/captions of a YouTube video by URL or ID, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.videoTranscript({ url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" });\n */\n videoTranscript(\n input: YoutubeVideoTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeVideoTranscriptData>> {\n return this._core.run(\"youtube.video_transcript\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Zhihu Answer (zhihu.answer).\n */\nexport interface ZhihuAnswerInput {\n /**\n * Zhihu answer identifier.\n */\n answerId: string;\n}\n\n/**\n * The `data` payload of Zhihu Answer (zhihu.answer).\n */\nexport interface ZhihuAnswerData {\n /**\n * Author headline.\n */\n authorHeadline?: string;\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author URL token.\n */\n authorToken?: string;\n /**\n * Author identifier.\n */\n authorUserId?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Answer excerpt. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n excerpt?: string;\n /**\n * Answer identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Parent question identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n questionId?: string;\n /**\n * Parent question title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n questionTitle?: string;\n /**\n * Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Canonical answer URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Zhihu Profile (zhihu.profile).\n */\nexport interface ZhihuProfileInput {\n /**\n * Zhihu user URL token.\n */\n userToken: string;\n}\n\n/**\n * The `data` payload of Zhihu Profile (zhihu.profile).\n */\nexport interface ZhihuProfileData {\n /**\n * Published answer count.\n */\n answers?: number;\n /**\n * Published article count.\n */\n articles?: number;\n /**\n * Follower count.\n */\n followers?: number;\n /**\n * Gender code reported by Zhihu.\n */\n gender?: number;\n /**\n * Profile headline. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n headline?: string;\n /**\n * User identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Profile image URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * IP location label reported by Zhihu.\n */\n ipLocation?: string;\n /**\n * Display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Whether this is an organization profile.\n */\n organization?: boolean;\n /**\n * Canonical profile URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * User URL token. Populated whenever the provider has data for the entity.\n */\n userToken: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Zhihu Question (zhihu.question).\n */\nexport interface ZhihuQuestionInput {\n /**\n * Zhihu question identifier.\n */\n questionId: string;\n}\n\n/**\n * The `data` payload of Zhihu Question (zhihu.question).\n */\nexport interface ZhihuQuestionData {\n /**\n * Answer count.\n */\n answers?: number;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Question body as returned by Zhihu. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * Short question excerpt.\n */\n excerpt?: string;\n /**\n * Follower count.\n */\n followers?: number;\n /**\n * Question identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Question title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Canonical question URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * View count.\n */\n views?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Zhihu Question Answers (zhihu.question_answers).\n */\nexport interface ZhihuQuestionAnswersInput {\n /**\n * Pagination cursor from an answer item in the previous response.\n * Default: .\n */\n cursor?: string;\n /**\n * Number of answers requested per page.\n * Default: 5.\n */\n limit?: number;\n /**\n * Pagination offset.\n * Default: 0.\n */\n offset?: number;\n /**\n * Answer ordering: default ranking or recently updated.\n * One of: default, updated.\n * Default: default.\n */\n order?: \"default\" | \"updated\";\n /**\n * Zhihu question identifier.\n */\n questionId: string;\n /**\n * Pagination session identifier returned in the previous response.\n * Default: .\n */\n sessionId?: string;\n}\n\nexport interface ZhihuQuestionAnswersAnswer {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author URL token.\n */\n authorToken?: string;\n /**\n * Author identifier.\n */\n authorUserId?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Cursor associated with this answer; use the final item cursor for the next page.\n */\n cursor?: string;\n /**\n * Answer excerpt. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n excerpt?: string;\n /**\n * Answer identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Save count.\n */\n saves?: number;\n /**\n * Thanks count.\n */\n thanks?: number;\n /**\n * Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Canonical answer URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * Upvote count.\n */\n votes?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Zhihu Question Answers (zhihu.question_answers).\n */\nexport interface ZhihuQuestionAnswersData {\n /**\n * Normalized answers. Populated whenever the provider has data for the entity.\n */\n answers: ZhihuQuestionAnswersAnswer[];\n /**\n * Whether the result set has reached its final page.\n */\n isEnd: boolean;\n /**\n * Session identifier to pass when requesting another page.\n */\n sessionId: string;\n}\n\n/**\n * Input for Zhihu Article Search (zhihu.search_articles).\n */\nexport interface ZhihuSearchArticlesInput {\n /**\n * Number of articles requested per page.\n * Default: 20.\n */\n limit?: string;\n /**\n * Result offset returned as nextOffset in the previous response.\n * Default: 0.\n */\n offset?: string;\n /**\n * Search keyword.\n */\n query: string;\n /**\n * Search hash identifier returned in the previous response.\n * Default: .\n */\n searchHashId?: string;\n /**\n * Whether to include all topics: 0 excludes them and 1 includes them.\n * Default: 0.\n */\n showAllTopics?: number;\n /**\n * Article ordering: comprehensive, most upvoted, or newest.\n * One of: , upvoted_count, created_time.\n * Default: .\n */\n sort?: \"\" | \"upvoted_count\" | \"created_time\";\n /**\n * Optional publication-time filter.\n * One of: , a_day, a_week, a_month, three_months, half_a_year, a_year.\n * Default: .\n */\n timeInterval?:\n | \"\"\n | \"a_day\"\n | \"a_week\"\n | \"a_month\"\n | \"three_months\"\n | \"half_a_year\"\n | \"a_year\";\n /**\n * Article-search vertical continuation state returned as nextVerticalInfo in the previous response.\n * Default: 0,0,0,0,0,0,0,0,0,2,0,0.\n */\n verticalInfo?: string;\n}\n\nexport interface ZhihuSearchArticlesArticle {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author URL token.\n */\n authorToken?: string;\n /**\n * Author identifier.\n */\n authorUserId?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Article excerpt. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n excerpt?: string;\n /**\n * Article identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Article title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Canonical article URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * Upvote count.\n */\n votes?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Zhihu Article Search (zhihu.search_articles).\n */\nexport interface ZhihuSearchArticlesData {\n /**\n * Normalized article results. Populated whenever the provider has data for the entity.\n */\n articles: ZhihuSearchArticlesArticle[];\n /**\n * Whether the result set has reached its final page.\n */\n isEnd: boolean;\n /**\n * Result offset to pass as offset when requesting the next page.\n */\n nextOffset: string;\n /**\n * Article-search vertical continuation state to pass as verticalInfo when requesting the next page.\n */\n nextVerticalInfo: string;\n /**\n * Search hash identifier to pass when requesting another page.\n */\n searchHashId: string;\n}\n\n/**\n * Typed methods for the zhihu platform. Attached to the AnyAPI client as\n * `client.zhihu`.\n */\nexport class ZhihuNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Zhihu Answer\n *\n * Fetch a public Zhihu answer with normalized author and question data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.answer({ answerId: \"2054145988235880002\" });\n */\n answer(\n input: ZhihuAnswerInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuAnswerData>> {\n return this._core.run(\"zhihu.answer\", input, options);\n }\n\n /**\n * Zhihu Profile\n *\n * Fetch a public Zhihu profile with normalized identity and audience data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.profile({ userToken: \"ming-he-43-93\" });\n */\n profile(\n input: ZhihuProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuProfileData>> {\n return this._core.run(\"zhihu.profile\", input, options);\n }\n\n /**\n * Zhihu Question\n *\n * Fetch a public Zhihu question with normalized text and engagement statistics.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.question({ questionId: \"37811449\" });\n */\n question(\n input: ZhihuQuestionInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuQuestionData>> {\n return this._core.run(\"zhihu.question\", input, options);\n }\n\n /**\n * Zhihu Question Answers\n *\n * List public answers to a Zhihu question with normalized authors and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.questionAnswers({ questionId: \"37811449\", limit: 5, offset: 0, order: \"default\" });\n */\n questionAnswers(\n input: ZhihuQuestionAnswersInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuQuestionAnswersData>> {\n return this._core.run(\"zhihu.question_answers\", input, options);\n }\n\n /**\n * Zhihu Article Search\n *\n * Search public Zhihu articles by keyword with normalized author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.searchArticles({ query: \"deepseek\", limit: \"20\", showAllTopics: 0 });\n */\n searchArticles(\n input: ZhihuSearchArticlesInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuSearchArticlesData>> {\n return this._core.run(\"zhihu.search_articles\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Zillow Property (zillow.property).\n */\nexport interface ZillowPropertyInput {\n /**\n * Zillow property details URL (e.g. https://www.zillow.com/homedetails/123-Main-St-Anytown-CA-90210/12345678_zpid/).\n */\n url: string;\n}\n\nexport interface ZillowPropertyItem {\n /**\n * Street address line of the property.\n */\n addressLine?: string;\n /**\n * Number of bathrooms.\n */\n baths?: number;\n /**\n * Number of bedrooms.\n */\n beds?: number;\n /**\n * City the property is in.\n */\n city?: string;\n /**\n * County the property is in.\n */\n county?: string;\n /**\n * Currency code for the price (e.g. USD).\n */\n currency?: string;\n /**\n * Listing description text.\n */\n description?: string;\n /**\n * Listing status (e.g. FOR_SALE, RECENTLY_SOLD, OTHER).\n */\n homeStatus?: string;\n /**\n * Home type (e.g. SINGLE_FAMILY, CONDO, TOWNHOUSE).\n */\n homeType?: string;\n /**\n * Primary listing photo URL.\n */\n image?: string;\n /**\n * Latitude of the property in decimal degrees.\n */\n latitude?: number;\n /**\n * Longitude of the property in decimal degrees.\n */\n longitude?: number;\n /**\n * Postal (ZIP) code of the property.\n */\n postalCode?: string;\n /**\n * Listed price in the listing currency.\n */\n price?: number;\n /**\n * Annual property tax rate as a percentage.\n */\n propertyTaxRate?: number;\n /**\n * Interior living area in square feet.\n */\n sqft?: number;\n /**\n * Two-letter state code the property is in.\n */\n state?: string;\n /**\n * Street address line used as the property title.\n */\n title?: string;\n /**\n * Canonical Zillow property detail page URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Zillow property id (zpid), the stable identifier for the property. Populated whenever the provider has data for the entity.\n */\n zpid: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Zillow Property (zillow.property).\n */\nexport interface ZillowPropertyData {\n /**\n * The matched property record (single element for a property lookup). Populated whenever the provider has data for the entity.\n */\n items: ZillowPropertyItem[];\n}\n\n/**\n * Input for Zillow Search (zillow.search).\n */\nexport interface ZillowSearchInput {\n /**\n * Only include listings on Zillow at most this long (e.g. 1_week).\n * One of: 1_day, 1_week, 2_weeks, 1_month, 3_months, 6_months, 12_months, 24_months, 36_months.\n */\n daysOnZillow?:\n | \"1_day\"\n | \"1_week\"\n | \"2_weeks\"\n | \"1_month\"\n | \"3_months\"\n | \"6_months\"\n | \"12_months\"\n | \"24_months\"\n | \"36_months\";\n /**\n * Filter by property type; omit for any. Rentals support only singleFamily, multiFamily, townhome, and condo (e.g. [\"singleFamily\", \"condo\"]).\n */\n homeTypes?: (\n | \"singleFamily\"\n | \"multiFamily\"\n | \"townhome\"\n | \"condo\"\n | \"apartment\"\n | \"manufactured\"\n | \"land\"\n )[];\n /**\n * Include listings accepting backup offers, which Zillow excludes by default (e.g. true).\n */\n includeAcceptingBackupOffers?: boolean;\n /**\n * Include pending and under-contract listings, which Zillow excludes by default (e.g. true).\n */\n includePendingAndUnderContract?: boolean;\n /**\n * Include room-for-rent listings in rent searches; when omitted or false only entire places are returned (e.g. true).\n */\n includeRoomForRent?: boolean;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Listing types to include for buy searches; omit for all standard types. fsba = agent listed, fsbo = for sale by owner. Ignored for rent and sold (e.g. [\"newConstruction\"]).\n */\n listingTypes?: (\n | \"fsba\"\n | \"fsbo\"\n | \"newConstruction\"\n | \"comingSoon\"\n | \"auction\"\n | \"foreclosure\"\n | \"foreclosed\"\n | \"preforeclosure\"\n )[];\n /**\n * Region-level location to search: ZIP code, city and state, county, or neighborhood (e.g. 'Austin, TX' or '78701'). Street addresses are not supported; use the property's ZIP code instead.\n */\n location: string;\n /**\n * Maximum number of bedrooms (e.g. 5).\n * Range: minimum 0.\n */\n maxBedrooms?: number;\n /**\n * Maximum living area in square feet (e.g. 3000).\n * Range: minimum 0.\n */\n maxLivingAreaSqft?: number;\n /**\n * Maximum price in USD: monthly rent for rentals, total price for buy/sold (e.g. 750000).\n * Range: minimum 0.\n */\n maxPrice?: number;\n /**\n * Minimum number of bedrooms (e.g. 3).\n * Range: minimum 0.\n */\n minBedrooms?: number;\n /**\n * Minimum living area in square feet (e.g. 1500).\n * Range: minimum 0.\n */\n minLivingAreaSqft?: number;\n /**\n * Minimum price in USD: monthly rent for rentals, total price for buy/sold (e.g. 250000).\n * Range: minimum 0.\n */\n minPrice?: number;\n /**\n * Listing type: buy (for sale), rent, or sold.\n * One of: buy, rent, sold.\n * Default: buy.\n */\n operation?: \"buy\" | \"rent\" | \"sold\";\n /**\n * Only show listings with a price reduction. Buy searches only; ignored for rentals (e.g. true).\n */\n showOnlyPriceReductions?: boolean;\n /**\n * Sort order for results; omit for Zillow's default relevance. rentalPriorityScore applies to rent searches only (e.g. newest).\n * One of: newest, recentlyChanged, price_high, price_low, bedrooms, bathrooms, rentalPriorityScore.\n */\n sortBy?:\n | \"newest\"\n | \"recentlyChanged\"\n | \"price_high\"\n | \"price_low\"\n | \"bedrooms\"\n | \"bathrooms\"\n | \"rentalPriorityScore\";\n}\n\nexport interface ZillowSearchItem {\n /**\n * Number of bathrooms.\n */\n baths?: number;\n /**\n * Number of bedrooms.\n */\n beds?: number;\n city?: string;\n /**\n * ISO currency code of the price (e.g. usd).\n */\n currency?: string;\n /**\n * Days the listing has been on Zillow.\n */\n daysOnZillow?: number;\n /**\n * URL of the primary listing photo. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n latitude?: number;\n /**\n * Interior living area in square feet.\n */\n livingArea?: number;\n longitude?: number;\n /**\n * Lot size in square feet.\n */\n lotSize?: number;\n /**\n * List price in the listing currency.\n */\n price?: number;\n /**\n * Property type (e.g. singleFamily, condo, townhouse).\n */\n propertyType?: string;\n /**\n * Zillow estimated monthly rent.\n */\n rentZestimate?: number;\n /**\n * Two-letter state code.\n */\n state?: string;\n /**\n * Listing status (e.g. forSale, forRent, sold).\n */\n status?: string;\n /**\n * Street address of the property. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n streetAddress?: string;\n /**\n * Absolute Zillow listing URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n yearBuilt?: number;\n /**\n * Zillow estimated market value.\n */\n zestimate?: number;\n zipcode?: string;\n /**\n * Zillow property id (zpid). Populated whenever the provider has data for the entity.\n */\n zpid: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Zillow Search (zillow.search).\n */\nexport interface ZillowSearchData {\n /**\n * Property listing records matching the search: address, price, beds, baths, living area, property type, status, Zestimate, and coordinates. Populated whenever the provider has data for the entity.\n */\n items: ZillowSearchItem[];\n}\n\n/**\n * Typed methods for the zillow platform. Attached to the AnyAPI client as\n * `client.zillow`.\n */\nexport class ZillowNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Zillow Property\n *\n * Fetch full details for a single Zillow property listing by URL (price, facts and features, photos, and price/tax history).\n *\n * Price: $0 per request plus $0.0024 per result (maximum $0.0024).\n *\n * @example\n * const res = await client.zillow.property({ url: \"https://www.zillow.com/homedetails/4510-Secure-Ln-Austin-TX-78725/83126034_zpid/\" });\n */\n property(\n input: ZillowPropertyInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZillowPropertyData>> {\n return this._core.run(\"zillow.property\", input, options);\n }\n\n /**\n * Zillow Search\n *\n * Search Zillow for-sale, rental, or sold listings by region-level location (city, ZIP, county, or neighborhood) with optional price, bedroom, living-area, home-type, recency, and sort filters and get matching properties (price, address, beds, baths, living area, status, Zestimate) as normalized JSON.\n *\n * Price: $0.0005 per request plus $0.003 per result (maximum $0.0755).\n *\n * @example\n * const res = await client.zillow.search({ location: \"Austin, TX\", limit: 3, maxPrice: 900000, minBedrooms: 3, operation: \"buy\" });\n */\n search(\n input: ZillowSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZillowSearchData>> {\n return this._core.run(\"zillow.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport { AnyAPI as AnyAPIBase } from \"../core/index.js\";\n\nimport type { RequestOptions, RunResult } from \"../core/index.js\";\n\nimport type { SkuMap } from \"./sku-map.js\";\n\nimport { AhrefsNamespace } from \"./platforms/ahrefs.js\";\nimport { AirbnbNamespace } from \"./platforms/airbnb.js\";\nimport { AlibabaNamespace } from \"./platforms/alibaba.js\";\nimport { AmazonNamespace } from \"./platforms/amazon.js\";\nimport { ApolloNamespace } from \"./platforms/apollo.js\";\nimport { AppstoreNamespace } from \"./platforms/appstore.js\";\nimport { BlueskyNamespace } from \"./platforms/bluesky.js\";\nimport { BookingNamespace } from \"./platforms/booking.js\";\nimport { CoinmarketcapNamespace } from \"./platforms/coinmarketcap.js\";\nimport { CongressNamespace } from \"./platforms/congress.js\";\nimport { DexscreenerNamespace } from \"./platforms/dexscreener.js\";\nimport { DouyinNamespace } from \"./platforms/douyin.js\";\nimport { EbayNamespace } from \"./platforms/ebay.js\";\nimport { EmailNamespace } from \"./platforms/email.js\";\nimport { FacebookNamespace } from \"./platforms/facebook.js\";\nimport { FiverrNamespace } from \"./platforms/fiverr.js\";\nimport { GithubNamespace } from \"./platforms/github.js\";\nimport { GlassdoorNamespace } from \"./platforms/glassdoor.js\";\nimport { GoogleNamespace } from \"./platforms/google.js\";\nimport { GoogleAdsNamespace } from \"./platforms/google_ads.js\";\nimport { GoogleFinanceNamespace } from \"./platforms/google_finance.js\";\nimport { GoogleShoppingNamespace } from \"./platforms/google_shopping.js\";\nimport { HackernewsNamespace } from \"./platforms/hackernews.js\";\nimport { IndeedNamespace } from \"./platforms/indeed.js\";\nimport { InstagramNamespace } from \"./platforms/instagram.js\";\nimport { LinkedinNamespace } from \"./platforms/linkedin.js\";\nimport { MapsNamespace } from \"./platforms/maps.js\";\nimport { PandaexpressNamespace } from \"./platforms/pandaexpress.js\";\nimport { PersonNamespace } from \"./platforms/person.js\";\nimport { PinterestNamespace } from \"./platforms/pinterest.js\";\nimport { PlaystoreNamespace } from \"./platforms/playstore.js\";\nimport { PolymarketNamespace } from \"./platforms/polymarket.js\";\nimport { RealtorNamespace } from \"./platforms/realtor.js\";\nimport { RedditNamespace } from \"./platforms/reddit.js\";\nimport { RedfinNamespace } from \"./platforms/redfin.js\";\nimport { RednoteNamespace } from \"./platforms/rednote.js\";\nimport { SecNamespace } from \"./platforms/sec.js\";\nimport { SemrushNamespace } from \"./platforms/semrush.js\";\nimport { SeoNamespace } from \"./platforms/seo.js\";\nimport { SnapchatNamespace } from \"./platforms/snapchat.js\";\nimport { SocialNamespace } from \"./platforms/social.js\";\nimport { SpotifyNamespace } from \"./platforms/spotify.js\";\nimport { SubstackNamespace } from \"./platforms/substack.js\";\nimport { ThreadsNamespace } from \"./platforms/threads.js\";\nimport { TiktokNamespace } from \"./platforms/tiktok.js\";\nimport { TiktokShopNamespace } from \"./platforms/tiktok_shop.js\";\nimport { TripadvisorNamespace } from \"./platforms/tripadvisor.js\";\nimport { TrustpilotNamespace } from \"./platforms/trustpilot.js\";\nimport { TruthsocialNamespace } from \"./platforms/truthsocial.js\";\nimport { TwitterNamespace } from \"./platforms/twitter.js\";\nimport { UpworkNamespace } from \"./platforms/upwork.js\";\nimport { WalmartNamespace } from \"./platforms/walmart.js\";\nimport { WebNamespace } from \"./platforms/web.js\";\nimport { WeiboNamespace } from \"./platforms/weibo.js\";\nimport { WhatsappNamespace } from \"./platforms/whatsapp.js\";\nimport { YahooFinanceNamespace } from \"./platforms/yahoo_finance.js\";\nimport { YelpNamespace } from \"./platforms/yelp.js\";\nimport { YoutubeNamespace } from \"./platforms/youtube.js\";\nimport { ZhihuNamespace } from \"./platforms/zhihu.js\";\nimport { ZillowNamespace } from \"./platforms/zillow.js\";\n\n/**\n * The AnyAPI client. Extends the handwritten core base (run/balance/me/catalog/\n * describe) and attaches every platform namespace as a lazily instantiated getter.\n *\n * import { AnyAPI } from \"@getanyapi/sdk\";\n */\nexport class AnyAPI extends AnyAPIBase {\n private readonly _namespaces: Record<string, unknown> = {};\n\n /**\n * Generic typed run for any SKU by slug. A known slug literal infers its input and\n * result type from the SkuMap; any other string returns RunResult<unknown>.\n */\n run<K extends keyof SkuMap>(\n slug: K,\n input: SkuMap[K][\"input\"],\n options?: RequestOptions,\n ): Promise<SkuMap[K][\"result\"]>;\n run<S extends string, T = unknown>(\n slug: S extends keyof SkuMap ? never : S,\n input: unknown,\n options?: RequestOptions,\n ): Promise<RunResult<T>>;\n run(\n slug: string,\n input: unknown,\n options?: RequestOptions,\n ): Promise<RunResult<unknown>> {\n return super.run(slug, input, options);\n }\n\n /**\n * Typed methods for the ahrefs platform.\n */\n get ahrefs(): AhrefsNamespace {\n return (this._namespaces[\"ahrefs\"] ??= new AhrefsNamespace(\n this._core,\n )) as AhrefsNamespace;\n }\n\n /**\n * Typed methods for the airbnb platform.\n */\n get airbnb(): AirbnbNamespace {\n return (this._namespaces[\"airbnb\"] ??= new AirbnbNamespace(\n this._core,\n )) as AirbnbNamespace;\n }\n\n /**\n * Typed methods for the alibaba platform.\n */\n get alibaba(): AlibabaNamespace {\n return (this._namespaces[\"alibaba\"] ??= new AlibabaNamespace(\n this._core,\n )) as AlibabaNamespace;\n }\n\n /**\n * Typed methods for the amazon platform.\n */\n get amazon(): AmazonNamespace {\n return (this._namespaces[\"amazon\"] ??= new AmazonNamespace(\n this._core,\n )) as AmazonNamespace;\n }\n\n /**\n * Typed methods for the apollo platform.\n */\n get apollo(): ApolloNamespace {\n return (this._namespaces[\"apollo\"] ??= new ApolloNamespace(\n this._core,\n )) as ApolloNamespace;\n }\n\n /**\n * Typed methods for the appstore platform.\n */\n get appstore(): AppstoreNamespace {\n return (this._namespaces[\"appstore\"] ??= new AppstoreNamespace(\n this._core,\n )) as AppstoreNamespace;\n }\n\n /**\n * Typed methods for the bluesky platform.\n */\n get bluesky(): BlueskyNamespace {\n return (this._namespaces[\"bluesky\"] ??= new BlueskyNamespace(\n this._core,\n )) as BlueskyNamespace;\n }\n\n /**\n * Typed methods for the booking platform.\n */\n get booking(): BookingNamespace {\n return (this._namespaces[\"booking\"] ??= new BookingNamespace(\n this._core,\n )) as BookingNamespace;\n }\n\n /**\n * Typed methods for the coinmarketcap platform.\n */\n get coinmarketcap(): CoinmarketcapNamespace {\n return (this._namespaces[\"coinmarketcap\"] ??= new CoinmarketcapNamespace(\n this._core,\n )) as CoinmarketcapNamespace;\n }\n\n /**\n * Typed methods for the congress platform.\n */\n get congress(): CongressNamespace {\n return (this._namespaces[\"congress\"] ??= new CongressNamespace(\n this._core,\n )) as CongressNamespace;\n }\n\n /**\n * Typed methods for the dexscreener platform.\n */\n get dexscreener(): DexscreenerNamespace {\n return (this._namespaces[\"dexscreener\"] ??= new DexscreenerNamespace(\n this._core,\n )) as DexscreenerNamespace;\n }\n\n /**\n * Typed methods for the douyin platform.\n */\n get douyin(): DouyinNamespace {\n return (this._namespaces[\"douyin\"] ??= new DouyinNamespace(\n this._core,\n )) as DouyinNamespace;\n }\n\n /**\n * Typed methods for the ebay platform.\n */\n get ebay(): EbayNamespace {\n return (this._namespaces[\"ebay\"] ??= new EbayNamespace(\n this._core,\n )) as EbayNamespace;\n }\n\n /**\n * Typed methods for the email platform.\n */\n get email(): EmailNamespace {\n return (this._namespaces[\"email\"] ??= new EmailNamespace(\n this._core,\n )) as EmailNamespace;\n }\n\n /**\n * Typed methods for the facebook platform.\n */\n get facebook(): FacebookNamespace {\n return (this._namespaces[\"facebook\"] ??= new FacebookNamespace(\n this._core,\n )) as FacebookNamespace;\n }\n\n /**\n * Typed methods for the fiverr platform.\n */\n get fiverr(): FiverrNamespace {\n return (this._namespaces[\"fiverr\"] ??= new FiverrNamespace(\n this._core,\n )) as FiverrNamespace;\n }\n\n /**\n * Typed methods for the github platform.\n */\n get github(): GithubNamespace {\n return (this._namespaces[\"github\"] ??= new GithubNamespace(\n this._core,\n )) as GithubNamespace;\n }\n\n /**\n * Typed methods for the glassdoor platform.\n */\n get glassdoor(): GlassdoorNamespace {\n return (this._namespaces[\"glassdoor\"] ??= new GlassdoorNamespace(\n this._core,\n )) as GlassdoorNamespace;\n }\n\n /**\n * Typed methods for the google platform.\n */\n get google(): GoogleNamespace {\n return (this._namespaces[\"google\"] ??= new GoogleNamespace(\n this._core,\n )) as GoogleNamespace;\n }\n\n /**\n * Typed methods for the google_ads platform.\n */\n get googleAds(): GoogleAdsNamespace {\n return (this._namespaces[\"googleAds\"] ??= new GoogleAdsNamespace(\n this._core,\n )) as GoogleAdsNamespace;\n }\n\n /**\n * Typed methods for the google_finance platform.\n */\n get googleFinance(): GoogleFinanceNamespace {\n return (this._namespaces[\"googleFinance\"] ??= new GoogleFinanceNamespace(\n this._core,\n )) as GoogleFinanceNamespace;\n }\n\n /**\n * Typed methods for the google_shopping platform.\n */\n get googleShopping(): GoogleShoppingNamespace {\n return (this._namespaces[\"googleShopping\"] ??= new GoogleShoppingNamespace(\n this._core,\n )) as GoogleShoppingNamespace;\n }\n\n /**\n * Typed methods for the hackernews platform.\n */\n get hackernews(): HackernewsNamespace {\n return (this._namespaces[\"hackernews\"] ??= new HackernewsNamespace(\n this._core,\n )) as HackernewsNamespace;\n }\n\n /**\n * Typed methods for the indeed platform.\n */\n get indeed(): IndeedNamespace {\n return (this._namespaces[\"indeed\"] ??= new IndeedNamespace(\n this._core,\n )) as IndeedNamespace;\n }\n\n /**\n * Typed methods for the instagram platform.\n */\n get instagram(): InstagramNamespace {\n return (this._namespaces[\"instagram\"] ??= new InstagramNamespace(\n this._core,\n )) as InstagramNamespace;\n }\n\n /**\n * Typed methods for the linkedin platform.\n */\n get linkedin(): LinkedinNamespace {\n return (this._namespaces[\"linkedin\"] ??= new LinkedinNamespace(\n this._core,\n )) as LinkedinNamespace;\n }\n\n /**\n * Typed methods for the maps platform.\n */\n get maps(): MapsNamespace {\n return (this._namespaces[\"maps\"] ??= new MapsNamespace(\n this._core,\n )) as MapsNamespace;\n }\n\n /**\n * Typed methods for the pandaexpress platform.\n */\n get pandaexpress(): PandaexpressNamespace {\n return (this._namespaces[\"pandaexpress\"] ??= new PandaexpressNamespace(\n this._core,\n )) as PandaexpressNamespace;\n }\n\n /**\n * Typed methods for the person platform.\n */\n get person(): PersonNamespace {\n return (this._namespaces[\"person\"] ??= new PersonNamespace(\n this._core,\n )) as PersonNamespace;\n }\n\n /**\n * Typed methods for the pinterest platform.\n */\n get pinterest(): PinterestNamespace {\n return (this._namespaces[\"pinterest\"] ??= new PinterestNamespace(\n this._core,\n )) as PinterestNamespace;\n }\n\n /**\n * Typed methods for the playstore platform.\n */\n get playstore(): PlaystoreNamespace {\n return (this._namespaces[\"playstore\"] ??= new PlaystoreNamespace(\n this._core,\n )) as PlaystoreNamespace;\n }\n\n /**\n * Typed methods for the polymarket platform.\n */\n get polymarket(): PolymarketNamespace {\n return (this._namespaces[\"polymarket\"] ??= new PolymarketNamespace(\n this._core,\n )) as PolymarketNamespace;\n }\n\n /**\n * Typed methods for the realtor platform.\n */\n get realtor(): RealtorNamespace {\n return (this._namespaces[\"realtor\"] ??= new RealtorNamespace(\n this._core,\n )) as RealtorNamespace;\n }\n\n /**\n * Typed methods for the reddit platform.\n */\n get reddit(): RedditNamespace {\n return (this._namespaces[\"reddit\"] ??= new RedditNamespace(\n this._core,\n )) as RedditNamespace;\n }\n\n /**\n * Typed methods for the redfin platform.\n */\n get redfin(): RedfinNamespace {\n return (this._namespaces[\"redfin\"] ??= new RedfinNamespace(\n this._core,\n )) as RedfinNamespace;\n }\n\n /**\n * Typed methods for the rednote platform.\n */\n get rednote(): RednoteNamespace {\n return (this._namespaces[\"rednote\"] ??= new RednoteNamespace(\n this._core,\n )) as RednoteNamespace;\n }\n\n /**\n * Typed methods for the sec platform.\n */\n get sec(): SecNamespace {\n return (this._namespaces[\"sec\"] ??= new SecNamespace(\n this._core,\n )) as SecNamespace;\n }\n\n /**\n * Typed methods for the semrush platform.\n */\n get semrush(): SemrushNamespace {\n return (this._namespaces[\"semrush\"] ??= new SemrushNamespace(\n this._core,\n )) as SemrushNamespace;\n }\n\n /**\n * Typed methods for the seo platform.\n */\n get seo(): SeoNamespace {\n return (this._namespaces[\"seo\"] ??= new SeoNamespace(\n this._core,\n )) as SeoNamespace;\n }\n\n /**\n * Typed methods for the snapchat platform.\n */\n get snapchat(): SnapchatNamespace {\n return (this._namespaces[\"snapchat\"] ??= new SnapchatNamespace(\n this._core,\n )) as SnapchatNamespace;\n }\n\n /**\n * Typed methods for the social platform.\n */\n get social(): SocialNamespace {\n return (this._namespaces[\"social\"] ??= new SocialNamespace(\n this._core,\n )) as SocialNamespace;\n }\n\n /**\n * Typed methods for the spotify platform.\n */\n get spotify(): SpotifyNamespace {\n return (this._namespaces[\"spotify\"] ??= new SpotifyNamespace(\n this._core,\n )) as SpotifyNamespace;\n }\n\n /**\n * Typed methods for the substack platform.\n */\n get substack(): SubstackNamespace {\n return (this._namespaces[\"substack\"] ??= new SubstackNamespace(\n this._core,\n )) as SubstackNamespace;\n }\n\n /**\n * Typed methods for the threads platform.\n */\n get threads(): ThreadsNamespace {\n return (this._namespaces[\"threads\"] ??= new ThreadsNamespace(\n this._core,\n )) as ThreadsNamespace;\n }\n\n /**\n * Typed methods for the tiktok platform.\n */\n get tiktok(): TiktokNamespace {\n return (this._namespaces[\"tiktok\"] ??= new TiktokNamespace(\n this._core,\n )) as TiktokNamespace;\n }\n\n /**\n * Typed methods for the tiktok_shop platform.\n */\n get tiktokShop(): TiktokShopNamespace {\n return (this._namespaces[\"tiktokShop\"] ??= new TiktokShopNamespace(\n this._core,\n )) as TiktokShopNamespace;\n }\n\n /**\n * Typed methods for the tripadvisor platform.\n */\n get tripadvisor(): TripadvisorNamespace {\n return (this._namespaces[\"tripadvisor\"] ??= new TripadvisorNamespace(\n this._core,\n )) as TripadvisorNamespace;\n }\n\n /**\n * Typed methods for the trustpilot platform.\n */\n get trustpilot(): TrustpilotNamespace {\n return (this._namespaces[\"trustpilot\"] ??= new TrustpilotNamespace(\n this._core,\n )) as TrustpilotNamespace;\n }\n\n /**\n * Typed methods for the truthsocial platform.\n */\n get truthsocial(): TruthsocialNamespace {\n return (this._namespaces[\"truthsocial\"] ??= new TruthsocialNamespace(\n this._core,\n )) as TruthsocialNamespace;\n }\n\n /**\n * Typed methods for the twitter platform.\n */\n get twitter(): TwitterNamespace {\n return (this._namespaces[\"twitter\"] ??= new TwitterNamespace(\n this._core,\n )) as TwitterNamespace;\n }\n\n /**\n * Typed methods for the upwork platform.\n */\n get upwork(): UpworkNamespace {\n return (this._namespaces[\"upwork\"] ??= new UpworkNamespace(\n this._core,\n )) as UpworkNamespace;\n }\n\n /**\n * Typed methods for the walmart platform.\n */\n get walmart(): WalmartNamespace {\n return (this._namespaces[\"walmart\"] ??= new WalmartNamespace(\n this._core,\n )) as WalmartNamespace;\n }\n\n /**\n * Typed methods for the web platform.\n */\n get web(): WebNamespace {\n return (this._namespaces[\"web\"] ??= new WebNamespace(\n this._core,\n )) as WebNamespace;\n }\n\n /**\n * Typed methods for the weibo platform.\n */\n get weibo(): WeiboNamespace {\n return (this._namespaces[\"weibo\"] ??= new WeiboNamespace(\n this._core,\n )) as WeiboNamespace;\n }\n\n /**\n * Typed methods for the whatsapp platform.\n */\n get whatsapp(): WhatsappNamespace {\n return (this._namespaces[\"whatsapp\"] ??= new WhatsappNamespace(\n this._core,\n )) as WhatsappNamespace;\n }\n\n /**\n * Typed methods for the yahoo_finance platform.\n */\n get yahooFinance(): YahooFinanceNamespace {\n return (this._namespaces[\"yahooFinance\"] ??= new YahooFinanceNamespace(\n this._core,\n )) as YahooFinanceNamespace;\n }\n\n /**\n * Typed methods for the yelp platform.\n */\n get yelp(): YelpNamespace {\n return (this._namespaces[\"yelp\"] ??= new YelpNamespace(\n this._core,\n )) as YelpNamespace;\n }\n\n /**\n * Typed methods for the youtube platform.\n */\n get youtube(): YoutubeNamespace {\n return (this._namespaces[\"youtube\"] ??= new YoutubeNamespace(\n this._core,\n )) as YoutubeNamespace;\n }\n\n /**\n * Typed methods for the zhihu platform.\n */\n get zhihu(): ZhihuNamespace {\n return (this._namespaces[\"zhihu\"] ??= new ZhihuNamespace(\n this._core,\n )) as ZhihuNamespace;\n }\n\n /**\n * Typed methods for the zillow platform.\n */\n get zillow(): ZillowNamespace {\n return (this._namespaces[\"zillow\"] ??= new ZillowNamespace(\n this._core,\n )) as ZillowNamespace;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMO,IAAM,cAAN,cAA0B,MAAM;AAAA;AAAA,EAE5B;AAAA;AAAA,EAEA;AAAA,EAET,YAAY,SAAiB,QAAgB,WAAoB;AAC/D,UAAM,OAAO;AACb,SAAK,OAAO,WAAW;AACvB,SAAK,SAAS;AACd,QAAI,cAAc,QAAW;AAC3B,WAAK,YAAY;AAAA,IACnB;AAEA,WAAO,eAAe,MAAM,WAAW,SAAS;AAAA,EAClD;AACF;AAGO,IAAM,kBAAN,cAA8B,YAAY;AAAC;AAE3C,IAAM,sBAAN,cAAkC,YAAY;AAAC;AAE/C,IAAM,2BAAN,cAAuC,YAAY;AAAC;AAEpD,IAAM,gBAAN,cAA4B,YAAY;AAAC;AAOzC,IAAM,sBAAN,cAAkC,cAAc;AAAC;AAEjD,IAAM,mBAAN,cAA+B,YAAY;AAAC;AAE5C,IAAM,gBAAN,cAA4B,YAAY;AAAC;AAEzC,IAAM,kBAAN,cAA8B,YAAY;AAAC;AAE3C,IAAM,eAAN,cAA2B,YAAY;AAAC;AAOxC,SAAS,gBACd,QACA,SACA,WACa;AACb,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,aAAO,IAAI,gBAAgB,SAAS,QAAQ,SAAS;AAAA,IACvD,KAAK;AACH,aAAO,IAAI,oBAAoB,SAAS,QAAQ,SAAS;AAAA,IAC3D,KAAK;AACH,aAAO,IAAI,yBAAyB,SAAS,QAAQ,SAAS;AAAA,IAChE,KAAK;AACH,aAAO,IAAI,cAAc,SAAS,QAAQ,SAAS;AAAA,IACrD,KAAK;AACH,aAAO,IAAI,iBAAiB,SAAS,QAAQ,SAAS;AAAA,IACxD,KAAK;AACH,aAAO,IAAI,cAAc,SAAS,QAAQ,SAAS;AAAA,IACrD;AACE,aAAO,IAAI,YAAY,SAAS,QAAQ,SAAS;AAAA,EACrD;AACF;;;ACxDA,IAAM,mBAAmB;AAwBzB,SAAS,UAAU,MAAqB;AACtC,QAAM,IAAI,YAAY,iCAAiC,IAAI,IAAI,CAAC;AAClE;AAEA,SAAS,mBAAmB,OAAgB,MAAoB;AAC9D,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,UAAM;AAAA,MAAQ,CAAC,MAAM,UACnB,mBAAmB,MAAM,GAAG,IAAI,IAAI,KAAK,GAAG;AAAA,IAC9C;AACA;AAAA,EACF;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM;AACjD,aAAW,CAAC,KAAK,IAAI,KAAK,OAAO,QAAQ,KAAgC,GAAG;AAC1E,QAAI,IAAI,YAAY,EAAE,SAAS,QAAQ,EAAG,WAAU,GAAG,IAAI,IAAI,GAAG,EAAE;AACpE,uBAAmB,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE;AAAA,EAC3C;AACF;AAEA,SAAS,OAAO,OAAgB,MAAuC;AACrE,MAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK,GAAG;AACvE,WAAO,UAAU,IAAI;AAAA,EACvB;AACA,SAAO;AACT;AAEA,SAAS,UACP,KACA,SACA,MACM;AACN,QAAM,OAAO,IAAI,IAAI,OAAO;AAC5B,aAAW,OAAO,OAAO,KAAK,GAAG,GAAG;AAClC,QAAI,CAAC,KAAK,IAAI,GAAG,EAAG,WAAU,GAAG,IAAI,IAAI,GAAG,EAAE;AAAA,EAChD;AACF;AAEA,SAAS,YACP,KACA,KACA,MACQ;AACR,QAAM,QAAQ,IAAI,GAAG;AACrB,MAAI,OAAO,UAAU,SAAU,QAAO,UAAU,GAAG,IAAI,IAAI,GAAG,EAAE;AAChE,SAAO;AACT;AAEA,SAAS,YACP,KACA,KACA,MACQ;AACR,QAAM,QAAQ,IAAI,GAAG;AACrB,MAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,KAAK,QAAQ,GAAG;AACrE,WAAO,UAAU,GAAG,IAAI,IAAI,GAAG,EAAE;AAAA,EACnC;AACA,SAAO;AACT;AAEA,SAAS,aACP,KACA,KACA,MACQ;AACR,QAAM,QAAQ,YAAY,KAAK,KAAK,IAAI;AACxC,MAAI,CAAC,OAAO,UAAU,KAAK,EAAG,QAAO,UAAU,GAAG,IAAI,IAAI,GAAG,EAAE;AAC/D,SAAO;AACT;AAEA,SAAS,mBACP,KACA,KACA,MACA,kBACA,kBACQ;AACR,QAAM,QAAQ,YAAY,KAAK,KAAK,IAAI;AACxC,MACG,qBAAqB,UAAa,SAAS,oBAC5C,QAAQ,kBACR;AACA,WAAO,UAAU,GAAG,IAAI,IAAI,GAAG,EAAE;AAAA,EACnC;AACA,SAAO;AACT;AAEA,SAAS,WAAW,OAAgB,MAA4B;AAC9D,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,QAAQ,YAAY,KAAK,SAAS,IAAI;AAC5C,QAAM,OAAO,YAAY,KAAK,QAAQ,IAAI;AAC1C,QAAM,SAAS,YAAY,KAAK,UAAU,IAAI;AAC9C,MAAI,UAAU,QAAQ;AACpB,cAAU,KAAK,CAAC,SAAS,QAAQ,QAAQ,GAAG,IAAI;AAChD,QAAI,SAAS,aAAa,aAAa,OAAO,gBAAgB,KAAK;AACjE,aAAO,UAAU,IAAI;AAAA,IACvB;AACA,WAAO,EAAE,OAAO,MAAM,OAAO;AAAA,EAC/B;AACA,MAAI,UAAU,UAAU;AACtB,cAAU,KAAK,CAAC,SAAS,QAAQ,WAAW,cAAc,QAAQ,GAAG,IAAI;AACzE,QAAI,KAAK,WAAW,EAAG,QAAO,UAAU,GAAG,IAAI,OAAO;AACtD,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,YAAY,KAAK,WAAW,IAAI;AAAA,MACzC,YAAY,YAAY,KAAK,cAAc,IAAI;AAAA,MAC/C;AAAA,IACF;AAAA,EACF;AACA,SAAO,UAAU,GAAG,IAAI,QAAQ;AAClC;AAEA,SAAS,aAAa,OAAgB,MAAgC;AACpE,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,YAAU,KAAK,CAAC,QAAQ,gBAAgB,GAAG,IAAI;AAC/C,SAAO;AAAA,IACL,MAAM,WAAW,IAAI,MAAM,GAAG,GAAG,IAAI,OAAO;AAAA,IAC5C,gBAAgB,YAAY,KAAK,kBAAkB,IAAI;AAAA,EACzD;AACF;AAEA,SAAS,YAAY,OAAgB,MAA0B;AAC7D,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,YAAU,KAAK,CAAC,UAAU,aAAa,gBAAgB,UAAU,GAAG,IAAI;AACxE,MAAI,IAAI,QAAQ,MAAM,MAAO,QAAO,UAAU,GAAG,IAAI,SAAS;AAC9D,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,WAAW,mBAAmB,KAAK,aAAa,MAAM,QAAW,GAAG;AAAA,IACpE,cAAc,aAAa,KAAK,gBAAgB,IAAI;AAAA,IACpD,UAAU,aAAa,KAAK,YAAY,IAAI;AAAA,EAC9C;AACF;AAEA,SAAS,UAAU,OAAgB,MAA6B;AAC9D,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,YAAU,KAAK,CAAC,WAAW,QAAQ,GAAG,IAAI;AAC1C,QAAM,OAAsB;AAAA,IAC1B,SAAS,WAAW,IAAI,SAAS,GAAG,GAAG,IAAI,UAAU;AAAA,EACvD;AACA,MAAI,IAAI,QAAQ,MAAM,QAAW;AAC/B,SAAK,SAAS,YAAY,IAAI,QAAQ,GAAG,GAAG,IAAI,SAAS;AAAA,EAC3D;AACA,SAAO;AACT;AAEA,SAAS,cAAc,KAA8B,MAAwB;AAC3E,MAAI,IAAI,UAAU,MAAM,SAAU,QAAO,UAAU,GAAG,IAAI,WAAW;AACrE,SAAO;AACT;AAEA,SAAS,YAAY,OAAgB,MAAuC;AAC1E,SAAO,OAAO,OAAO,IAAI;AAC3B;AAEA,SAAS,eAAe,OAAgB,MAA8B;AACpE,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,YAAU,KAAK,CAAC,QAAQ,QAAQ,KAAK,GAAG,IAAI;AAC5C,QAAM,QAAwB;AAAA,IAC5B,MAAM,YAAY,KAAK,QAAQ,IAAI;AAAA,IACnC,MAAM,YAAY,KAAK,QAAQ,IAAI;AAAA,EACrC;AACA,MAAI,IAAI,KAAK,MAAM,OAAW,OAAM,MAAM,YAAY,KAAK,OAAO,IAAI;AACtE,SAAO;AACT;AAGO,SAAS,WAAW,KAAsC;AAC/D,QAAM,UAA0B;AAAA,IAC9B,IAAI,IAAI;AAAA,IACR,QAAQ,IAAI;AAAA,IACZ,WAAW,IAAI;AAAA,IACf,oBAAoB,IAAI;AAAA,EAC1B;AACA,MAAI,IAAI,UAAU,UAAa,IAAI,UAAU,MAAM;AACjD,YAAQ,QAAQ,IAAI;AAAA,EACtB;AACA,SAAO;AACT;AAGO,SAAS,gBAAgB,KAAyC;AACvE,qBAAmB,KAAK,KAAK;AAC7B,QAAM,QAAQ,OAAO,KAAK,KAAK;AAC/B;AAAA,IACE;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACA,QAAM,WAAW,MAAM,OAAO;AAC9B,MAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,SAAS,WAAW,GAAG;AACrD,WAAO,UAAU,WAAW;AAAA,EAC9B;AACA,QAAM,QAAsB;AAAA,IAC1B,IAAI,YAAY,OAAO,MAAM,KAAK;AAAA,IAClC,MAAM,YAAY,OAAO,QAAQ,KAAK;AAAA,IACtC,UAAU,YAAY,OAAO,YAAY,KAAK;AAAA,IAC9C,MAAM,YAAY,OAAO,QAAQ,KAAK;AAAA,IACtC,aAAa,YAAY,OAAO,eAAe,KAAK;AAAA,IACpD,UAAU,cAAc,OAAO,KAAK;AAAA,IACpC,SAAS,aAAa,MAAM,SAAS,GAAG,aAAa;AAAA,IACrD,OAAO,SAAS;AAAA,MAAI,CAAC,MAAM,UACzB,UAAU,MAAM,aAAa,KAAK,GAAG;AAAA,IACvC;AAAA,IACA,OAAO,MAAM,OAAO,MAAM,SAAY,QAAQ,MAAM,OAAO,MAAM;AAAA,IACjE,aAAa,MAAM,aAAa,MAAM;AAAA,EACxC;AACA,MAAI,MAAM,OAAO,MAAM,UAAa,OAAO,MAAM,OAAO,MAAM,WAAW;AACvE,WAAO,UAAU,WAAW;AAAA,EAC9B;AACA,MAAI,OAAO,MAAM,aAAa,MAAM;AAClC,WAAO,UAAU,iBAAiB;AACpC,MAAI,MAAM,aAAa,MAAM,QAAW;AACtC,UAAM,cAAc,YAAY,MAAM,aAAa,GAAG,iBAAiB;AAAA,EACzE;AACA,MAAI,MAAM,cAAc,MAAM,QAAW;AACvC,UAAM,eAAe,YAAY,MAAM,cAAc,GAAG,kBAAkB;AAAA,EAC5E;AACA,MAAI,CAAC,YAAY,MAAM,QAAQ,MAAM,MAAM,MAAM,CAAC,EAAG,OAAO,GAAG;AAC7D,WAAO,UAAU,kBAAkB;AAAA,EACrC;AACA,QAAM,iBAAiB,KAAK;AAAA,IAC1B,GAAG,MAAM,MAAM,IAAI,CAAC,SAAS,KAAK,QAAQ,MAAM;AAAA,EAClD;AACA,MAAI,MAAM,QAAQ,mBAAmB,gBAAgB;AACnD,WAAO,UAAU,4BAA4B;AAAA,EAC/C;AACA,SAAO;AACT;AAEA,SAAS,YAAY,MAAoB,OAA8B;AACrE,MACE,KAAK,UAAU,MAAM,SACrB,KAAK,SAAS,MAAM,QACpB,KAAK,WAAW,MAAM,QACtB;AACA,WAAO;AAAA,EACT;AACA,MAAI,KAAK,UAAU,UAAU,MAAM,UAAU,QAAQ;AACnD,WAAO,KAAK,UAAU,MAAM;AAAA,EAC9B;AACA,SAAO,KAAK,YAAY,MAAM,WAAW,KAAK,eAAe,MAAM;AACrE;AAGO,SAAS,iBAAiB,KAAyC;AACxE,QAAM,QAAQ,gBAAgB,GAAG;AACjC,MAAI,MAAM,gBAAgB,OAAW,QAAO,UAAU,iBAAiB;AACvE,MAAI,MAAM,iBAAiB,OAAW,QAAO,UAAU,kBAAkB;AACzE,SAAO;AACT;AAGO,SAAS,eAAe,KAA0C;AACvE,QAAM,WAAW,OAAO,KAAK,SAAS;AACtC,YAAU,UAAU,CAAC,MAAM,GAAG,SAAS;AACvC,MAAI,CAAC,MAAM,QAAQ,SAAS,MAAM,CAAC,EAAG,QAAO,UAAU,cAAc;AACrE,SAAO,SAAS,MAAM,EAAE,IAAI,eAAe;AAC7C;AAEA,SAAS,gBAAgB,OAAgB,MAAmC;AAC1E,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B;AAAA,IACE;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACA,QAAM,SAA8B;AAAA,IAClC,MAAM,YAAY,KAAK,QAAQ,IAAI;AAAA,IACnC,YAAY,YAAY,KAAK,cAAc,IAAI;AAAA,IAC/C,MAAM,YAAY,KAAK,QAAQ,IAAI;AAAA,IACnC,aAAa,YAAY,KAAK,eAAe,IAAI;AAAA,IACjD,UAAU,YAAY,KAAK,YAAY,IAAI;AAAA,IAC3C,UAAU,cAAc,KAAK,IAAI;AAAA,IACjC,SAAS,aAAa,IAAI,SAAS,GAAG,GAAG,IAAI,UAAU;AAAA,IACvD,WAAW,mBAAmB,KAAK,aAAa,MAAM,GAAG,CAAC;AAAA,EAC5D;AACA,MAAI,IAAI,iBAAiB,MAAM,QAAW;AACxC,QAAI,CAAC,MAAM,QAAQ,IAAI,iBAAiB,CAAC;AACvC,aAAO,UAAU,GAAG,IAAI,kBAAkB;AAC5C,WAAO,kBAAkB,IAAI,iBAAiB,EAAE;AAAA,MAAI,CAAC,OAAO,UAC1D,eAAe,OAAO,GAAG,IAAI,oBAAoB,KAAK,GAAG;AAAA,IAC3D;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,iBACd,KACsB;AACtB,qBAAmB,KAAK,QAAQ;AAChC,QAAM,WAAW,OAAO,KAAK,QAAQ;AACrC,YAAU,UAAU,CAAC,WAAW,SAAS,SAAS,GAAG,QAAQ;AAC7D,MAAI,CAAC,MAAM,QAAQ,SAAS,SAAS,CAAC,EAAG,QAAO,UAAU,gBAAgB;AAC1E,QAAM,UAAU,SAAS,SAAS;AAClC,MAAI,YAAY,cAAc,YAAY;AACxC,WAAO,UAAU,gBAAgB;AACnC,SAAO;AAAA,IACL,SAAS,SAAS,SAAS,EAAE;AAAA,MAAI,CAAC,KAAK,UACrC,gBAAgB,KAAK,kBAAkB,KAAK,GAAG;AAAA,IACjD;AAAA,IACA,OAAO,aAAa,UAAU,SAAS,QAAQ;AAAA,IAC/C;AAAA,EACF;AACF;AAcA,eAAsB,YACpB,UAA8B,CAAC,GACH;AAC5B,QAAM,YAAY,QAAQ,SAAS,WAAW;AAC9C,MAAI,OAAO,cAAc,YAAY;AACnC,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,QAAQ,QAAQ,WAAW,kBAAkB,QAAQ,QAAQ,EAAE;AACrE,QAAM,OAA+B,CAAC;AACtC,MAAI,QAAQ,iBAAiB,QAAW;AACtC,SAAK,cAAc,IAAI,QAAQ;AAAA,EACjC;AACA,MAAI,QAAQ,UAAU,QAAW;AAC/B,SAAK,OAAO,IAAI,QAAQ;AAAA,EAC1B;AAEA,MAAI;AACJ,MAAI;AACF,eAAW,MAAM,UAAU,GAAG,IAAI,iBAAiB;AAAA,MACjD,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,QAAQ;AAAA,MACV;AAAA,MACA,MAAM,KAAK,UAAU,IAAI;AAAA,IAC3B,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,UAAM,IAAI;AAAA,MACR,eAAe,QAAQ,IAAI,UAAU;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAEA,QAAM,YAAY,SAAS,QAAQ,IAAI,cAAc,KAAK;AAC1D,QAAM,OAAO,MAAM,SAAS,KAAK,EAAE,MAAM,MAAM,EAAE;AACjD,MAAI,SAAS,WAAW,KAAK;AAC3B,QAAI,UAAU,8BAA8B,SAAS,MAAM;AAC3D,QAAI;AACF,YAAMC,UAAS,KAAK,MAAM,IAAI;AAC9B,UAAI,OAAOA,QAAO,UAAU,YAAYA,QAAO,UAAU,IAAI;AAC3D,kBAAUA,QAAO;AAAA,MACnB;AAAA,IACF,QAAQ;AAAA,IAER;AACA,UAAM,gBAAgB,SAAS,QAAQ,SAAS,SAAS;AAAA,EAC3D;AAEA,QAAM,SAAS,KAAK,MAAM,IAAI;AAC9B,SAAO;AAAA,IACL,QAAQ,OAAO;AAAA,IACf,QAAQ,OAAO;AAAA,IACf,YAAY,OAAO;AAAA,IACnB,UAAU,OAAO;AAAA,EACnB;AACF;;;AC1ZA,IAAMC,oBAAmB;AACzB,IAAM,qBAAqB;AAC3B,IAAM,sBAAsB;AAC5B,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAmB3B,SAAS,YAAgC;AACvC,MAAI;AACF,QAAI,OAAO,YAAY,eAAe,SAAS,KAAK;AAClD,aAAO,QAAQ,IAAI,gBAAgB;AAAA,IACrC;AAAA,EACF,QAAQ;AAAA,EAER;AACA,SAAO;AACT;AAKA,SAAS,MAAM,IAAY,QAAqC;AAC9D,SAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,QAAI,QAAQ,SAAS;AACnB,aAAO,IAAI,gBAAgB,mBAAmB,CAAC,CAAC;AAChD;AAAA,IACF;AACA,UAAM,QAAQ,WAAW,MAAM;AAC7B,cAAQ,oBAAoB,SAAS,OAAO;AAC5C,cAAQ;AAAA,IACV,GAAG,EAAE;AACL,UAAM,UAAU,MAAM;AACpB,mBAAa,KAAK;AAClB,aAAO,IAAI,gBAAgB,mBAAmB,CAAC,CAAC;AAAA,IAClD;AACA,YAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAAA,EAC3D,CAAC;AACH;AAMA,SAAS,aAAa,SAAyB;AAC7C,QAAM,OAAO,KAAK,IAAI,sBAAsB,KAAK,SAAS,kBAAkB;AAC5E,QAAM,SAAS,MAAM,KAAK,OAAO;AACjC,SAAO,OAAO;AAChB;AAMA,SAAS,gBAAgB,QAA2C;AAClE,MAAI,WAAW,MAAM;AACnB,WAAO;AAAA,EACT;AACA,QAAM,UAAU,OAAO,KAAK;AAC5B,MAAI,YAAY,IAAI;AAClB,WAAO;AAAA,EACT;AACA,QAAM,UAAU,OAAO,OAAO;AAC9B,MAAI,OAAO,SAAS,OAAO,GAAG;AAC5B,UAAM,KAAK,UAAU;AACrB,WAAO,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,kBAAkB;AAAA,EACrD;AACA,QAAM,SAAS,KAAK,MAAM,OAAO;AACjC,MAAI,OAAO,SAAS,MAAM,GAAG;AAC3B,UAAM,QAAQ,SAAS,KAAK,IAAI;AAChC,WAAO,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,kBAAkB;AAAA,EACxD;AACA,SAAO;AACT;AAMA,SAAS,cACP,WACA,cACqD;AACrD,QAAM,gBAAgB,YAAY,QAAQ,SAAS;AACnD,MAAI,CAAC,cAAc;AACjB,WAAO,EAAE,QAAQ,eAAe,cAAc;AAAA,EAChD;AAEA,QAAM,QACJ,YACA;AACF,MAAI,OAAO,UAAU,YAAY;AAC/B,WAAO,EAAE,QAAQ,MAAM,CAAC,eAAe,YAAY,CAAC,GAAG,cAAc;AAAA,EACvE;AAEA,QAAM,aAAa,IAAI,gBAAgB;AACvC,QAAM,QAAQ,CAAC,WAAoB,WAAW,MAAM,MAAM;AAC1D,MAAI,aAAa,SAAS;AACxB,eAAW,MAAM,aAAa,MAAM;AAAA,EACtC,OAAO;AACL,iBAAa,iBAAiB,SAAS,MAAM,MAAM,aAAa,MAAM,GAAG;AAAA,MACvE,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,MAAI,cAAc,SAAS;AACzB,eAAW,MAAM,cAAc,MAAM;AAAA,EACvC,OAAO;AACL,kBAAc,iBAAiB,SAAS,MAAM,MAAM,cAAc,MAAM,GAAG;AAAA,MACzE,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO,EAAE,QAAQ,WAAW,QAAQ,cAAc;AACpD;AAMA,SAAS,gBACP,eACA,cACS;AACT,MAAI,CAAC,cAAc,SAAS;AAC1B,WAAO;AAAA,EACT;AAGA,SAAO,cAAc,YAAY,QAAQ,cAAc;AACzD;AAKA,SAAS,SACP,SACA,MACA,SACQ;AACR,QAAM,OAAO,QAAQ,QAAQ,QAAQ,EAAE;AACvC,QAAM,MAAM,IAAI,IAAI,GAAG,IAAI,WAAW,IAAI,EAAE;AAC5C,MAAI,SAAS,UAAU,QAAQ,OAAO,SAAS,GAAG;AAChD,QAAI,aAAa,IAAI,UAAU,QAAQ,OAAO,KAAK,GAAG,CAAC;AAAA,EACzD;AACA,MAAI,SAAS,aAAa,QAAW;AACnC,QAAI,aAAa,IAAI,aAAa,OAAO,QAAQ,QAAQ,CAAC;AAAA,EAC5D;AACA,MAAI,SAAS,YAAY,MAAM;AAC7B,QAAI,aAAa,IAAI,WAAW,MAAM;AAAA,EACxC;AACA,SAAO,IAAI,SAAS;AACtB;AAMA,SAAS,gBAAgB,MAAc,QAAwB;AAC7D,MAAI,MAAM;AACR,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,IAAI;AAC9B,UAAI,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU,IAAI;AAC3D,eAAO,OAAO;AAAA,MAChB;AAAA,IACF,QAAQ;AAAA,IAER;AAAA,EACF;AACA,SAAO,8BAA8B,MAAM;AAC7C;AAMO,IAAM,SAAN,MAAmC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOE,QAAoB;AAAA,EAEvC,YAAY,UAAyB,CAAC,GAAG;AACvC,SAAK,SAAS,QAAQ,UAAU,UAAU;AAC1C,QAAI,CAAC,KAAK,QAAQ;AAChB,YAAM,IAAI,YAAY,iDAAiD,CAAC;AAAA,IAC1E;AACA,SAAK,UAAU,QAAQ,WAAWA;AAClC,UAAM,gBAAgB,QAAQ,SAAS,WAAW;AAClD,QAAI,OAAO,kBAAkB,YAAY;AACvC,YAAM,IAAI;AAAA,QACR;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,SAAK,YAAY;AACjB,SAAK,aAAa,QAAQ,cAAc;AACxC,SAAK,YAAY,QAAQ,aAAa;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IACE,MACA,OACA,SACuB;AACvB,WAAO,KAAK;AAAA,MACV;AAAA,MACA,SAAS,KAAK,SAAS,MAAM,OAAO;AAAA,MACpC;AAAA,QACE,MAAM,KAAK,UAAU,SAAS,CAAC,CAAC;AAAA,QAChC,WAAW,SAAS,aAAa,KAAK;AAAA,QACtC,YAAY,SAAS,cAAc,KAAK;AAAA,QACxC,GAAI,SAAS,SAAS,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;AAAA,MACtD;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,UAAoC;AAClC,WAAO,KAAK,QAAyB,aAAa;AAAA,EACpD;AAAA;AAAA,EAGA,MAAM,KAA8B;AAClC,UAAM,MAAM,MAAM,KAAK,QAAyB,QAAQ;AACxD,WAAO,WAAW,GAAG;AAAA,EACvB;AAAA;AAAA,EAGA,MAAM,QAAQ,UAA0B,CAAC,GAA4B;AACnE,UAAM,SAAS,IAAI,gBAAgB;AACnC,QAAI,QAAQ,UAAU;AACpB,aAAO,IAAI,YAAY,QAAQ,QAAQ;AAAA,IACzC;AACA,UAAM,KAAK,OAAO,SAAS;AAC3B,UAAM,MAAM,MAAM,KAAK;AAAA,MACrB,KAAK,YAAY,EAAE,KAAK;AAAA,IAC1B;AACA,WAAO,eAAe,GAAG;AAAA,EAC3B;AAAA;AAAA,EAGA,MAAM,OAAO,SAAuD;AAClE,UAAM,SAAS,IAAI,gBAAgB,EAAE,GAAG,QAAQ,MAAM,CAAC;AACvD,QAAI,QAAQ,SAAU,QAAO,IAAI,YAAY,QAAQ,QAAQ;AAC7D,QAAI,QAAQ,SAAU,QAAO,IAAI,YAAY,QAAQ,QAAQ;AAC7D,QAAI,QAAQ,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,KAAK,CAAC;AAC1E,UAAM,MAAM,MAAM,KAAK;AAAA,MACrB,mBAAmB,OAAO,SAAS,CAAC;AAAA,IACtC;AACA,WAAO,iBAAiB,GAAG;AAAA,EAC7B;AAAA;AAAA,EAGA,MAAM,SAAS,MAAqC;AAClD,UAAM,MAAM,MAAM,KAAK;AAAA,MACrB,YAAY,mBAAmB,IAAI,CAAC;AAAA,IACtC;AACA,WAAO,iBAAiB,GAAG;AAAA,EAC7B;AAAA;AAAA,EAGQ,QAAW,MAA0B;AAC3C,WAAO,KAAK,QAAW,OAAO,GAAG,KAAK,cAAc,GAAG,IAAI,IAAI;AAAA,MAC7D,WAAW,KAAK;AAAA,MAChB,YAAY,KAAK;AAAA,IACnB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAgB,QACd,QACA,KACA,MAMY;AACZ,UAAM,UAAkC;AAAA,MACtC,QAAQ;AAAA,IACV;AACA,QAAI,KAAK,SAAS,QAAW;AAC3B,cAAQ,cAAc,IAAI;AAAA,IAC5B;AACA,QAAI,KAAK,QAAQ;AACf,cAAQ,eAAe,IAAI,UAAU,KAAK,MAAM;AAAA,IAClD;AAEA,QAAI,UAAU;AACd,eAAS;AACP,YAAM,EAAE,QAAQ,cAAc,IAAI;AAAA,QAChC,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AACA,UAAI;AACJ,UAAI;AACF,mBAAW,MAAM,KAAK,UAAU,KAAK;AAAA,UACnC;AAAA,UACA;AAAA,UACA,GAAI,KAAK,SAAS,SAAY,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC;AAAA,UACrD;AAAA,QACF,CAAC;AAAA,MACH,SAAS,KAAK;AAEZ,YAAI,gBAAgB,eAAe,KAAK,MAAM,GAAG;AAC/C,gBAAM,IAAI,aAAa,qBAAqB,CAAC;AAAA,QAC/C;AACA,YAAI,KAAK,QAAQ,SAAS;AACxB,gBAAM,IAAI,gBAAgB,mBAAmB,CAAC;AAAA,QAChD;AAEA,cAAM,UAAU,IAAI;AAAA,UAClB,eAAe,QAAQ,IAAI,UAAU;AAAA,UACrC;AAAA,QACF;AACA,YAAI,UAAU,KAAK,YAAY;AAC7B,gBAAM,MAAM,aAAa,OAAO,GAAG,KAAK,MAAM;AAC9C,qBAAW;AACX;AAAA,QACF;AACA,cAAM;AAAA,MACR;AAEA,YAAM,YAAY,SAAS,QAAQ,IAAI,cAAc,KAAK;AAE1D,UAAI,SAAS,WAAW,KAAK;AAC3B,cAAM,OAAO,MAAM,SAAS,KAAK;AACjC,YAAI;AACF,iBAAO,KAAK,MAAM,IAAI;AAAA,QACxB,QAAQ;AACN,gBAAM,IAAI;AAAA,YACR;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAGA,YAAM,OAAO,MAAM,SAAS,KAAK,EAAE,MAAM,MAAM,EAAE;AACjD,YAAM,UAAU,gBAAgB,MAAM,SAAS,MAAM;AAErD,UAAI,SAAS,WAAW,OAAO,UAAU,KAAK,YAAY;AACxD,cAAM,aAAa,gBAAgB,SAAS,QAAQ,IAAI,aAAa,CAAC;AACtE,cAAM,QAAQ,cAAc,aAAa,OAAO;AAChD,cAAM,MAAM,OAAO,KAAK,MAAM;AAC9B,mBAAW;AACX;AAAA,MACF;AAEA,YAAM,gBAAgB,SAAS,QAAQ,SAAS,SAAS;AAAA,IAC3D;AAAA,EACF;AAAA;AAAA,EAGA,IAAc,iBAAyB;AACrC,WAAO,KAAK,QAAQ,QAAQ,QAAQ,EAAE;AAAA,EACxC;AAAA,EAEA,IAAc,mBAA2B;AACvC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,kBAA0B;AACtC,WAAO,KAAK;AAAA,EACd;AACF;;;ACvXO,SAAS,OAAU,QAA4C;AACpE,QAAM,SAAU,OAA+B;AAE/C,MACE,WAAW,QACX,OAAO,WAAW,YAClB,WAAY,QACZ;AACA,UAAM,MAAM;AACZ,QAAI,IAAI,OAAO;AACb,aAAO,IAAI;AAAA,IACb;AAEA,UAAM,IAAI,oBAAoB,gCAAgC,GAAG;AAAA,EACnE;AAEA,SAAO;AACT;;;ACnDA,SAAS,SAAS,QAA6B,MAA+C;AAC5F,MAAI,MAAM;AACR,UAAM,MAAM,OAAO;AACnB,WAAO,QAAQ,QAAQ,OAAO,QAAQ,WACjC,MACD;AAAA,EACN;AACA,QAAM,MAAM,OAAO;AACnB,MAAI,CAAC,OAAO,IAAI,UAAU,QAAQ,IAAI,SAAS,QAAQ,IAAI,SAAS,QAAW;AAC7E,WAAO;AAAA,EACT;AACA,SAAO,IAAI;AACb;AAeO,SAAS,SACd,MACA,MACA,OACA,YACA,MACA,SACuB;AAEvB,QAAM,cAA0C,cAAc,OAAO;AACrE,QAAM,WAAW,SAAS;AAE1B,kBAAgB,YAAiD;AAC/D,QAAI;AACJ,eAAS;AACP,YAAM,YAAqC,EAAE,GAAG,MAAM;AACtD,UAAI,WAAW,QAAW;AACxB,kBAAU,QAAQ,IAAI;AAAA,MACxB;AACA,YAAM,SAAU,MAAM,KAAK,IAAa,MAAM,WAAW,WAAW;AACpE,YAAM;AAEN,YAAM,OAAO,SAAS,QAAQ,IAAI;AAClC,UAAI,SAAS,MAAM;AACjB;AAAA,MACF;AACA,YAAM,OAAO,KAAK,YAAY;AAC9B,UAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C;AAAA,MACF;AACA,eAAS;AAAA,IACX;AAAA,EACF;AAEA,kBAAgB,YAAiD;AAC/D,QAAI,UAAU;AACd,qBAAiB,QAAQ,UAAU,GAAG;AACpC,YAAM,OAAO,SAAS,MAAM,IAAI;AAChC,UAAI,SAAS,MAAM;AACjB;AAAA,MACF;AACA,YAAM,QAAQ,KAAK,UAAU;AAC7B,UAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB;AAAA,MACF;AACA,iBAAW,QAAQ,OAAO;AACxB,YAAI,aAAa,UAAa,WAAW,UAAU;AACjD;AAAA,QACF;AACA,cAAM;AACN,mBAAW;AAAA,MACb;AACA,UAAI,aAAa,UAAa,WAAW,UAAU;AACjD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,YAAmC;AAAA,IACvC,CAAC,OAAO,aAAa,GAAG,MAAM,UAAU;AAAA,IACxC,OAAO,OAAO,EAAE,CAAC,OAAO,aAAa,GAAG,MAAM,UAAU,EAAE;AAAA,EAC5D;AACA,SAAO;AACT;AAGA,SAAS,cAAc,SAAsD;AAC3E,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AACA,QAAM,EAAE,UAAU,WAAW,GAAG,KAAK,IAAI;AACzC,OAAK;AACL,SAAO;AACT;;;AC0HO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,UACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,SACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,SACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AACF;;;ACzHO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AACF;;;AC1HO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AACF;;;ACqUO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,MACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AACF;;;AC2kBO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,aACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,mBACE,OACA,SACkD;AAClD,WAAO,KAAK,MAAM,IAAI,8BAA8B,OAAO,OAAO;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,wBACE,OACA,SACuD;AACvD,WAAO,KAAK,MAAM,IAAI,oCAAoC,OAAO,OAAO;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,oBACE,OACA,SACmD;AACnD,WAAO,KAAK,MAAM,IAAI,+BAA+B,OAAO,OAAO;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AACF;;;ACxoCO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AACF;;;ACiCO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,KACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AACF;;;ACpEO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AACF;;;AC1CO,IAAM,yBAAN,MAA6B;AAAA,EAClC,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,SACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AACF;;;ACNO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AACF;;;AC+DO,IAAM,uBAAN,MAA2B;AAAA,EAChC,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AACF;;;ACqRO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AACF;;;ACzWO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AACF;;;ACxIO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,KACE,OACA,SACmC;AACnC,WAAO,KAAK,MAAM,IAAI,cAAc,OAAO,OAAO;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AACF;;;ACq4CO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,UACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACkE;AAClE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,mBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,WACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eACE,OACA,SACoE;AACpE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACE,OACA,SAC+D;AAC/D,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBACE,OACA,SAC2E;AAC3E,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,WACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eACE,OACA,SACsE;AACtE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,gBACE,OACA,SAC2E;AAC3E,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SACiD;AACjD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,0BACE,OACA,SAC2D;AAC3D,WAAO,KAAK,MAAM;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACE,OACA,SAC+D;AAC/D,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SACiD;AACjD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AACF;;;AC3kEO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AACF;;;AC6eO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,WACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,mBACE,OACA,SACkD;AAClD,WAAO,KAAK,MAAM,IAAI,8BAA8B,OAAO,OAAO;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,qBACE,OACA,SACoD;AACpD,WAAO,KAAK,MAAM,IAAI,gCAAgC,OAAO,OAAO;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBACE,OACA,SAC0E;AAC1E,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,kBACE,OACA,SACiD;AACjD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,qBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AACF;;;AC7uBO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,KACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AACF;;;ACyYO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,aACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AACF;;;AClYO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,UACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACmD;AACnD,WAAO,KAAK,MAAM,IAAI,gCAAgC,OAAO,OAAO;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,WACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eACE,OACA,SACsE;AACtE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AACF;;;ACpQO,IAAM,yBAAN,MAA6B;AAAA,EAClC,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,MACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AACF;;;ACxBO,IAAM,0BAAN,MAA8B;AAAA,EACnC,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AACF;;;ACuCO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SACiD;AACjD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AACF;;;AC1JO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,KACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AACF;;;ACgiCO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,WACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eACE,OACA,SACwE;AACxE,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACsE;AACtE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACsE;AACtE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACmD;AACnD,WAAO,KAAK,MAAM,IAAI,+BAA+B,OAAO,OAAO;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SACkD;AAClD,WAAO,KAAK,MAAM,IAAI,8BAA8B,OAAO,OAAO;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SACkD;AAClD,WAAO,KAAK,MAAM,IAAI,8BAA8B,OAAO,OAAO;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SACiD;AACjD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SACiD;AACjD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,mBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SACiD;AACjD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACsE;AACtE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACsE;AACtE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;ACyvBO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,GACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,IACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACkD;AAClD,WAAO,KAAK,MAAM,IAAI,8BAA8B,OAAO,OAAO;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACkD;AAClD,WAAO,KAAK,MAAM,IAAI,+BAA+B,OAAO,OAAO;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,SACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SACiD;AACjD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,oBACE,OACA,SACqD;AACrD,WAAO,KAAK,MAAM,IAAI,kCAAkC,OAAO,OAAO;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,mBACE,OACA,SACoD;AACpD,WAAO,KAAK,MAAM,IAAI,iCAAiC,OAAO,OAAO;AAAA,EACvE;AACF;;;ACttEO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,SACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MACE,OACA,SACmC;AACnC,WAAO,KAAK,MAAM,IAAI,cAAc,OAAO,OAAO;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AACF;;;ACrbO,IAAM,wBAAN,MAA4B;AAAA,EACjC,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,UACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AACF;;;ACzFO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,UACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AACF;;;AC9GO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AACF;;;ACwCO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AACF;;;AChBO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AACF;;;ACsDO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AACF;;;AC+KO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,aACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACE,OACA,SAC0D;AAC1D,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,oBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;AC3ZO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AACF;;;AC6XO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,KACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBACE,OACA,SAC2E;AAC3E,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACE,OACA,SAC4D;AAC5D,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,gBACE,OACA,SACsE;AACtE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACkE;AAClE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;AC/lBO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AACF;;;ACuJO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,SACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,SACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AACF;;;AC8qBO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,kBACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,mBACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,mBACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,kBACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,mBACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AACF;;;ACvlCO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AACF;;;ACjDO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AACF;;;ACuUO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,MACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,oBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AACF;;;ACtaO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,MACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AACF;;;ACkIO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,KACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AACF;;;AC8rBO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,YACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,oBACE,OACA,SAC0E;AAC1E,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,qBACE,OACA,SACoD;AACpD,WAAO,KAAK,MAAM,IAAI,gCAAgC,OAAO,OAAO;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,mBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACoE;AACpE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBACE,OACA,SACyE;AACzE,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACgE;AAChE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,YACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,gBACE,OACA,SACoE;AACpE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,WACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eACE,OACA,SACmE;AACnE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,wBAAwB,OAAO,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBACE,OACA,SAC2E;AAC3E,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AACF;;;ACruCO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SACkD;AAClD,WAAO,KAAK,MAAM,IAAI,+BAA+B,OAAO,OAAO;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;ACtRO,IAAM,uBAAN,MAA2B;AAAA,EAChC,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AACF;;;ACvJO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AACF;;;ACkDO,IAAM,uBAAN,MAA2B;AAAA,EAChC,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,KACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SAC4C;AAC5C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AACF;;;AC4rBO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACkE;AAClE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACkE;AAClE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACE,OACA,SAC4D;AAC5D,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,sBAAsB,OAAO,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SACmE;AACnE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,WACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eACE,OACA,SACqE;AACrE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;ACrlCO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,KACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AACF;;;ACnDO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AACF;;;AC2FO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,MACE,OACA,SACkC;AAClC,WAAO,KAAK,MAAM,IAAI,aAAa,OAAO,OAAO;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,IACE,OACA,SACgC;AAChC,WAAO,KAAK,MAAM,IAAI,WAAW,OAAO,OAAO;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACmC;AACnC,WAAO,KAAK,MAAM,IAAI,cAAc,OAAO,OAAO;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,WACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AACF;;;ACkNO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,UACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACE,OACA,SACmC;AACnC,WAAO,KAAK,MAAM,IAAI,cAAc,OAAO,OAAO;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBACE,OACA,SACuE;AACvE,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,UACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cACE,OACA,SAC8D;AAC9D,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;ACjkBO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,SACE,OACA,SAC0C;AAC1C,WAAO,KAAK,MAAM,IAAI,qBAAqB,OAAO,OAAO;AAAA,EAC3D;AACF;;;ACIO,IAAM,wBAAN,MAA4B;AAAA,EACjC,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,MACE,OACA,SAC2C;AAC3C,WAAO,KAAK,MAAM,IAAI,uBAAuB,OAAO,OAAO;AAAA,EAC7D;AACF;;;ACqDO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACoC;AACpC,WAAO,KAAK,MAAM,IAAI,eAAe,OAAO,OAAO;AAAA,EACrD;AACF;;;AC8lBO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,QACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,sBACE,OACA,SACsD;AACtD,WAAO,KAAK,MAAM,IAAI,mCAAmC,OAAO,OAAO;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,0BACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,aACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBACE,OACA,SACwE;AACxE,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,iBACE,OACA,SACiD;AACjD,WAAO,KAAK,MAAM,IAAI,6BAA6B,OAAO,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,qBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBACE,OACA,SAC2E;AAC3E,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBACE,OACA,SAC2E;AAC3E,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,SACE,OACA,SACyC;AACzC,WAAO,KAAK,MAAM,IAAI,oBAAoB,OAAO,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBACE,OACA,SAC2E;AAC3E,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SAC+C;AAC/C,WAAO,KAAK,MAAM,IAAI,2BAA2B,OAAO,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBACE,OACA,SAIA;AACA,WAAO;AAAA,MAIL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SACgD;AAChD,WAAO,KAAK,MAAM,IAAI,4BAA4B,OAAO,OAAO;AAAA,EAClE;AACF;;;ACxuBO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,OACE,OACA,SACqC;AACrC,WAAO,KAAK,MAAM,IAAI,gBAAgB,OAAO,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,SACE,OACA,SACuC;AACvC,WAAO,KAAK,MAAM,IAAI,kBAAkB,OAAO,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBACE,OACA,SAC8C;AAC9C,WAAO,KAAK,MAAM,IAAI,0BAA0B,OAAO,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACE,OACA,SAC6C;AAC7C,WAAO,KAAK,MAAM,IAAI,yBAAyB,OAAO,OAAO;AAAA,EAC/D;AACF;;;ACnPO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,OAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY7B,SACE,OACA,SACwC;AACxC,WAAO,KAAK,MAAM,IAAI,mBAAmB,OAAO,OAAO;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OACE,OACA,SACsC;AACtC,WAAO,KAAK,MAAM,IAAI,iBAAiB,OAAO,OAAO;AAAA,EACvD;AACF;;;ACxRO,IAAMC,UAAN,cAAqB,OAAW;AAAA,EACpB,cAAuC,CAAC;AAAA,EAgBzD,IACE,MACA,OACA,SAC6B;AAC7B,WAAO,MAAM,IAAI,MAAM,OAAO,OAAO;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA8B;AAChC,WAAQ,KAAK,YAAY,UAAU,MAAM,IAAI;AAAA,MAC3C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAwC;AAC1C,WAAQ,KAAK,YAAY,eAAe,MAAM,IAAI;AAAA,MAChD,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA8B;AAChC,WAAQ,KAAK,YAAY,UAAU,MAAM,IAAI;AAAA,MAC3C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAoC;AACtC,WAAQ,KAAK,YAAY,aAAa,MAAM,IAAI;AAAA,MAC9C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,OAAsB;AACxB,WAAQ,KAAK,YAAY,MAAM,MAAM,IAAI;AAAA,MACvC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAwB;AAC1B,WAAQ,KAAK,YAAY,OAAO,MAAM,IAAI;AAAA,MACxC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA8B;AAChC,WAAQ,KAAK,YAAY,UAAU,MAAM,IAAI;AAAA,MAC3C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAgC;AAClC,WAAQ,KAAK,YAAY,WAAW,MAAM,IAAI;AAAA,MAC5C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAgC;AAClC,WAAQ,KAAK,YAAY,WAAW,MAAM,IAAI;AAAA,MAC5C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAwC;AAC1C,WAAQ,KAAK,YAAY,eAAe,MAAM,IAAI;AAAA,MAChD,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAA0C;AAC5C,WAAQ,KAAK,YAAY,gBAAgB,MAAM,IAAI;AAAA,MACjD,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAkC;AACpC,WAAQ,KAAK,YAAY,YAAY,MAAM,IAAI;AAAA,MAC7C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAgC;AAClC,WAAQ,KAAK,YAAY,WAAW,MAAM,IAAI;AAAA,MAC5C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA8B;AAChC,WAAQ,KAAK,YAAY,UAAU,MAAM,IAAI;AAAA,MAC3C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,OAAsB;AACxB,WAAQ,KAAK,YAAY,MAAM,MAAM,IAAI;AAAA,MACvC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAsC;AACxC,WAAQ,KAAK,YAAY,cAAc,MAAM,IAAI;AAAA,MAC/C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAgC;AAClC,WAAQ,KAAK,YAAY,WAAW,MAAM,IAAI;AAAA,MAC5C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAgC;AAClC,WAAQ,KAAK,YAAY,WAAW,MAAM,IAAI;AAAA,MAC5C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAkC;AACpC,WAAQ,KAAK,YAAY,YAAY,MAAM,IAAI;AAAA,MAC7C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAoB;AACtB,WAAQ,KAAK,YAAY,KAAK,MAAM,IAAI;AAAA,MACtC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAoB;AACtB,WAAQ,KAAK,YAAY,KAAK,MAAM,IAAI;AAAA,MACtC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA8B;AAChC,WAAQ,KAAK,YAAY,UAAU,MAAM,IAAI;AAAA,MAC3C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA8B;AAChC,WAAQ,KAAK,YAAY,UAAU,MAAM,IAAI;AAAA,MAC3C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAkC;AACpC,WAAQ,KAAK,YAAY,YAAY,MAAM,IAAI;AAAA,MAC7C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAoC;AACtC,WAAQ,KAAK,YAAY,aAAa,MAAM,IAAI;AAAA,MAC9C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAkC;AACpC,WAAQ,KAAK,YAAY,YAAY,MAAM,IAAI;AAAA,MAC7C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAoC;AACtC,WAAQ,KAAK,YAAY,aAAa,MAAM,IAAI;AAAA,MAC9C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAoB;AACtB,WAAQ,KAAK,YAAY,KAAK,MAAM,IAAI;AAAA,MACtC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAwB;AAC1B,WAAQ,KAAK,YAAY,OAAO,MAAM,IAAI;AAAA,MACxC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAA8B;AAChC,WAAQ,KAAK,YAAY,UAAU,MAAM,IAAI;AAAA,MAC3C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAsC;AACxC,WAAQ,KAAK,YAAY,cAAc,MAAM,IAAI;AAAA,MAC/C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,OAAsB;AACxB,WAAQ,KAAK,YAAY,MAAM,MAAM,IAAI;AAAA,MACvC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA4B;AAC9B,WAAQ,KAAK,YAAY,SAAS,MAAM,IAAI;AAAA,MAC1C,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAwB;AAC1B,WAAQ,KAAK,YAAY,OAAO,MAAM,IAAI;AAAA,MACxC,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA0B;AAC5B,WAAQ,KAAK,YAAY,QAAQ,MAAM,IAAI;AAAA,MACzC,KAAK;AAAA,IACP;AAAA,EACF;AACF;","names":["AnyAPI","parsed","DEFAULT_BASE_URL","AnyAPI"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/core/errors.ts","../src/core/account.ts","../src/core/client.ts","../src/core/types.ts","../src/core/pagination.ts","../src/generated/platforms/ahrefs.ts","../src/generated/platforms/airbnb.ts","../src/generated/platforms/alibaba.ts","../src/generated/platforms/amazon.ts","../src/generated/platforms/apollo.ts","../src/generated/platforms/appstore.ts","../src/generated/platforms/bluesky.ts","../src/generated/platforms/booking.ts","../src/generated/platforms/coinmarketcap.ts","../src/generated/platforms/congress.ts","../src/generated/platforms/dexscreener.ts","../src/generated/platforms/douyin.ts","../src/generated/platforms/ebay.ts","../src/generated/platforms/email.ts","../src/generated/platforms/facebook.ts","../src/generated/platforms/fiverr.ts","../src/generated/platforms/github.ts","../src/generated/platforms/glassdoor.ts","../src/generated/platforms/google.ts","../src/generated/platforms/google_ads.ts","../src/generated/platforms/google_finance.ts","../src/generated/platforms/google_shopping.ts","../src/generated/platforms/hackernews.ts","../src/generated/platforms/indeed.ts","../src/generated/platforms/instagram.ts","../src/generated/platforms/linkedin.ts","../src/generated/platforms/maps.ts","../src/generated/platforms/pandaexpress.ts","../src/generated/platforms/person.ts","../src/generated/platforms/pinterest.ts","../src/generated/platforms/playstore.ts","../src/generated/platforms/polymarket.ts","../src/generated/platforms/realtor.ts","../src/generated/platforms/reddit.ts","../src/generated/platforms/redfin.ts","../src/generated/platforms/rednote.ts","../src/generated/platforms/sec.ts","../src/generated/platforms/semrush.ts","../src/generated/platforms/seo.ts","../src/generated/platforms/snapchat.ts","../src/generated/platforms/social.ts","../src/generated/platforms/spotify.ts","../src/generated/platforms/substack.ts","../src/generated/platforms/threads.ts","../src/generated/platforms/tiktok.ts","../src/generated/platforms/tiktok_shop.ts","../src/generated/platforms/tripadvisor.ts","../src/generated/platforms/trustpilot.ts","../src/generated/platforms/truthsocial.ts","../src/generated/platforms/twitter.ts","../src/generated/platforms/upwork.ts","../src/generated/platforms/walmart.ts","../src/generated/platforms/web.ts","../src/generated/platforms/weibo.ts","../src/generated/platforms/whatsapp.ts","../src/generated/platforms/yahoo_finance.ts","../src/generated/platforms/yelp.ts","../src/generated/platforms/youtube.ts","../src/generated/platforms/zhihu.ts","../src/generated/platforms/zillow.ts","../src/generated/client.ts"],"sourcesContent":["// Public barrel for @getanyapi/sdk. Named exports only (SPEC 0.4).\n//\n// The generated barrel (src/generated/index.ts) is the composed surface: it exports the\n// generated AnyAPI (the base client with every platform namespace attached), the augmented\n// SkuMap, every platform's input/data/item types, and re-exports the handwritten core\n// public surface (RunResult, errors, unwrap, agentSignup, ...). This entry re-exports it\n// wholesale, then adds the two core symbols the generated barrel does not surface\n// (ClientCore, paginate). See SPEC.md section 2.\n\nexport * from \"./generated/index.js\";\n\nexport { paginate } from \"./core/index.js\";\nexport type { ClientCore } from \"./core/index.js\";\n","// Handwritten runtime core: the error hierarchy and status mapping. See SPEC.md 2.6.\n// Named exports only; zero runtime deps.\n\n/**\n * Base error for all AnyAPI SDK failures.\n */\nexport class AnyAPIError extends Error {\n /** HTTP status code, or 0 for transport-level failures (connection/timeout). */\n readonly status: number;\n /** The x-request-id response header when present, else undefined. */\n readonly requestId?: string;\n\n constructor(message: string, status: number, requestId?: string) {\n super(message);\n this.name = new.target.name;\n this.status = status;\n if (requestId !== undefined) {\n this.requestId = requestId;\n }\n // Restore prototype chain for downlevel targets / bundlers.\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n/** HTTP 400. */\nexport class BadRequestError extends AnyAPIError {}\n/** HTTP 401. */\nexport class AuthenticationError extends AnyAPIError {}\n/** HTTP 402. */\nexport class InsufficientBalanceError extends AnyAPIError {}\n/** HTTP 404. */\nexport class NotFoundError extends AnyAPIError {}\n/**\n * Thrown by {@link unwrap} when a found-data result carried `found: false` (the upstream\n * had no matching result). A subclass of NotFoundError so `catch (NotFoundError)` still\n * catches it; catch ResultNotFoundError specifically to handle only empty results (not\n * HTTP 404s). See SPEC 2.3 erratum.\n */\nexport class ResultNotFoundError extends NotFoundError {}\n/** HTTP 429. */\nexport class RateLimitedError extends AnyAPIError {}\n/** HTTP 502. */\nexport class UpstreamError extends AnyAPIError {}\n/** status 0, network failure. */\nexport class ConnectionError extends AnyAPIError {}\n/** status 0, request timed out. */\nexport class TimeoutError extends AnyAPIError {}\n\n/**\n * Map a non-2xx HTTP status to the corresponding error class and construct it.\n * See SPEC 2.6: 400/401/402/404/429/502 map to named classes; any other status maps\n * to the AnyAPIError base carrying that status.\n */\nexport function errorFromStatus(\n status: number,\n message: string,\n requestId?: string,\n): AnyAPIError {\n switch (status) {\n case 400:\n return new BadRequestError(message, status, requestId);\n case 401:\n return new AuthenticationError(message, status, requestId);\n case 402:\n return new InsufficientBalanceError(message, status, requestId);\n case 404:\n return new NotFoundError(message, status, requestId);\n case 429:\n return new RateLimitedError(message, status, requestId);\n case 502:\n return new UpstreamError(message, status, requestId);\n default:\n return new AnyAPIError(message, status, requestId);\n }\n}\n","// Handwritten runtime core: account/discovery response mapping and standalone agent\n// signup. See SPEC.md 2.7. Discovery is parsed strictly at this public Seam.\n\nimport { AnyAPIError, ConnectionError, errorFromStatus } from \"./errors.js\";\nimport type {\n AccountProfile,\n AgentSignupOptions,\n AgentSignupResult,\n CatalogEntry,\n CatalogSearchResult,\n CatalogSearchResults,\n DiscoveryLane,\n DiscoveryPricing,\n HighlightField,\n LaneHealth,\n PricingOffer,\n} from \"./types.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.getanyapi.com\";\n\n/** Raw /v1/me shape (superset; internal-only fields are dropped by mapProfile). */\nexport interface ProfileResponse {\n id: string;\n email?: string | null;\n status: string;\n createdAt: string;\n onboardingComplete: boolean;\n // dropped: clerkUserId, signupGrantApplied, and any other server-only fields.\n clerkUserId?: string;\n signupGrantApplied?: boolean;\n}\n\n/** Raw customer-safe discovery bodies are intentionally unknown until validated. */\nexport type CatalogEntryResponse = unknown;\n\n/** Raw /v1/apis list envelope. */\nexport interface CatalogListResponse {\n apis: unknown;\n}\n\nexport type CatalogSearchResponse = unknown;\n\nfunction malformed(path: string): never {\n throw new AnyAPIError(`malformed discovery response: ${path}`, 0);\n}\n\nfunction rejectInternalKeys(value: unknown, path: string): void {\n if (Array.isArray(value)) {\n value.forEach((item, index) =>\n rejectInternalKeys(item, `${path}[${index}]`),\n );\n return;\n }\n if (typeof value !== \"object\" || value === null) return;\n for (const [key, item] of Object.entries(value as Record<string, unknown>)) {\n if (key.toLowerCase().includes(\"credit\")) malformed(`${path}.${key}`);\n rejectInternalKeys(item, `${path}.${key}`);\n }\n}\n\nfunction record(value: unknown, path: string): Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return malformed(path);\n }\n return value as Record<string, unknown>;\n}\n\nfunction exactKeys(\n raw: Record<string, unknown>,\n allowed: readonly string[],\n path: string,\n): void {\n const keys = new Set(allowed);\n for (const key of Object.keys(raw)) {\n if (!keys.has(key)) malformed(`${path}.${key}`);\n }\n}\n\nfunction stringField(\n raw: Record<string, unknown>,\n key: string,\n path: string,\n): string {\n const value = raw[key];\n if (typeof value !== \"string\") return malformed(`${path}.${key}`);\n return value;\n}\n\nfunction numberField(\n raw: Record<string, unknown>,\n key: string,\n path: string,\n): number {\n const value = raw[key];\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n return malformed(`${path}.${key}`);\n }\n return value;\n}\n\nfunction integerField(\n raw: Record<string, unknown>,\n key: string,\n path: string,\n): number {\n const value = numberField(raw, key, path);\n if (!Number.isInteger(value)) return malformed(`${path}.${key}`);\n return value;\n}\n\nfunction boundedNumberField(\n raw: Record<string, unknown>,\n key: string,\n path: string,\n minimumExclusive: number | undefined,\n maximumInclusive: number,\n): number {\n const value = numberField(raw, key, path);\n if (\n (minimumExclusive !== undefined && value <= minimumExclusive) ||\n value > maximumInclusive\n ) {\n return malformed(`${path}.${key}`);\n }\n return value;\n}\n\nfunction parseOffer(value: unknown, path: string): PricingOffer {\n const raw = record(value, path);\n const model = stringField(raw, \"model\", path);\n const unit = stringField(raw, \"unit\", path);\n const maxUsd = numberField(raw, \"maxUsd\", path);\n if (model === \"flat\") {\n exactKeys(raw, [\"model\", \"unit\", \"maxUsd\"], path);\n if (unit !== \"request\" || \"baseUsd\" in raw || \"perUnitUsd\" in raw) {\n return malformed(path);\n }\n return { model, unit, maxUsd };\n }\n if (model === \"linear\") {\n exactKeys(raw, [\"model\", \"unit\", \"baseUsd\", \"perUnitUsd\", \"maxUsd\"], path);\n if (unit.length === 0) return malformed(`${path}.unit`);\n return {\n model,\n unit,\n baseUsd: numberField(raw, \"baseUsd\", path),\n perUnitUsd: numberField(raw, \"perUnitUsd\", path),\n maxUsd,\n };\n }\n return malformed(`${path}.model`);\n}\n\nfunction parsePricing(value: unknown, path: string): DiscoveryPricing {\n const raw = record(value, path);\n exactKeys(raw, [\"from\", \"failoverMaxUsd\"], path);\n return {\n from: parseOffer(raw[\"from\"], `${path}.from`),\n failoverMaxUsd: numberField(raw, \"failoverMaxUsd\", path),\n };\n}\n\nfunction parseHealth(value: unknown, path: string): LaneHealth {\n const raw = record(value, path);\n exactKeys(raw, [\"window\", \"uptimePct\", \"latencyP50Ms\", \"requests\"], path);\n if (raw[\"window\"] !== \"30d\") return malformed(`${path}.window`);\n return {\n window: \"30d\",\n uptimePct: boundedNumberField(raw, \"uptimePct\", path, undefined, 100),\n latencyP50Ms: integerField(raw, \"latencyP50Ms\", path),\n requests: integerField(raw, \"requests\", path),\n };\n}\n\nfunction parseLane(value: unknown, path: string): DiscoveryLane {\n const raw = record(value, path);\n exactKeys(raw, [\"pricing\", \"health\"], path);\n const lane: DiscoveryLane = {\n pricing: parseOffer(raw[\"pricing\"], `${path}.pricing`),\n };\n if (raw[\"health\"] !== undefined) {\n lane.health = parseHealth(raw[\"health\"], `${path}.health`);\n }\n return lane;\n}\n\nfunction parseProvider(raw: Record<string, unknown>, path: string): \"AnyAPI\" {\n if (raw[\"provider\"] !== \"AnyAPI\") return malformed(`${path}.provider`);\n return \"AnyAPI\";\n}\n\nfunction parseSchema(value: unknown, path: string): Record<string, unknown> {\n return record(value, path);\n}\n\nfunction parseHighlight(value: unknown, path: string): HighlightField {\n const raw = record(value, path);\n exactKeys(raw, [\"path\", \"type\", \"why\"], path);\n const field: HighlightField = {\n path: stringField(raw, \"path\", path),\n type: stringField(raw, \"type\", path),\n };\n if (raw[\"why\"] !== undefined) field.why = stringField(raw, \"why\", path);\n return field;\n}\n\n/** Map the raw /v1/me body to AccountProfile, dropping internal-only fields. */\nexport function mapProfile(raw: ProfileResponse): AccountProfile {\n const profile: AccountProfile = {\n id: raw.id,\n status: raw.status,\n createdAt: raw.createdAt,\n onboardingComplete: raw.onboardingComplete,\n };\n if (raw.email !== undefined && raw.email !== null) {\n profile.email = raw.email;\n }\n return profile;\n}\n\n/** Map one customer-safe browse/detail entry, rejecting partial or legacy contracts. */\nexport function mapCatalogEntry(raw: CatalogEntryResponse): CatalogEntry {\n rejectInternalKeys(raw, \"api\");\n const value = record(raw, \"api\");\n exactKeys(\n value,\n [\n \"id\",\n \"slug\",\n \"category\",\n \"name\",\n \"description\",\n \"provider\",\n \"pricing\",\n \"lanes\",\n \"heavy\",\n \"tryEligible\",\n \"inputSchema\",\n \"outputSchema\",\n ],\n \"api\",\n );\n const lanesRaw = value[\"lanes\"];\n if (!Array.isArray(lanesRaw) || lanesRaw.length === 0) {\n return malformed(\"api.lanes\");\n }\n const entry: CatalogEntry = {\n id: stringField(value, \"id\", \"api\"),\n slug: stringField(value, \"slug\", \"api\"),\n category: stringField(value, \"category\", \"api\"),\n name: stringField(value, \"name\", \"api\"),\n description: stringField(value, \"description\", \"api\"),\n provider: parseProvider(value, \"api\"),\n pricing: parsePricing(value[\"pricing\"], \"api.pricing\"),\n lanes: lanesRaw.map((lane, index) =>\n parseLane(lane, `api.lanes[${index}]`),\n ),\n heavy: value[\"heavy\"] === undefined ? false : value[\"heavy\"] === true,\n tryEligible: value[\"tryEligible\"] === true,\n };\n if (value[\"heavy\"] !== undefined && typeof value[\"heavy\"] !== \"boolean\") {\n return malformed(\"api.heavy\");\n }\n if (typeof value[\"tryEligible\"] !== \"boolean\")\n return malformed(\"api.tryEligible\");\n if (value[\"inputSchema\"] !== undefined) {\n entry.inputSchema = parseSchema(value[\"inputSchema\"], \"api.inputSchema\");\n }\n if (value[\"outputSchema\"] !== undefined) {\n entry.outputSchema = parseSchema(value[\"outputSchema\"], \"api.outputSchema\");\n }\n if (!offersEqual(entry.pricing.from, entry.lanes[0]!.pricing)) {\n return malformed(\"api.pricing.from\");\n }\n const failoverMaxUsd = Math.max(\n ...entry.lanes.map((lane) => lane.pricing.maxUsd),\n );\n if (entry.pricing.failoverMaxUsd !== failoverMaxUsd) {\n return malformed(\"api.pricing.failoverMaxUsd\");\n }\n return entry;\n}\n\nfunction offersEqual(left: PricingOffer, right: PricingOffer): boolean {\n if (\n left.model !== right.model ||\n left.unit !== right.unit ||\n left.maxUsd !== right.maxUsd\n ) {\n return false;\n }\n if (left.model === \"flat\" || right.model === \"flat\") {\n return left.model === right.model;\n }\n return left.baseUsd === right.baseUsd && left.perUnitUsd === right.perUnitUsd;\n}\n\n/** Detail responses must include both schemas; browse/search intentionally omit them. */\nexport function mapCatalogDetail(raw: CatalogEntryResponse): CatalogEntry {\n const entry = mapCatalogEntry(raw);\n if (entry.inputSchema === undefined) return malformed(\"api.inputSchema\");\n if (entry.outputSchema === undefined) return malformed(\"api.outputSchema\");\n return entry;\n}\n\n/** Map the raw /v1/apis list to CatalogEntry[]. */\nexport function mapCatalogList(raw: CatalogListResponse): CatalogEntry[] {\n const envelope = record(raw, \"catalog\");\n exactKeys(envelope, [\"apis\"], \"catalog\");\n if (!Array.isArray(envelope[\"apis\"])) return malformed(\"catalog.apis\");\n return envelope[\"apis\"].map(mapCatalogEntry);\n}\n\nfunction mapSearchResult(value: unknown, path: string): CatalogSearchResult {\n const raw = record(value, path);\n exactKeys(\n raw,\n [\n \"slug\",\n \"platformId\",\n \"name\",\n \"description\",\n \"category\",\n \"provider\",\n \"pricing\",\n \"relevance\",\n \"highlightFields\",\n ],\n path,\n );\n const result: CatalogSearchResult = {\n slug: stringField(raw, \"slug\", path),\n platformId: stringField(raw, \"platformId\", path),\n name: stringField(raw, \"name\", path),\n description: stringField(raw, \"description\", path),\n category: stringField(raw, \"category\", path),\n provider: parseProvider(raw, path),\n pricing: parsePricing(raw[\"pricing\"], `${path}.pricing`),\n relevance: boundedNumberField(raw, \"relevance\", path, 0, 1),\n };\n if (raw[\"highlightFields\"] !== undefined) {\n if (!Array.isArray(raw[\"highlightFields\"]))\n return malformed(`${path}.highlightFields`);\n result.highlightFields = raw[\"highlightFields\"].map((field, index) =>\n parseHighlight(field, `${path}.highlightFields[${index}]`),\n );\n }\n return result;\n}\n\nexport function mapCatalogSearch(\n raw: CatalogSearchResponse,\n): CatalogSearchResults {\n rejectInternalKeys(raw, \"search\");\n const envelope = record(raw, \"search\");\n exactKeys(envelope, [\"results\", \"total\", \"ranking\"], \"search\");\n if (!Array.isArray(envelope[\"results\"])) return malformed(\"search.results\");\n const ranking = envelope[\"ranking\"];\n if (ranking !== \"semantic\" && ranking !== \"keyword\")\n return malformed(\"search.ranking\");\n return {\n results: envelope[\"results\"].map((row, index) =>\n mapSearchResult(row, `search.results[${index}]`),\n ),\n total: integerField(envelope, \"total\", \"search\"),\n ranking,\n };\n}\n\n/** Raw /agent/signup body. */\ninterface AgentSignupResponse {\n secret: string;\n capUsd: number;\n claimToken: string;\n claimUrl: string;\n}\n\n/**\n * Agent self-signup. POST /agent/signup with NO auth header. Returns a one-time API key\n * plus its spend cap and claim details. See SPEC 2.7.\n */\nexport async function agentSignup(\n options: AgentSignupOptions = {},\n): Promise<AgentSignupResult> {\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (typeof fetchImpl !== \"function\") {\n throw new AnyAPIError(\n \"no fetch implementation available: pass options.fetch or run on a runtime with global fetch\",\n 0,\n );\n }\n const base = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, \"\");\n const body: Record<string, string> = {};\n if (options.sponsorEmail !== undefined) {\n body[\"sponsorEmail\"] = options.sponsorEmail;\n }\n if (options.label !== undefined) {\n body[\"label\"] = options.label;\n }\n\n let response: Response;\n try {\n response = await fetchImpl(`${base}/agent/signup`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(body),\n });\n } catch (err) {\n throw new ConnectionError(\n err instanceof Error ? err.message : \"connection failed\",\n 0,\n );\n }\n\n const requestId = response.headers.get(\"x-request-id\") ?? undefined;\n const text = await response.text().catch(() => \"\");\n if (response.status !== 200) {\n let message = `request failed with status ${response.status}`;\n try {\n const parsed = JSON.parse(text) as { error?: unknown };\n if (typeof parsed.error === \"string\" && parsed.error !== \"\") {\n message = parsed.error;\n }\n } catch {\n // not JSON\n }\n throw errorFromStatus(response.status, message, requestId);\n }\n\n const parsed = JSON.parse(text) as AgentSignupResponse;\n return {\n secret: parsed.secret,\n capUsd: parsed.capUsd,\n claimToken: parsed.claimToken,\n claimUrl: parsed.claimUrl,\n };\n}\n","// Handwritten runtime core: the single network seam plus the public AnyAPI base class.\n// See SPEC.md 2.1, 2.2, 2.8. Named exports only; zero runtime deps (global fetch).\n\nimport {\n AnyAPIError,\n ConnectionError,\n TimeoutError,\n errorFromStatus,\n} from \"./errors.js\";\nimport {\n mapCatalogDetail,\n mapCatalogList,\n mapCatalogSearch,\n mapProfile,\n type CatalogListResponse,\n type CatalogEntryResponse,\n type ProfileResponse,\n} from \"./account.js\";\nimport type {\n AccountProfile,\n CatalogEntry,\n CatalogOptions,\n CatalogSearchResults,\n ClientOptions,\n RequestOptions,\n RunResult,\n SearchOptions,\n} from \"./types.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.getanyapi.com\";\nconst DEFAULT_TIMEOUT_MS = 60_000;\nconst DEFAULT_MAX_RETRIES = 2;\nconst RETRY_BASE_DELAY_MS = 500;\nconst RETRY_MAX_DELAY_MS = 8_000;\n\n/**\n * The single network seam that generated per-SKU methods call. See SPEC 2.2. The generated\n * platform methods hand it a slug + input and cast the RunResult to their concrete data\n * type (found-data) or to a BareRunResult (bare SKUs); the seam itself stays untyped.\n */\nexport interface ClientCore {\n run<T>(\n slug: string,\n input: unknown,\n options?: RequestOptions,\n ): Promise<RunResult<T>>;\n}\n\n/**\n * Read the API key from the environment without crashing in browsers or edge runtimes\n * where `process` is undefined.\n */\nfunction envApiKey(): string | undefined {\n try {\n if (typeof process !== \"undefined\" && process?.env) {\n return process.env[\"ANYAPI_API_KEY\"];\n }\n } catch {\n // `process` may be a restricted proxy in some edge runtimes; ignore.\n }\n return undefined;\n}\n\n/**\n * Sleep for `ms` milliseconds, rejecting early if the signal aborts.\n */\nfunction sleep(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (signal?.aborted) {\n reject(new ConnectionError(\"request aborted\", 0));\n return;\n }\n const timer = setTimeout(() => {\n signal?.removeEventListener(\"abort\", onAbort);\n resolve();\n }, ms);\n const onAbort = () => {\n clearTimeout(timer);\n reject(new ConnectionError(\"request aborted\", 0));\n };\n signal?.addEventListener(\"abort\", onAbort, { once: true });\n });\n}\n\n/**\n * Compute the jittered exponential backoff delay for a given retry attempt. See SPEC 2.8.\n * `attempt` is 0 for the first retry.\n */\nfunction backoffDelay(attempt: number): number {\n const base = Math.min(RETRY_BASE_DELAY_MS * 2 ** attempt, RETRY_MAX_DELAY_MS);\n const factor = 0.5 + Math.random(); // random in [0.5, 1.5)\n return base * factor;\n}\n\n/**\n * Parse a Retry-After header (delta-seconds or HTTP-date) into a delay in ms, capped at\n * maxDelay. Returns undefined when the header is absent or unparseable.\n */\nfunction parseRetryAfter(header: string | null): number | undefined {\n if (header === null) {\n return undefined;\n }\n const trimmed = header.trim();\n if (trimmed === \"\") {\n return undefined;\n }\n const seconds = Number(trimmed);\n if (Number.isFinite(seconds)) {\n const ms = seconds * 1000;\n return Math.min(Math.max(ms, 0), RETRY_MAX_DELAY_MS);\n }\n const dateMs = Date.parse(trimmed);\n if (Number.isFinite(dateMs)) {\n const delta = dateMs - Date.now();\n return Math.min(Math.max(delta, 0), RETRY_MAX_DELAY_MS);\n }\n return undefined;\n}\n\n/**\n * Compose the caller's AbortSignal (if any) with a per-request timeout signal so the\n * request aborts on whichever fires first.\n */\nfunction composeSignal(\n timeoutMs: number,\n callerSignal: AbortSignal | undefined,\n): { signal: AbortSignal; timeoutSignal: AbortSignal } {\n const timeoutSignal = AbortSignal.timeout(timeoutMs);\n if (!callerSignal) {\n return { signal: timeoutSignal, timeoutSignal };\n }\n // AbortSignal.any composes multiple signals; available on Node >=20 / modern runtimes.\n const anyFn = (\n AbortSignal as { any?: (signals: AbortSignal[]) => AbortSignal }\n ).any;\n if (typeof anyFn === \"function\") {\n return { signal: anyFn([timeoutSignal, callerSignal]), timeoutSignal };\n }\n // Fallback: manually bridge both signals into a controller.\n const controller = new AbortController();\n const abort = (reason: unknown) => controller.abort(reason);\n if (callerSignal.aborted) {\n controller.abort(callerSignal.reason);\n } else {\n callerSignal.addEventListener(\"abort\", () => abort(callerSignal.reason), {\n once: true,\n });\n }\n if (timeoutSignal.aborted) {\n controller.abort(timeoutSignal.reason);\n } else {\n timeoutSignal.addEventListener(\"abort\", () => abort(timeoutSignal.reason), {\n once: true,\n });\n }\n return { signal: controller.signal, timeoutSignal };\n}\n\n/**\n * True when an abort reason denotes a timeout (TimeoutError DOMException from\n * AbortSignal.timeout) rather than a caller cancellation.\n */\nfunction isTimeoutSignal(\n timeoutSignal: AbortSignal,\n callerSignal?: AbortSignal,\n): boolean {\n if (!timeoutSignal.aborted) {\n return false;\n }\n // If the caller signal also aborted, prefer the caller's cancellation semantics only\n // when the timeout did not fire; here timeout did fire, so treat as timeout.\n return callerSignal?.aborted !== true || timeoutSignal.aborted;\n}\n\n/**\n * Build the request URL with response-shaping query params from options. See SPEC 2.2.\n */\nfunction buildUrl(\n baseUrl: string,\n slug: string,\n options?: RequestOptions,\n): string {\n const base = baseUrl.replace(/\\/+$/, \"\");\n const url = new URL(`${base}/v1/run/${slug}`);\n if (options?.fields && options.fields.length > 0) {\n url.searchParams.set(\"fields\", options.fields.join(\",\"));\n }\n if (options?.maxItems !== undefined) {\n url.searchParams.set(\"max_items\", String(options.maxItems));\n }\n if (options?.summary === true) {\n url.searchParams.set(\"summary\", \"true\");\n }\n return url.toString();\n}\n\n/**\n * Extract an error message from a non-200 body: the JSON `error` field when present,\n * else a generic status-derived fallback.\n */\nfunction messageFromBody(body: string, status: number): string {\n if (body) {\n try {\n const parsed = JSON.parse(body) as { error?: unknown };\n if (typeof parsed.error === \"string\" && parsed.error !== \"\") {\n return parsed.error;\n }\n } catch {\n // not JSON; fall through\n }\n }\n return `request failed with status ${status}`;\n}\n\n/**\n * The concrete network runtime. `AnyAPI` extends this and generated namespaces attach as\n * lazy getters on subclasses/augmentations. Handwritten; see SPEC 2.1/2.2.\n */\nexport class AnyAPI implements ClientCore {\n private readonly apiKey: string | undefined;\n private readonly baseUrl: string;\n private readonly fetchImpl: typeof fetch;\n private readonly maxRetries: number;\n private readonly timeoutMs: number;\n\n /**\n * The network seam the generated per-platform namespaces target. The base client IS a\n * ClientCore (it implements `run`), so the generated subclass hands `this._core` to each\n * namespace constructor. Kept protected so it is not part of the public surface.\n */\n protected readonly _core: ClientCore = this;\n\n constructor(options: ClientOptions = {}) {\n this.apiKey = options.apiKey ?? envApiKey();\n if (!this.apiKey) {\n throw new AnyAPIError(\"no API key: pass apiKey or set ANYAPI_API_KEY\", 0);\n }\n this.baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;\n const resolvedFetch = options.fetch ?? globalThis.fetch;\n if (typeof resolvedFetch !== \"function\") {\n throw new AnyAPIError(\n \"no fetch implementation available: pass options.fetch or run on a runtime with global fetch\",\n 0,\n );\n }\n this.fetchImpl = resolvedFetch;\n this.maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;\n this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n }\n\n /**\n * Generic run for any SKU by slug (the untyped network seam + the string fallback). The\n * generated `AnyAPI` subclass adds typed literal-slug overloads on top (SPEC 2.1); this\n * base signature is the fallback that returns RunResult<unknown> for an unknown slug.\n */\n run<T = unknown>(\n slug: string,\n input: unknown,\n options?: RequestOptions,\n ): Promise<RunResult<T>> {\n return this.request<RunResult<T>>(\n \"POST\",\n buildUrl(this.baseUrl, slug, options),\n {\n body: JSON.stringify(input ?? {}),\n timeoutMs: options?.timeoutMs ?? this.timeoutMs,\n maxRetries: options?.maxRetries ?? this.maxRetries,\n ...(options?.signal ? { signal: options.signal } : {}),\n },\n );\n }\n\n /** Current wallet balance in USD. GET /v1/balance. See SPEC 2.7. */\n balance(): Promise<{ usd: number }> {\n return this.httpGet<{ usd: number }>(\"/v1/balance\");\n }\n\n /** The authenticated account profile. GET /v1/me. See SPEC 2.7. */\n async me(): Promise<AccountProfile> {\n const raw = await this.httpGet<ProfileResponse>(\"/v1/me\");\n return mapProfile(raw);\n }\n\n /** Browse catalog SKUs, optionally scoped by category. GET /v1/apis. */\n async catalog(options: CatalogOptions = {}): Promise<CatalogEntry[]> {\n const search = new URLSearchParams();\n if (options.category) {\n search.set(\"category\", options.category);\n }\n const qs = search.toString();\n const raw = await this.httpGet<CatalogListResponse>(\n qs ? `/v1/apis?${qs}` : \"/v1/apis\",\n );\n return mapCatalogList(raw);\n }\n\n /** Ranked catalog search. GET /catalog/search. Browse never accepts a query. */\n async search(options: SearchOptions): Promise<CatalogSearchResults> {\n const search = new URLSearchParams({ q: options.query });\n if (options.category) search.set(\"category\", options.category);\n if (options.platform) search.set(\"platform\", options.platform);\n if (options.limit !== undefined) search.set(\"limit\", String(options.limit));\n const raw = await this.httpGet<unknown>(\n `/catalog/search?${search.toString()}`,\n );\n return mapCatalogSearch(raw);\n }\n\n /** Describe a single SKU by slug. GET /v1/apis/{slug}. 404 -> NotFoundError. See SPEC 2.7. */\n async describe(slug: string): Promise<CatalogEntry> {\n const raw = await this.httpGet<CatalogEntryResponse>(\n `/v1/apis/${encodeURIComponent(slug)}`,\n );\n return mapCatalogDetail(raw);\n }\n\n /** Internal GET against the gateway with the same auth/retry/error machinery. */\n private httpGet<T>(path: string): Promise<T> {\n return this.request<T>(\"GET\", `${this.gatewayBaseUrl}${path}`, {\n timeoutMs: this.timeoutMs,\n maxRetries: this.maxRetries,\n });\n }\n\n /**\n * Shared request machinery for run + account GET helpers. Owns auth headers, retry,\n * timeout, abort composition, JSON parse, and status->error mapping. See SPEC 2.2/2.8.\n */\n protected async request<T>(\n method: string,\n url: string,\n opts: {\n body?: string;\n timeoutMs: number;\n maxRetries: number;\n signal?: AbortSignal;\n },\n ): Promise<T> {\n const headers: Record<string, string> = {\n Accept: \"application/json\",\n };\n if (opts.body !== undefined) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n if (this.apiKey) {\n headers[\"Authorization\"] = `Bearer ${this.apiKey}`;\n }\n\n let attempt = 0;\n for (;;) {\n const { signal, timeoutSignal } = composeSignal(\n opts.timeoutMs,\n opts.signal,\n );\n let response: Response;\n try {\n response = await this.fetchImpl(url, {\n method,\n headers,\n ...(opts.body !== undefined ? { body: opts.body } : {}),\n signal,\n });\n } catch (err) {\n // Distinguish timeout from a genuine transport failure.\n if (isTimeoutSignal(timeoutSignal, opts.signal)) {\n throw new TimeoutError(\"request timed out\", 0);\n }\n if (opts.signal?.aborted) {\n throw new ConnectionError(\"request aborted\", 0);\n }\n // Network / DNS / connection reset: retryable.\n const connErr = new ConnectionError(\n err instanceof Error ? err.message : \"connection failed\",\n 0,\n );\n if (attempt < opts.maxRetries) {\n await sleep(backoffDelay(attempt), opts.signal);\n attempt += 1;\n continue;\n }\n throw connErr;\n }\n\n const requestId = response.headers.get(\"x-request-id\") ?? undefined;\n\n if (response.status === 200) {\n const text = await response.text();\n try {\n return JSON.parse(text) as T;\n } catch {\n throw new AnyAPIError(\n \"failed to parse response JSON\",\n 200,\n requestId,\n );\n }\n }\n\n // Non-200: read body for the error message, then map to a typed error.\n const body = await response.text().catch(() => \"\");\n const message = messageFromBody(body, response.status);\n\n if (response.status === 429 && attempt < opts.maxRetries) {\n const retryAfter = parseRetryAfter(response.headers.get(\"retry-after\"));\n const delay = retryAfter ?? backoffDelay(attempt);\n await sleep(delay, opts.signal);\n attempt += 1;\n continue;\n }\n\n throw errorFromStatus(response.status, message, requestId);\n }\n }\n\n /** Internal accessor for GET helpers in account.ts (same base URL / machinery). */\n protected get gatewayBaseUrl(): string {\n return this.baseUrl.replace(/\\/+$/, \"\");\n }\n\n protected get clientMaxRetries(): number {\n return this.maxRetries;\n }\n\n protected get clientTimeoutMs(): number {\n return this.timeoutMs;\n }\n}\n","// Handwritten runtime core: shared types for @getanyapi/sdk.\n// See SPEC.md sections 2.1, 2.3, 2.7. Named exports only; zero runtime deps.\n\n/**\n * The normalized run envelope returned by /v1/run/{slug}.\n */\nexport interface RunResult<T> {\n /** Discriminated on `found`. */\n output: Output<T>;\n /** Always the literal \"AnyAPI\". Upstream providers are never named. */\n provider: \"AnyAPI\";\n /** Amount charged in USD for this call. */\n costUsd: number;\n /** Number of result rows returned (present on per-result SKUs). */\n items?: number;\n /** Optional server nudge when a large result was returned untrimmed. */\n hint?: string;\n}\n\n/**\n * Discriminated union on `found`. When found is false, data is null.\n */\nexport type Output<T> = { found: true; data: T } | { found: false; data: null };\n\n/**\n * The conditional run envelope for an operation whose response has no `{ found, data }`\n * wrapper (SPEC 1.2 erratum). If a future generated operation uses this shape, its data\n * object is returned directly as `output`; there is no not-found branch to discriminate.\n */\nexport interface BareRunResult<T> {\n /** The data payload directly (no found/data wrapper). */\n output: T;\n /** Always the literal \"AnyAPI\". Upstream providers are never named. */\n provider: \"AnyAPI\";\n /** Amount charged in USD for this call. */\n costUsd: number;\n /** Number of result rows returned (present on per-result SKUs). */\n items?: number;\n /** Optional server nudge when a large result was returned untrimmed. */\n hint?: string;\n}\n\n/**\n * Return the data payload when found, or throw ResultNotFoundError when the upstream had no\n * matching entity. Narrows Output<T> to T.\n *\n * Two overloads: a found-data RunResult may be empty (throws when found is false); a bare\n * result always carries its data (returns output directly, never throws).\n */\nexport function unwrap<T>(result: BareRunResult<T>): T;\nexport function unwrap<T>(result: RunResult<T>): T;\nexport function unwrap<T>(result: RunResult<T> | BareRunResult<T>): T {\n const output = (result as { output: unknown }).output;\n // Found-data envelope: an object carrying a boolean `found` discriminator.\n if (\n output !== null &&\n typeof output === \"object\" &&\n \"found\" in (output as Record<string, unknown>)\n ) {\n const env = output as { found: boolean; data: T };\n if (env.found) {\n return env.data;\n }\n // Imported lazily-shaped through the errors module to keep this file dependency-light.\n throw new ResultNotFoundError(\"no matching result was found\", 404);\n }\n // Bare result: output IS the data payload.\n return output as T;\n}\n\n/**\n * Per-request options shaping the response and controlling retry/timeout. See SPEC 2.7.\n */\nexport interface RequestOptions {\n /** Keep only these keys on each result item (dotted paths descend). Shrinks the response, not the cost. */\n fields?: string[];\n /** Cap result rows returned (wire max_items). Does not change cost. On iterators, caps total items yielded. */\n maxItems?: number;\n /** Return only a structural outline instead of full data. Does not change cost. */\n summary?: boolean;\n /** Override the client per-request timeout (ms) for this call. */\n timeoutMs?: number;\n /** AbortSignal to cancel this request. */\n signal?: AbortSignal;\n /** Override the client maxRetries for this call. */\n maxRetries?: number;\n}\n\n/**\n * Client construction options. See SPEC 2.1.\n */\nexport interface ClientOptions {\n /** Your AnyAPI key. Falls back to process.env.ANYAPI_API_KEY when omitted. */\n apiKey?: string;\n /** Gateway base URL. Defaults to \"https://api.getanyapi.com\". */\n baseUrl?: string;\n /** Custom fetch implementation. Defaults to globalThis.fetch. */\n fetch?: typeof fetch;\n /** Max retry attempts for retryable failures (429 + network). Default 2. */\n maxRetries?: number;\n /** Per-request timeout in milliseconds. Default 60000. */\n timeoutMs?: number;\n}\n\n/**\n * Account profile returned by /v1/me (internal-only fields dropped). See SPEC 2.7.\n */\nexport interface AccountProfile {\n id: string;\n email?: string;\n status: string;\n createdAt: string;\n onboardingComplete: boolean;\n}\n\n/** Category-only browse options. Ranked queries belong to search(). See SPEC 2.7. */\nexport interface CatalogOptions {\n category?: string;\n}\n\n/** A fixed per-request discovery offer. */\nexport interface FlatPricingOffer {\n model: \"flat\";\n unit: \"request\";\n maxUsd: number;\n}\n\n/** A capped base-plus-unit discovery offer. */\nexport interface LinearPricingOffer {\n model: \"linear\";\n unit: string;\n baseUsd: number;\n perUnitUsd: number;\n maxUsd: number;\n}\n\nexport type PricingOffer = FlatPricingOffer | LinearPricingOffer;\n\nexport interface DiscoveryPricing {\n from: PricingOffer;\n failoverMaxUsd: number;\n}\n\nexport interface LaneHealth {\n window: \"30d\";\n uptimePct: number;\n latencyP50Ms: number;\n requests: number;\n}\n\nexport interface DiscoveryLane {\n pricing: PricingOffer;\n health?: LaneHealth;\n}\n\n/** One customer-safe API returned by catalog() or describe(). */\nexport interface CatalogEntry {\n id: string;\n slug: string;\n name: string;\n category: string;\n description: string;\n provider: \"AnyAPI\";\n pricing: DiscoveryPricing;\n lanes: DiscoveryLane[];\n heavy: boolean;\n tryEligible: boolean;\n inputSchema?: Record<string, unknown>;\n outputSchema?: Record<string, unknown>;\n}\n\nexport interface SearchOptions {\n query: string;\n category?: string;\n platform?: string;\n limit?: number;\n}\n\nexport interface HighlightField {\n path: string;\n type: string;\n why?: string;\n}\n\nexport interface CatalogSearchResult {\n slug: string;\n platformId: string;\n name: string;\n description: string;\n category: string;\n provider: \"AnyAPI\";\n pricing: DiscoveryPricing;\n relevance: number;\n highlightFields?: HighlightField[];\n}\n\nexport interface CatalogSearchResults {\n results: CatalogSearchResult[];\n total: number;\n ranking: \"semantic\" | \"keyword\";\n}\n\n/**\n * Options for standalone agent self-signup (no key required). See SPEC 2.7.\n */\nexport interface AgentSignupOptions {\n /** Gateway base URL. Defaults to \"https://api.getanyapi.com\". */\n baseUrl?: string;\n /** Custom fetch implementation. Defaults to globalThis.fetch. */\n fetch?: typeof fetch;\n /** Optional human verification channel. */\n sponsorEmail?: string;\n /** Optional key label. */\n label?: string;\n}\n\n/**\n * Result of a successful agent self-signup. See SPEC 2.7.\n */\nexport interface AgentSignupResult {\n /** The API key, returned once. */\n secret: string;\n /** Per-key spend cap in USD. */\n capUsd: number;\n claimToken: string;\n claimUrl: string;\n}\n\nimport { ResultNotFoundError } from \"./errors.js\";\n","// Handwritten runtime core: cursor pagination. See SPEC.md 2.5. The emitter targets\n// `paginate(core, slug, input, itemsField, bare, options)`. Named exports only; zero deps.\n\nimport type { ClientCore } from \"./client.js\";\nimport type { BareRunResult, RequestOptions, RunResult } from \"./types.js\";\n\n/**\n * An async-iterable of flattened items that also exposes whole pages. See SPEC 2.5. `Page`\n * is the page result type: `RunResult<Data>` for found-data SKUs, `BareRunResult<Data>` for\n * bare SKUs (SPEC 1.2 erratum).\n */\nexport interface Paginator<Item, Page> extends AsyncIterable<Item> {\n /** Iterate whole pages (each a run result) instead of flattened items. */\n pages(): AsyncIterable<Page>;\n}\n\n/** Read the page data object from either envelope, or null when a found-data page is empty. */\nfunction pageData(result: { output: unknown }, bare: boolean): Record<string, unknown> | null {\n if (bare) {\n const out = result.output;\n return out !== null && typeof out === \"object\"\n ? (out as Record<string, unknown>)\n : null;\n }\n const env = result.output as { found?: boolean; data?: unknown };\n if (!env || env.found !== true || env.data === null || env.data === undefined) {\n return null;\n }\n return env.data as Record<string, unknown>;\n}\n\n/**\n * Walk a paginated SKU: run page 1, then follow `nextCursor` until it is null/empty.\n * `itemsField` is the array property on the page data holding the page items. `bare`\n * selects the envelope: found-data (`output.data`) or bare (`output` is the data).\n *\n * Walk semantics (SPEC 2.5):\n * - Stop when the page data is null (found:false / null data, or a non-object bare output).\n * - Yield each item from `itemsField`, then follow a non-empty string `nextCursor` by\n * setting `input.cursor` and repeating.\n * - `options.maxItems` caps the TOTAL items yielded across all pages. It is NOT sent as\n * the wire `max_items` shaping param (the iterator manages paging itself).\n * - `.pages()` yields each run result (including the last) and stops on null nextCursor.\n */\nexport function paginate<Item, Page extends RunResult<unknown> | BareRunResult<unknown>>(\n core: ClientCore,\n slug: string,\n input: Record<string, unknown>,\n itemsField: string,\n bare: boolean,\n options?: RequestOptions,\n): Paginator<Item, Page> {\n // The iterator manages max_items itself; never forward it to the wire.\n const wireOptions: RequestOptions | undefined = stripMaxItems(options);\n const maxItems = options?.maxItems;\n\n async function* walkPages(): AsyncGenerator<Page, void, unknown> {\n let cursor: string | undefined;\n for (;;) {\n const pageInput: Record<string, unknown> = { ...input };\n if (cursor !== undefined) {\n pageInput[\"cursor\"] = cursor;\n }\n const result = (await core.run<unknown>(slug, pageInput, wireOptions)) as Page;\n yield result;\n\n const data = pageData(result, bare);\n if (data === null) {\n return;\n }\n const next = data[\"nextCursor\"];\n if (typeof next !== \"string\" || next === \"\") {\n return;\n }\n cursor = next;\n }\n }\n\n async function* walkItems(): AsyncGenerator<Item, void, unknown> {\n let yielded = 0;\n for await (const page of walkPages()) {\n const data = pageData(page, bare);\n if (data === null) {\n return;\n }\n const items = data[itemsField];\n if (!Array.isArray(items)) {\n continue;\n }\n for (const item of items) {\n if (maxItems !== undefined && yielded >= maxItems) {\n return;\n }\n yield item as Item;\n yielded += 1;\n }\n if (maxItems !== undefined && yielded >= maxItems) {\n return;\n }\n }\n }\n\n const paginator: Paginator<Item, Page> = {\n [Symbol.asyncIterator]: () => walkItems(),\n pages: () => ({ [Symbol.asyncIterator]: () => walkPages() }),\n };\n return paginator;\n}\n\n/** Return options without the maxItems key (iterator caps totals client-side). */\nfunction stripMaxItems(options?: RequestOptions): RequestOptions | undefined {\n if (!options) {\n return undefined;\n }\n const { maxItems: _maxItems, ...rest } = options;\n void _maxItems;\n return rest;\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Ahrefs Backlinks (ahrefs.backlinks).\n */\nexport interface AhrefsBacklinksInput {\n /**\n * Match scope: \"exact\" for the given URL only, or \"subdomains\" to include the domain and its subdomains.\n * One of: exact, subdomains.\n * Default: subdomains.\n */\n mode?: \"exact\" | \"subdomains\";\n /**\n * The domain or page URL to find backlinks for (e.g. \"ahrefs.com\").\n */\n url: string;\n}\n\nexport interface AhrefsBacklinksItem {\n /**\n * Anchor text of the link.\n */\n anchor?: string;\n /**\n * Text immediately after the anchor on the referring page.\n */\n contextAfter?: string;\n /**\n * Text immediately before the anchor on the referring page.\n */\n contextBefore?: string;\n /**\n * Ahrefs Domain Rating (0-100) of the linking domain.\n */\n domainRating?: number;\n /**\n * Title of the referring page.\n */\n title?: string;\n /**\n * URL of the referring page that contains the link. Populated whenever the provider has data for the entity.\n */\n urlFrom: string;\n /**\n * Target URL the link points to.\n */\n urlTo?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Ahrefs Backlinks (ahrefs.backlinks).\n */\nexport interface AhrefsBacklinksData {\n /**\n * Referring pages that link to the domain or URL. Populated whenever the provider has data for the entity.\n */\n items: AhrefsBacklinksItem[];\n}\n\n/**\n * Input for Ahrefs Keyword Ideas (ahrefs.keyword_ideas).\n */\nexport interface AhrefsKeywordIdeasInput {\n /**\n * Two-letter country code that scopes the suggestions (e.g. us, gb, de).\n * Default: us.\n */\n country?: string;\n /**\n * The seed keyword to expand into related suggestions (e.g. \"coffee\").\n */\n keyword: string;\n}\n\nexport interface AhrefsKeywordIdeasItem {\n /**\n * Two-letter country code the suggestions are scoped to.\n */\n country?: string;\n /**\n * Related keyword suggestions for the seed term. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n ideas?: AhrefsKeywordIdeasIdea[];\n /**\n * Search engine the suggestions are drawn from (e.g. Google).\n */\n searchEngine?: string;\n /**\n * The seed keyword the suggestions were expanded from. Populated whenever the provider has data for the entity.\n */\n sourceKeyword: string;\n [extra: string]: unknown;\n}\n\nexport interface AhrefsKeywordIdeasIdea {\n /**\n * Relative Ahrefs difficulty bucket (a letter such as E, M, or H), not an exact number.\n */\n difficulty?: string;\n /**\n * The suggested related keyword. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Timestamp the suggestion metrics were last updated.\n */\n updatedAt?: string;\n /**\n * Relative search-volume bucket (a letter grade), not an exact number.\n */\n volume?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Ahrefs Keyword Ideas (ahrefs.keyword_ideas).\n */\nexport interface AhrefsKeywordIdeasData {\n /**\n * Keyword-idea records: the seed keyword and its related keyword suggestions, each with an Ahrefs difficulty and search-volume bucket. Populated whenever the provider has data for the entity.\n */\n items: AhrefsKeywordIdeasItem[];\n}\n\n/**\n * Input for Ahrefs Keyword Difficulty (ahrefs.keywords).\n */\nexport interface AhrefsKeywordsInput {\n /**\n * Two-letter country code that scopes volume and difficulty (e.g. us, gb, de).\n * Default: us.\n */\n country?: string;\n /**\n * The search term to analyze (e.g. \"seo tools\").\n */\n keyword: string;\n}\n\nexport interface AhrefsKeywordsItem {\n /**\n * Two-letter country code the metrics are scoped to.\n */\n country?: string;\n /**\n * Ahrefs Keyword Difficulty, 0-100.\n */\n difficulty?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated number of referring domains a page needs to rank in the top 10 for this keyword.\n */\n referringDomainsToRank?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Ahrefs Keyword Difficulty (ahrefs.keywords).\n */\nexport interface AhrefsKeywordsData {\n /**\n * Keyword-difficulty records: the difficulty score and the referring-domain gap needed to rank in the top 10. Populated whenever the provider has data for the entity.\n */\n items: AhrefsKeywordsItem[];\n}\n\n/**\n * Input for Ahrefs Domain Overview (ahrefs.overview).\n */\nexport interface AhrefsOverviewInput {\n /**\n * Analysis scope: subdomains covers the whole domain, exact matches only the given URL.\n * One of: exact, subdomains.\n * Default: subdomains.\n */\n mode?: \"exact\" | \"subdomains\";\n /**\n * The domain or page URL to analyze (e.g. ahrefs.com).\n */\n url: string;\n}\n\nexport interface AhrefsOverviewItem {\n /**\n * Total number of backlinks pointing to the domain.\n */\n backlinks?: number;\n /**\n * Percentage (0-100) of backlinks that are dofollow.\n */\n dofollowBacklinksPct?: number;\n /**\n * Percentage (0-100) of referring domains that provide a dofollow link.\n */\n dofollowReferringDomainsPct?: number;\n /**\n * The domain or URL the metrics are scoped to. Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Ahrefs Domain Rating, 0-100, measuring backlink-profile strength.\n */\n domainRating?: number;\n /**\n * Analysis scope used: subdomains (whole domain) or exact (the given URL only).\n */\n mode?: string;\n /**\n * Number of unique referring domains linking to the domain.\n */\n referringDomains?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Ahrefs Domain Overview (ahrefs.overview).\n */\nexport interface AhrefsOverviewData {\n /**\n * Domain authority records: the requested domain plus its Domain Rating, total backlinks, and referring-domain counts. Populated whenever the provider has data for the entity.\n */\n items: AhrefsOverviewItem[];\n}\n\n/**\n * Typed methods for the ahrefs platform. Attached to the AnyAPI client as\n * `client.ahrefs`.\n */\nexport class AhrefsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Ahrefs Backlinks\n *\n * Get the referring pages linking to a domain or URL, each with the source page, anchor text, linking domain rating, and page title.\n *\n * Price: $0.0195 per request plus $0 per result (maximum $0.0195).\n *\n * @example\n * const res = await client.ahrefs.backlinks({ url: \"ahrefs.com\", mode: \"exact\" });\n */\n backlinks(\n input: AhrefsBacklinksInput,\n options?: RequestOptions,\n ): Promise<RunResult<AhrefsBacklinksData>> {\n return this._core.run(\"ahrefs.backlinks\", input, options);\n }\n\n /**\n * Ahrefs Keyword Ideas\n *\n * Get related keyword suggestions for any seed term, each with an Ahrefs difficulty and search-volume bucket.\n *\n * Price: $0.0015 per request plus $0.018 per result (maximum $0.0195).\n *\n * @example\n * const res = await client.ahrefs.keywordIdeas({ keyword: \"coffee\", country: \"us\" });\n */\n keywordIdeas(\n input: AhrefsKeywordIdeasInput,\n options?: RequestOptions,\n ): Promise<RunResult<AhrefsKeywordIdeasData>> {\n return this._core.run(\"ahrefs.keyword_ideas\", input, options);\n }\n\n /**\n * Ahrefs Keyword Difficulty\n *\n * Get the Ahrefs keyword-difficulty metrics for any search term: the difficulty score (0-100) and the number of referring domains a page needs to rank in the top 10 - as normalized JSON.\n *\n * Price: $0.0015 per request plus $0.018 per result (maximum $0.0195).\n *\n * @example\n * const res = await client.ahrefs.keywords({ keyword: \"seo tools\", country: \"us\" });\n */\n keywords(\n input: AhrefsKeywordsInput,\n options?: RequestOptions,\n ): Promise<RunResult<AhrefsKeywordsData>> {\n return this._core.run(\"ahrefs.keywords\", input, options);\n }\n\n /**\n * Ahrefs Domain Overview\n *\n * Get an SEO authority overview for any domain or URL: Domain Rating, total backlinks, and referring domains - as normalized JSON.\n *\n * Price: $0.0015 per request plus $0.018 per result (maximum $0.0195).\n *\n * @example\n * const res = await client.ahrefs.overview({ url: \"ahrefs.com\", mode: \"subdomains\" });\n */\n overview(\n input: AhrefsOverviewInput,\n options?: RequestOptions,\n ): Promise<RunResult<AhrefsOverviewData>> {\n return this._core.run(\"ahrefs.overview\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Airbnb Search (airbnb.search).\n */\nexport interface AirbnbSearchInput {\n /**\n * Number of adult guests (e.g. 2).\n * Range: minimum 1.\n */\n adults?: number;\n /**\n * Check-in date in YYYY-MM-DD format (e.g. 2026-07-01).\n * Format: date.\n */\n checkIn?: string;\n /**\n * Check-out date in YYYY-MM-DD format (e.g. 2026-07-05).\n * Format: date.\n */\n checkOut?: string;\n /**\n * Number of child guests (e.g. 1).\n * Range: minimum 0.\n */\n children?: number;\n /**\n * Currency code for prices (e.g. EUR).\n * One of: USD, CZK, AUD, BRL, BGN, CAD, CLP, CNY, COP, CRC, HRK, DKK, EGP, AED, EUR, GHS, HKD, HUF, INR, IDR, ILS, JPY, KZT, KES, MYR, MXN, MAD, TWD, NZD, NOK, PEN, PHP, PLN, GBP, QAR, RON, SAR, SGD, ZAR, KRW, SEK, CHF, THB, TRY, UGX, UAH, UYU, VND.\n * Default: USD.\n */\n currency?:\n | \"USD\"\n | \"CZK\"\n | \"AUD\"\n | \"BRL\"\n | \"BGN\"\n | \"CAD\"\n | \"CLP\"\n | \"CNY\"\n | \"COP\"\n | \"CRC\"\n | \"HRK\"\n | \"DKK\"\n | \"EGP\"\n | \"AED\"\n | \"EUR\"\n | \"GHS\"\n | \"HKD\"\n | \"HUF\"\n | \"INR\"\n | \"IDR\"\n | \"ILS\"\n | \"JPY\"\n | \"KZT\"\n | \"KES\"\n | \"MYR\"\n | \"MXN\"\n | \"MAD\"\n | \"TWD\"\n | \"NZD\"\n | \"NOK\"\n | \"PEN\"\n | \"PHP\"\n | \"PLN\"\n | \"GBP\"\n | \"QAR\"\n | \"RON\"\n | \"SAR\"\n | \"SGD\"\n | \"ZAR\"\n | \"KRW\"\n | \"SEK\"\n | \"CHF\"\n | \"THB\"\n | \"TRY\"\n | \"UGX\"\n | \"UAH\"\n | \"UYU\"\n | \"VND\";\n /**\n * Number of infant guests (e.g. 1).\n * Range: minimum 0.\n */\n infants?: number;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Location to search listings in (e.g. London).\n */\n location: string;\n /**\n * Minimum number of bathrooms (e.g. 2).\n * Range: minimum 0.\n */\n minBathrooms?: number;\n /**\n * Minimum number of bedrooms (e.g. 2).\n * Range: minimum 0.\n */\n minBedrooms?: number;\n /**\n * Minimum number of beds (e.g. 2).\n * Range: minimum 0.\n */\n minBeds?: number;\n /**\n * Number of pets; only pet-friendly listings are returned when set (e.g. 1).\n * Range: minimum 0.\n */\n pets?: number;\n /**\n * Maximum search price in the selected currency (e.g. 300).\n * Range: minimum 0.\n */\n priceMax?: number;\n /**\n * Minimum search price in the selected currency (e.g. 50).\n * Range: minimum 0.\n */\n priceMin?: number;\n}\n\nexport interface AirbnbSearchItem {\n hostName?: string;\n /**\n * Airbnb listing identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Primary listing image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n isAvailable?: boolean;\n isSuperhost?: boolean;\n latitude?: number;\n /**\n * Location subtitle.\n */\n location?: string;\n longitude?: number;\n personCapacity?: number;\n /**\n * Total-stay price label returned by Airbnb (e.g. $3,149 total).\n */\n price?: string;\n propertyType?: string;\n /**\n * Guest satisfaction rating (0-5).\n */\n rating?: number;\n reviewsCount?: number;\n roomType?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Airbnb Search (airbnb.search).\n */\nexport interface AirbnbSearchData {\n /**\n * Listing records: name, total-stay price label, rating, location, host info, and availability details. Populated whenever the provider has data for the entity.\n */\n items: AirbnbSearchItem[];\n}\n\n/**\n * Typed methods for the airbnb platform. Attached to the AnyAPI client as\n * `client.airbnb`.\n */\nexport class AirbnbNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Airbnb Search\n *\n * Search Airbnb listings by location and dates with optional price, beds/bedrooms/bathrooms, and guest-party filters and get results (name, total-stay price label, rating, host) as normalized JSON.\n *\n * Price: $0.00008 per request plus $0.0015 per result (maximum $0.03008).\n *\n * @example\n * const res = await client.airbnb.search({ location: \"San Diego\", adults: 2, limit: 3, minBedrooms: 3 });\n */\n search(\n input: AirbnbSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<AirbnbSearchData>> {\n return this._core.run(\"airbnb.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Alibaba Search (alibaba.search).\n */\nexport interface AlibabaSearchInput {\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Keywords to search for on Alibaba (e.g. \"bluetooth speaker wholesale\").\n */\n query: string;\n}\n\nexport interface AlibabaSearchItem {\n /**\n * Supplier country ISO code, e.g. \"CN\".\n */\n countryCode?: string;\n /**\n * Primary product image URL.\n */\n image?: string;\n /**\n * Minimum order quantity text, e.g. \"Min. order: 1 piece\".\n */\n moq?: string;\n /**\n * Price or price range as displayed, e.g. \"$40.80-45.80\" (Alibaba lists ranges, not a single numeric value).\n */\n priceText?: string;\n /**\n * Discounted promotional price when the listing is on sale; empty otherwise.\n */\n promotionPrice?: string;\n /**\n * Average buyer review score, 0-5; 0 when the listing has no reviews.\n */\n rating?: number;\n /**\n * Number of buyer reviews; 0 when none.\n */\n reviewCount?: number;\n /**\n * Supplier / company name.\n */\n supplierName?: string;\n /**\n * Gold Supplier tenure text, e.g. \"3 yrs\"; empty when not a Gold Supplier.\n */\n supplierYears?: string;\n /**\n * Listing title as shown on Alibaba (may contain the supplier's inline markup). Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical product detail page URL (tracking query params stripped). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Alibaba Search (alibaba.search).\n */\nexport interface AlibabaSearchData {\n /**\n * Matching Alibaba wholesale listings. Populated whenever the provider has data for the entity.\n */\n items: AlibabaSearchItem[];\n}\n\n/**\n * Typed methods for the alibaba platform. Attached to the AnyAPI client as\n * `client.alibaba`.\n */\nexport class AlibabaNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Alibaba Search\n *\n * Search Alibaba by keyword and get up to 25 wholesale listings (title, price range, minimum order, and supplier) in one normalized response.\n *\n * Price: $0 per request plus $0.0012 per result (maximum $0.03).\n *\n * @example\n * const res = await client.alibaba.search({ query: \"bluetooth speaker\", limit: 3 });\n */\n search(\n input: AlibabaSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<AlibabaSearchData>> {\n return this._core.run(\"alibaba.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Amazon Products by ASIN (amazon.asins).\n */\nexport interface AmazonAsinsInput {\n /**\n * Amazon marketplace domain to fetch products from (e.g. amazon.com, amazon.de, amazon.co.uk).\n * Default: amazon.com.\n */\n amazonDomain?: string;\n /**\n * Up to 10 Amazon ASINs to look up (e.g. [\"B0CHX1W1XY\", \"B09G9FPHY6\"]).\n */\n asins: string[];\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n}\n\nexport interface AmazonAsinsItem {\n /**\n * Amazon Standard Identification Number. Populated whenever the provider has data for the entity.\n */\n asin: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n brand?: string;\n condition?: string;\n currency?: string;\n /**\n * Primary product image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n inStock?: boolean;\n /**\n * Buy-box price; 0 when no offer is available.\n */\n price?: number;\n /**\n * Average star rating, 0-5.\n */\n rating?: number;\n reviewsCount?: number;\n sellerName?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Products by ASIN (amazon.asins).\n */\nexport interface AmazonAsinsData {\n /**\n * Product records: ASIN, title, brand, price, ratings, images, and attributes. Populated whenever the provider has data for the entity.\n */\n items: AmazonAsinsItem[];\n}\n\n/**\n * Input for Amazon Bestsellers (amazon.bestsellers).\n */\nexport interface AmazonBestsellersInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Amazon Best Sellers category URL (e.g. https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics).\n */\n url: string;\n}\n\nexport interface AmazonBestsellersItem {\n /**\n * Amazon Standard Identification Number. Populated whenever the provider has data for the entity.\n */\n asin: string;\n /**\n * Best Sellers category name the product ranks in.\n */\n categoryName?: string;\n /**\n * Price currency symbol or code, e.g. \"$\".\n */\n currency?: string;\n /**\n * Primary product thumbnail image URL.\n */\n image?: string;\n /**\n * Number of available offers; 0 when unknown.\n */\n offersCount?: number;\n /**\n * Listed price; 0 when no offer is available.\n */\n price?: number;\n /**\n * Best-seller rank within the category (1 = top).\n */\n rank?: number;\n /**\n * Average star rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Number of customer reviews; 0 when none.\n */\n reviewsCount?: number;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical product detail page URL (tracking query params stripped). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Bestsellers (amazon.bestsellers).\n */\nexport interface AmazonBestsellersData {\n /**\n * Best-seller product records ordered by category rank. Populated whenever the provider has data for the entity.\n */\n items: AmazonBestsellersItem[];\n}\n\n/**\n * Input for Amazon Product (amazon.product).\n */\nexport interface AmazonProductInput {\n /**\n * Full Amazon product URL (e.g. https://www.amazon.com/dp/B0CX23V2ZK).\n */\n url: string;\n}\n\nexport interface AmazonProductItem {\n /**\n * Amazon Standard Identification Number. Populated whenever the provider has data for the entity.\n */\n asin: string;\n /**\n * Manufacturer or brand name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n brand?: string;\n /**\n * Category breadcrumb path, e.g. \"Health & Household > Household Supplies\".\n */\n category?: string;\n /**\n * Item condition, e.g. \"New\"; empty when not reported.\n */\n condition?: string;\n /**\n * Price currency symbol or code, e.g. \"$\".\n */\n currency?: string;\n /**\n * Product description text; empty when the listing has none.\n */\n description?: string;\n /**\n * Bullet-point feature list from the listing.\n */\n features?: string[];\n /**\n * Primary product image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * High-resolution product image URLs.\n */\n images?: string[];\n /**\n * True when the product is purchasable.\n */\n inStock?: boolean;\n /**\n * Current buy-box price as a numeric amount; 0 when the listing has no buyable price (out of stock).\n */\n price?: number;\n /**\n * Average customer star rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Total number of customer reviews; 0 when none.\n */\n reviewsCount?: number;\n /**\n * Name of the seller fulfilling the buy box.\n */\n sellerName?: string;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical product detail page URL (tracking query params stripped). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Product (amazon.product).\n */\nexport interface AmazonProductData {\n /**\n * Product detail records (one per requested product URL). Populated whenever the provider has data for the entity.\n */\n items: AmazonProductItem[];\n}\n\n/**\n * Input for Amazon Reviews (amazon.reviews).\n */\nexport interface AmazonReviewsInput {\n /**\n * Only return reviews on or before this date, inclusive, in YYYY-MM-DD format (e.g. 2026-06-30).\n */\n endDate?: string;\n /**\n * Only return reviews whose text contains one of these keywords (e.g. [\"battery\", \"screen\"]).\n */\n keywords?: string[];\n /**\n * Maximum number of results to return (1-50, default 50). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 50.\n */\n limit?: number;\n /**\n * Amazon product ASIN or full product URL (e.g. B07CMS5Q6P).\n */\n product: string;\n /**\n * Only return reviews whose star rating is in this set (e.g. [\"5\", \"4\"] for 4 and 5 star reviews); omit for all ratings.\n */\n ratings?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n /**\n * Amazon marketplace domain the product ASIN belongs to (e.g. amazon.co.uk).\n * One of: amazon.com, amazon.ca, amazon.de, amazon.fr, amazon.co.uk, amazon.it, amazon.es, amazon.com.au, amazon.co.jp, amazon.com.br, amazon.com.mx, amazon.nl, amazon.ie, amazon.se, amazon.com.tr, amazon.ae, amazon.sg, amazon.sa, amazon.pl, amazon.com.be, amazon.eg, amazon.in.\n * Default: amazon.com.\n */\n region?:\n | \"amazon.com\"\n | \"amazon.ca\"\n | \"amazon.de\"\n | \"amazon.fr\"\n | \"amazon.co.uk\"\n | \"amazon.it\"\n | \"amazon.es\"\n | \"amazon.com.au\"\n | \"amazon.co.jp\"\n | \"amazon.com.br\"\n | \"amazon.com.mx\"\n | \"amazon.nl\"\n | \"amazon.ie\"\n | \"amazon.se\"\n | \"amazon.com.tr\"\n | \"amazon.ae\"\n | \"amazon.sg\"\n | \"amazon.sa\"\n | \"amazon.pl\"\n | \"amazon.com.be\"\n | \"amazon.eg\"\n | \"amazon.in\";\n /**\n * Review sort order: most helpful first or most recent first (e.g. recent).\n * One of: helpful, recent.\n * Default: helpful.\n */\n sort?: \"helpful\" | \"recent\";\n /**\n * Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).\n */\n startDate?: string;\n /**\n * Set true to return only verified-purchase reviews (e.g. true).\n * Default: false.\n */\n verifiedOnly?: boolean;\n}\n\nexport interface AmazonReviewsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. 0 when the review date is not reported in a parseable form.\n */\n createdUtc?: number;\n /**\n * Number of \"helpful\" votes the review received; 0 when none.\n */\n helpfulVotes?: number;\n /**\n * Star rating the reviewer gave, 1-5; 0 when not reported.\n */\n rating: number;\n /**\n * Reviewer display name; empty when withheld.\n */\n reviewer?: string;\n /**\n * Full review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review headline / title; empty when the review has none.\n */\n title?: string;\n /**\n * True when Amazon marks the review a verified purchase.\n */\n verifiedPurchase?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Reviews (amazon.reviews).\n */\nexport interface AmazonReviewsData {\n /**\n * Customer review records. Populated whenever the provider has data for the entity.\n */\n items: AmazonReviewsItem[];\n}\n\n/**\n * Input for Amazon Search (amazon.search).\n */\nexport interface AmazonSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Amazon search or category URL to pull results from (e.g. https://www.amazon.com/s?k=gaming+mouse).\n */\n url: string;\n}\n\nexport interface AmazonSearchItem {\n /**\n * Amazon Standard Identification Number; use it with the Amazon Products by ASIN SKU for full detail. Populated whenever the provider has data for the entity.\n */\n asin: string;\n /**\n * Price currency symbol or code, e.g. \"$\".\n */\n currency?: string;\n /**\n * Primary product thumbnail image URL.\n */\n image?: string;\n /**\n * True when the result is a sponsored placement.\n */\n isSponsored?: boolean;\n /**\n * Pre-discount list price when on sale; 0 when not discounted.\n */\n listPrice?: number;\n /**\n * Number of available offers; 0 when unknown.\n */\n offersCount?: number;\n /**\n * 1-based position of the result on the search page.\n */\n position?: number;\n /**\n * Current price as a numeric amount; 0 when no offer is available.\n */\n price?: number;\n /**\n * Average star rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Number of customer reviews; 0 when none.\n */\n reviewsCount?: number;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Amazon Search (amazon.search).\n */\nexport interface AmazonSearchData {\n /**\n * Matching Amazon product records. Populated whenever the provider has data for the entity.\n */\n items: AmazonSearchItem[];\n}\n\n/**\n * Typed methods for the amazon platform. Attached to the AnyAPI client as\n * `client.amazon`.\n */\nexport class AmazonNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Amazon Products by ASIN\n *\n * Look up to 10 Amazon products in one call by ASIN (title, brand, price, ratings, images, and attributes) as normalized JSON.\n *\n * Price: $0 per request plus $0.0035 per asin (maximum $0.035).\n *\n * @example\n * const res = await client.amazon.asins({ asins: [\"B09G9FPHY6\"], limit: 3 });\n */\n asins(\n input: AmazonAsinsInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonAsinsData>> {\n return this._core.run(\"amazon.asins\", input, options);\n }\n\n /**\n * Amazon Bestsellers\n *\n * List the top-ranked products of any Amazon Best Sellers category (rank, title, price, and rating) in one normalized request.\n *\n * Price: $0 per request plus $0.0041 per result (maximum $0.082).\n *\n * @example\n * const res = await client.amazon.bestsellers({ url: \"https://www.amazon.com/gp/bestsellers/electronics\", limit: 3 });\n */\n bestsellers(\n input: AmazonBestsellersInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonBestsellersData>> {\n return this._core.run(\"amazon.bestsellers\", input, options);\n }\n\n /**\n * Amazon Product\n *\n * Fetch full Amazon product details (title, brand, price when in stock, images, ratings, review count, variants, and attributes) from a product URL.\n *\n * Price: $0.001 per request plus $0.0081 per result (maximum $0.0091).\n *\n * @example\n * const res = await client.amazon.product({ url: \"https://www.amazon.com/dp/B00NTCH52W\" });\n */\n product(\n input: AmazonProductInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonProductData>> {\n return this._core.run(\"amazon.product\", input, options);\n }\n\n /**\n * Amazon Reviews\n *\n * Pull up to 50 customer reviews for any Amazon product by ASIN or URL: rating, title, text, date, and verified-purchase badge.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.amazon.reviews({ product: \"B07PXGQC1Q\", limit: 3 });\n */\n reviews(\n input: AmazonReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonReviewsData>> {\n return this._core.run(\"amazon.reviews\", input, options);\n }\n\n /**\n * Amazon Search\n *\n * Search Amazon from any search or category URL and get up to 20 matching products (title, price, rating, and thumbnail) in one normalized response.\n *\n * Price: $0 per request plus $0.0035 per result (maximum $0.07).\n *\n * @example\n * const res = await client.amazon.search({ url: \"https://www.amazon.com/s?k=laptop\", limit: 3 });\n */\n search(\n input: AmazonSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<AmazonSearchData>> {\n return this._core.run(\"amazon.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Apollo Organization (apollo.organization).\n */\nexport interface ApolloOrganizationInput {\n /**\n * Organization identifier returned by an Apollo organization endpoint.\n */\n organizationId: string;\n}\n\n/**\n * The `data` payload of Apollo Organization (apollo.organization).\n */\nexport interface ApolloOrganizationData {\n /**\n * Estimated annual revenue in USD.\n * Range: minimum 0.\n */\n annualRevenue?: number;\n /**\n * Human-readable estimated annual revenue.\n */\n annualRevenueDisplay?: string;\n /**\n * Headquarters city.\n */\n city?: string;\n /**\n * Headquarters country.\n */\n country?: string;\n /**\n * Organization summary.\n */\n description?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Estimated employee count.\n * Range: minimum 0.\n */\n employeeCount?: number;\n /**\n * Canonical Facebook page URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Year the organization was founded.\n */\n foundedYear?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Industries associated with the organization.\n */\n industries?: string[];\n /**\n * Primary industry.\n */\n industry?: string;\n /**\n * Keywords associated with the organization.\n */\n keywords?: string[];\n /**\n * Latest disclosed funding stage.\n */\n latestFundingStage?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n latestFundingUtc?: number;\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * NAICS industry codes.\n */\n naicsCodes?: string[];\n /**\n * Organization name.\n */\n name: string;\n /**\n * Headquarters postal code.\n */\n postalCode?: string;\n /**\n * SIC industry codes.\n */\n sicCodes?: string[];\n /**\n * Headquarters state or region.\n */\n state?: string;\n /**\n * Street address.\n */\n streetAddress?: string;\n /**\n * Technologies detected at the organization.\n */\n technologyNames?: string[];\n /**\n * Total disclosed funding in USD.\n * Range: minimum 0.\n */\n totalFunding?: number;\n /**\n * Human-readable total disclosed funding.\n */\n totalFundingDisplay?: string;\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Apollo Organization Enrichment (apollo.organization_enrich).\n */\nexport interface ApolloOrganizationEnrichInput {\n /**\n * Organization domain without a path, such as apollo.io.\n */\n domain: string;\n}\n\n/**\n * The `data` payload of Apollo Organization Enrichment (apollo.organization_enrich).\n */\nexport interface ApolloOrganizationEnrichData {\n /**\n * Estimated annual revenue in USD.\n * Range: minimum 0.\n */\n annualRevenue?: number;\n /**\n * Human-readable estimated annual revenue.\n */\n annualRevenueDisplay?: string;\n /**\n * Headquarters city.\n */\n city?: string;\n /**\n * Headquarters country.\n */\n country?: string;\n /**\n * Organization summary.\n */\n description?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Estimated employee count.\n * Range: minimum 0.\n */\n employeeCount?: number;\n /**\n * Canonical Facebook page URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Year the organization was founded.\n */\n foundedYear?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Industries associated with the organization.\n */\n industries?: string[];\n /**\n * Primary industry.\n */\n industry?: string;\n /**\n * Keywords associated with the organization.\n */\n keywords?: string[];\n /**\n * Latest disclosed funding stage.\n */\n latestFundingStage?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n latestFundingUtc?: number;\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * NAICS industry codes.\n */\n naicsCodes?: string[];\n /**\n * Organization name.\n */\n name: string;\n /**\n * Headquarters postal code.\n */\n postalCode?: string;\n /**\n * SIC industry codes.\n */\n sicCodes?: string[];\n /**\n * Headquarters state or region.\n */\n state?: string;\n /**\n * Street address.\n */\n streetAddress?: string;\n /**\n * Technologies detected at the organization.\n */\n technologyNames?: string[];\n /**\n * Total disclosed funding in USD.\n * Range: minimum 0.\n */\n totalFunding?: number;\n /**\n * Human-readable total disclosed funding.\n */\n totalFundingDisplay?: string;\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Apollo Organization Jobs (apollo.organization_jobs).\n */\nexport interface ApolloOrganizationJobsInput {\n /**\n * Organization identifier returned by an Apollo organization endpoint.\n */\n organizationId: string;\n}\n\nexport interface ApolloOrganizationJobsJob {\n /**\n * Job city.\n */\n city?: string;\n /**\n * Job country.\n */\n country?: string;\n /**\n * Stable job posting identifier.\n */\n id: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n lastSeenUtc?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n postedUtc?: number;\n /**\n * Job state or region.\n */\n state?: string;\n /**\n * Job title.\n */\n title: string;\n /**\n * Canonical job posting URL.\n * Format: uri.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Organization Jobs (apollo.organization_jobs).\n */\nexport interface ApolloOrganizationJobsData {\n /**\n * Current job postings.\n */\n jobs: ApolloOrganizationJobsJob[];\n /**\n * Page size returned.\n * Range: minimum 0.\n */\n limit: number;\n /**\n * One-based page returned.\n * Range: minimum 1.\n */\n page: number;\n /**\n * Total current job postings.\n * Range: minimum 0.\n */\n total: number;\n /**\n * Total available pages.\n * Range: minimum 0.\n */\n totalPages: number;\n}\n\n/**\n * Input for Apollo Organization News (apollo.organization_news).\n */\nexport interface ApolloOrganizationNewsInput {\n /**\n * Optional keywords to match in related articles.\n */\n keywords?: string;\n /**\n * Maximum articles returned on this page.\n * Range: minimum 1, maximum 100.\n * Default: 25.\n */\n limit?: number;\n /**\n * Organization identifiers whose related news should be returned.\n */\n organizationIds: string[];\n /**\n * One-based result page.\n * Range: minimum 1.\n * Default: 1.\n */\n page?: number;\n}\n\nexport interface ApolloOrganizationNewsArticle {\n /**\n * Publishing domain.\n */\n domain?: string;\n /**\n * Detected business event categories.\n */\n eventCategories?: string[];\n /**\n * Stable article identifier.\n */\n id: string;\n /**\n * Organization identifiers associated with the article.\n */\n organizationIds?: string[];\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n publishedUtc?: number;\n /**\n * Article summary or excerpt.\n */\n snippet?: string;\n /**\n * Article title.\n */\n title: string;\n /**\n * Canonical article URL.\n * Format: uri.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Organization News (apollo.organization_news).\n */\nexport interface ApolloOrganizationNewsData {\n /**\n * Related news articles on this page.\n */\n articles: ApolloOrganizationNewsArticle[];\n /**\n * Page size returned.\n * Range: minimum 0.\n */\n limit: number;\n /**\n * One-based page returned.\n * Range: minimum 1.\n */\n page: number;\n /**\n * Total matching articles.\n * Range: minimum 0.\n */\n total: number;\n /**\n * Total available pages.\n * Range: minimum 0.\n */\n totalPages: number;\n}\n\n/**\n * Input for Apollo Bulk Organization Enrichment (apollo.organizations_bulk_enrich).\n */\nexport interface ApolloOrganizationsBulkEnrichInput {\n /**\n * Organization domains to enrich, with at most 10 domains per request.\n */\n domains: string[];\n}\n\nexport interface ApolloOrganizationsBulkEnrichOrganization {\n /**\n * Estimated annual revenue in USD.\n * Range: minimum 0.\n */\n annualRevenue?: number;\n /**\n * Human-readable estimated annual revenue.\n */\n annualRevenueDisplay?: string;\n /**\n * Headquarters city.\n */\n city?: string;\n /**\n * Headquarters country.\n */\n country?: string;\n /**\n * Organization summary.\n */\n description?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Estimated employee count.\n * Range: minimum 0.\n */\n employeeCount?: number;\n /**\n * Canonical Facebook page URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Year the organization was founded.\n */\n foundedYear?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Industries associated with the organization.\n */\n industries?: string[];\n /**\n * Primary industry.\n */\n industry?: string;\n /**\n * Keywords associated with the organization.\n */\n keywords?: string[];\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * NAICS industry codes.\n */\n naicsCodes?: string[];\n /**\n * Organization name.\n */\n name: string;\n /**\n * Headquarters postal code.\n */\n postalCode?: string;\n /**\n * SIC industry codes.\n */\n sicCodes?: string[];\n /**\n * Headquarters state or region.\n */\n state?: string;\n /**\n * Street address.\n */\n streetAddress?: string;\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Bulk Organization Enrichment (apollo.organizations_bulk_enrich).\n */\nexport interface ApolloOrganizationsBulkEnrichData {\n /**\n * Number of uniquely enriched organizations.\n * Range: minimum 0.\n */\n enriched: number;\n /**\n * Number of requested domains without a match.\n * Range: minimum 0.\n */\n missing: number;\n /**\n * Enriched organizations.\n */\n organizations: ApolloOrganizationsBulkEnrichOrganization[];\n /**\n * Number of requested domains.\n * Range: minimum 0.\n */\n requested: number;\n}\n\n/**\n * Input for Apollo Organization Search (apollo.organizations_search).\n */\nexport interface ApolloOrganizationsSearchInput {\n /**\n * Employee-count ranges in Apollo notation, such as 51,200.\n */\n employeeRanges?: string[];\n /**\n * Apollo industry tag identifiers to match.\n */\n industryIds?: string[];\n /**\n * Keywords to match across organization records.\n */\n keywords?: string;\n /**\n * Maximum organizations returned on this page.\n * Range: minimum 1, maximum 100.\n * Default: 25.\n */\n limit?: number;\n /**\n * Headquarters locations to match.\n */\n locations?: string[];\n /**\n * One-based result page.\n * Range: minimum 1, maximum 500.\n * Default: 1.\n */\n page?: number;\n}\n\nexport interface ApolloOrganizationsSearchOrganization {\n /**\n * Estimated annual revenue in USD.\n * Range: minimum 0.\n */\n annualRevenue?: number;\n /**\n * Human-readable estimated annual revenue.\n */\n annualRevenueDisplay?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Canonical Facebook page URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Year the organization was founded.\n */\n foundedYear?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * NAICS industry codes.\n */\n naicsCodes?: string[];\n /**\n * Organization name.\n */\n name: string;\n /**\n * SIC industry codes.\n */\n sicCodes?: string[];\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Organization Search (apollo.organizations_search).\n */\nexport interface ApolloOrganizationsSearchData {\n /**\n * Page size returned by the upstream database.\n * Range: minimum 0.\n */\n limit: number;\n /**\n * Organizations on this page.\n */\n organizations: ApolloOrganizationsSearchOrganization[];\n /**\n * One-based page returned.\n * Range: minimum 1.\n */\n page: number;\n /**\n * Total matching organizations.\n * Range: minimum 0.\n */\n total: number;\n /**\n * Total available pages.\n * Range: minimum 0.\n */\n totalPages: number;\n}\n\n/**\n * Input for Apollo People Search (apollo.people_search).\n */\nexport interface ApolloPeopleSearchInput {\n /**\n * Organization employee-count ranges in Apollo notation, such as 51,200.\n */\n employeeRanges?: string[];\n /**\n * Keywords to match across people records.\n */\n keywords?: string;\n /**\n * Maximum people returned on this page.\n * Range: minimum 1, maximum 100.\n * Default: 25.\n */\n limit?: number;\n /**\n * Organization headquarters locations to match.\n */\n organizationLocations?: string[];\n /**\n * One-based result page.\n * Range: minimum 1, maximum 500.\n * Default: 1.\n */\n page?: number;\n /**\n * Person locations to match.\n */\n personLocations?: string[];\n /**\n * Seniority levels to match.\n */\n seniorities?: (\n | \"owner\"\n | \"founder\"\n | \"c_suite\"\n | \"partner\"\n | \"vp\"\n | \"head\"\n | \"director\"\n | \"manager\"\n | \"senior\"\n | \"entry\"\n )[];\n /**\n * Job titles to match.\n */\n titles?: string[];\n}\n\nexport interface ApolloPeopleSearchPeople {\n /**\n * Person first name.\n */\n firstName: string;\n /**\n * Whether city data is available through enrichment.\n */\n hasCity?: boolean;\n /**\n * Whether country data is available through enrichment.\n */\n hasCountry?: boolean;\n /**\n * Whether direct phone data is available through asynchronous enrichment.\n */\n hasDirectPhone?: boolean;\n /**\n * Whether an email is available through enrichment.\n */\n hasEmail?: boolean;\n /**\n * Whether state or region data is available through enrichment.\n */\n hasState?: boolean;\n /**\n * Stable person identifier.\n */\n id: string;\n /**\n * Obfuscated last-name initial.\n */\n lastNameInitial?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n lastRefreshedUtc?: number;\n /**\n * Availability summary for the current organization.\n */\n organization?: {\n /**\n * Whether organization city data is available.\n */\n hasCity?: boolean;\n /**\n * Whether organization country data is available.\n */\n hasCountry?: boolean;\n /**\n * Whether organization employee-count data is available.\n */\n hasEmployeeCount?: boolean;\n /**\n * Whether industry data is available.\n */\n hasIndustry?: boolean;\n /**\n * Whether an organization phone is available.\n */\n hasPhone?: boolean;\n /**\n * Whether organization postal-code data is available.\n */\n hasPostalCode?: boolean;\n /**\n * Whether organization revenue data is available.\n */\n hasRevenue?: boolean;\n /**\n * Whether organization state data is available.\n */\n hasState?: boolean;\n /**\n * Current organization name.\n */\n name?: string;\n };\n /**\n * Current job title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo People Search (apollo.people_search).\n */\nexport interface ApolloPeopleSearchData {\n /**\n * People on this result page.\n */\n people: ApolloPeopleSearchPeople[];\n /**\n * Total matching people.\n * Range: minimum 0.\n */\n total: number;\n}\n\n/**\n * Input for Apollo Person Enrichment (apollo.person_enrich).\n */\nexport interface ApolloPersonEnrichInput {\n /**\n * Organization domain used with the person's name.\n */\n domain?: string;\n /**\n * Work or personal email used to identify the person.\n * Format: email.\n */\n email?: string;\n /**\n * Person first name, used with lastName and an organization identifier.\n */\n firstName?: string;\n /**\n * Person last name, used with firstName and an organization identifier.\n */\n lastName?: string;\n /**\n * LinkedIn profile URL used to identify the person.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * Organization name used with the person's name.\n */\n organizationName?: string;\n}\n\nexport interface ApolloPersonEnrichEmploymentHistory {\n /**\n * Whether this is a current role.\n */\n current?: boolean;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n endUtc?: number;\n /**\n * Stable employment record identifier.\n */\n id: string;\n /**\n * Organization identifier.\n */\n organizationId?: string;\n /**\n * Organization name.\n */\n organizationName?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n startUtc?: number;\n /**\n * Role title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Apollo Person Enrichment (apollo.person_enrich).\n */\nexport interface ApolloPersonEnrichData {\n /**\n * City.\n */\n city?: string;\n /**\n * Country.\n */\n country?: string;\n /**\n * Current departments.\n */\n departments?: string[];\n /**\n * Available work email.\n * Format: email.\n */\n email?: string;\n /**\n * Verification status of the work email.\n */\n emailStatus?: string;\n /**\n * Known employment history.\n */\n employmentHistory?: ApolloPersonEnrichEmploymentHistory[];\n /**\n * Canonical Facebook profile URL.\n * Format: uri.\n */\n facebookUrl?: string;\n /**\n * Person first name.\n */\n firstName: string;\n /**\n * Current business functions.\n */\n functions?: string[];\n /**\n * Canonical GitHub profile URL.\n * Format: uri.\n */\n githubUrl?: string;\n /**\n * Professional headline.\n */\n headline?: string;\n /**\n * Stable person identifier.\n */\n id: string;\n /**\n * Profile image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Person last name.\n */\n lastName: string;\n /**\n * Canonical LinkedIn profile URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * Full person name.\n */\n name: string;\n /**\n * Current organization summary.\n */\n organization?: {\n /**\n * Headquarters city.\n */\n city?: string;\n /**\n * Headquarters country.\n */\n country?: string;\n /**\n * Primary organization domain.\n */\n domain?: string;\n /**\n * Estimated employee count.\n * Range: minimum 0.\n */\n employeeCount?: number;\n /**\n * Stable organization identifier.\n */\n id: string;\n /**\n * Organization logo URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Primary industry.\n */\n industry?: string;\n /**\n * Canonical LinkedIn company URL.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * Organization name.\n */\n name: string;\n /**\n * Headquarters state or region.\n */\n state?: string;\n /**\n * Canonical organization website URL.\n * Format: uri.\n */\n websiteUrl?: string;\n };\n /**\n * Available personal email addresses, included automatically.\n */\n personalEmails?: string[];\n /**\n * Postal code.\n */\n postalCode?: string;\n /**\n * Current seniority classification.\n */\n seniority?: string;\n /**\n * State or region.\n */\n state?: string;\n /**\n * Street address.\n */\n streetAddress?: string;\n /**\n * Current subdepartments.\n */\n subdepartments?: string[];\n /**\n * IANA time-zone identifier.\n */\n timeZone?: string;\n /**\n * Current job title.\n */\n title?: string;\n /**\n * Canonical X or Twitter profile URL.\n * Format: uri.\n */\n twitterUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the apollo platform. Attached to the AnyAPI client as\n * `client.apollo`.\n */\nexport class ApolloNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Apollo Organization\n *\n * Get a complete organization profile by ID including company, industry, employee, revenue, funding, location, and technology data.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organization({ organizationId: \"5e66b6381e05b4008c8331b8\" });\n */\n organization(\n input: ApolloOrganizationInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationData>> {\n return this._core.run(\"apollo.organization\", input, options);\n }\n\n /**\n * Apollo Organization Enrichment\n *\n * Enrich an organization by domain with company profile, industry, employee, revenue, funding, location, and technology data.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organizationEnrich({ domain: \"apollo.io\" });\n */\n organizationEnrich(\n input: ApolloOrganizationEnrichInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationEnrichData>> {\n return this._core.run(\"apollo.organization_enrich\", input, options);\n }\n\n /**\n * Apollo Organization Jobs\n *\n * Get current job postings for an organization by ID with title, location, source URL, and timestamps.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organizationJobs({ organizationId: \"5e66b6381e05b4008c8331b8\" });\n */\n organizationJobs(\n input: ApolloOrganizationJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationJobsData>> {\n return this._core.run(\"apollo.organization_jobs\", input, options);\n }\n\n /**\n * Apollo Organization News\n *\n * Search news related to one or more organizations with article details, categories, and pagination totals.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organizationNews({ organizationIds: [\"5e66b6381e05b4008c8331b8\"], limit: 3, page: 1 });\n */\n organizationNews(\n input: ApolloOrganizationNewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationNewsData>> {\n return this._core.run(\"apollo.organization_news\", input, options);\n }\n\n /**\n * Apollo Bulk Organization Enrichment\n *\n * Enrich up to 10 organization domains in one request with normalized company profile, industry, employee, revenue, funding, and location data.\n *\n * Price: $0.06 per request.\n *\n * @example\n * const res = await client.apollo.organizationsBulkEnrich({ domains: [\"apollo.io\", \"openai.com\"] });\n */\n organizationsBulkEnrich(\n input: ApolloOrganizationsBulkEnrichInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationsBulkEnrichData>> {\n return this._core.run(\"apollo.organizations_bulk_enrich\", input, options);\n }\n\n /**\n * Apollo Organization Search\n *\n * Search organizations by location, employee range, industry, and keywords with normalized company records and pagination totals.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.organizationsSearch({ keywords: \"Apollo\", limit: 3, page: 1 });\n */\n organizationsSearch(\n input: ApolloOrganizationsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloOrganizationsSearchData>> {\n return this._core.run(\"apollo.organizations_search\", input, options);\n }\n\n /**\n * Apollo People Search\n *\n * Search people by title, seniority, person or organization location, employee range, and keywords with normalized profile summaries.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.apollo.peopleSearch({ limit: 3, page: 1, titles: [\"CEO\"] });\n */\n peopleSearch(\n input: ApolloPeopleSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloPeopleSearchData>> {\n return this._core.run(\"apollo.people_search\", input, options);\n }\n\n /**\n * Apollo Person Enrichment\n *\n * Enrich a person by email, LinkedIn URL, or name and organization with contact, role, location, and company data.\n *\n * Price: $0.012 per request.\n *\n * @example\n * const res = await client.apollo.personEnrich({ domain: \"apollo.io\", firstName: \"Tim\", lastName: \"Zheng\" });\n */\n personEnrich(\n input: ApolloPersonEnrichInput,\n options?: RequestOptions,\n ): Promise<RunResult<ApolloPersonEnrichData>> {\n return this._core.run(\"apollo.person_enrich\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for App Store Reviews (appstore.reviews).\n */\nexport interface AppstoreReviewsInput {\n /**\n * Numeric App Store app ID, the digits at the end of the app's store URL without the 'id' prefix (e.g. 310633997).\n */\n appId: string;\n /**\n * Two-letter App Store storefront country code to read reviews from.\n * Default: us.\n */\n country?: string;\n /**\n * Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n}\n\nexport interface AppstoreReviewsItem {\n /**\n * Reviewer nickname. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n author?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the review was posted. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Number of helpful votes on the review.\n */\n helpfulVotes?: number;\n /**\n * Review identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n id?: string;\n /**\n * Star rating, 1 to 5. Populated whenever the provider has data for the entity.\n */\n rating: number;\n /**\n * Review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review title.\n */\n title?: string;\n /**\n * App version the review was left on.\n */\n version?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of App Store Reviews (appstore.reviews).\n */\nexport interface AppstoreReviewsData {\n /**\n * Review records: star rating, review title and text, reviewer nickname, app version, and review date. Populated whenever the provider has data for the entity.\n */\n items: AppstoreReviewsItem[];\n}\n\n/**\n * Typed methods for the appstore platform. Attached to the AnyAPI client as\n * `client.appstore`.\n */\nexport class AppstoreNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * App Store Reviews\n *\n * Get App Store reviews for any iOS app by app ID, in any storefront country: ratings, titles, and review text.\n *\n * Price: $0 per request plus $0.0001 per result (maximum $0.01).\n *\n * @example\n * const res = await client.appstore.reviews({ appId: \"389801252\", country: \"us\", limit: 3 });\n */\n reviews(\n input: AppstoreReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<AppstoreReviewsData>> {\n return this._core.run(\"appstore.reviews\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Bluesky Post (bluesky.post).\n */\nexport interface BlueskyPostInput {\n /**\n * Bluesky post URL, e.g. \"https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l\".\n */\n url: string;\n}\n\n/**\n * The `data` payload of Bluesky Post (bluesky.post).\n */\nexport interface BlueskyPostData {\n /**\n * Handle of the account that authored the post. Populated whenever the provider has data for the entity.\n */\n authorHandle: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Number of replies to the post.\n */\n replies: number;\n /**\n * Number of reposts of the post.\n */\n reposts: number;\n /**\n * The post's text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Bluesky Profile (bluesky.profile).\n */\nexport interface BlueskyProfileInput {\n /**\n * Bluesky handle, e.g. \"bsky.app\" or \"jay.bsky.team\".\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Bluesky Profile (bluesky.profile).\n */\nexport interface BlueskyProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n postsCount: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Bluesky User Posts (bluesky.user_posts).\n */\nexport interface BlueskyUserPostsInput {\n /**\n * Bluesky handle, e.g. \"bsky.app\" or \"jay.bsky.team\".\n */\n handle: string;\n}\n\nexport interface BlueskyUserPostsPost {\n /**\n * Handle of the account that authored the post. Populated whenever the provider has data for the entity.\n */\n authorHandle: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Number of replies to the post.\n */\n replies: number;\n /**\n * Number of reposts of the post.\n */\n reposts: number;\n /**\n * The post's text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Bluesky User Posts (bluesky.user_posts).\n */\nexport interface BlueskyUserPostsData {\n /**\n * The account's recent posts. Populated whenever the provider has data for the entity.\n */\n posts: BlueskyUserPostsPost[];\n}\n\n/**\n * Typed methods for the bluesky platform. Attached to the AnyAPI client as\n * `client.bluesky`.\n */\nexport class BlueskyNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Bluesky Post\n *\n * Get a single Bluesky post by URL - text, author handle, like, reply, and repost counts as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.bluesky.post({ url: \"https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l\" });\n */\n post(\n input: BlueskyPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<BlueskyPostData>> {\n return this._core.run(\"bluesky.post\", input, options);\n }\n\n /**\n * Bluesky Profile\n *\n * Get a Bluesky user's public profile by handle - display name, bio, follower and post counts as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.bluesky.profile({ handle: \"bsky.app\" });\n */\n profile(\n input: BlueskyProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<BlueskyProfileData>> {\n return this._core.run(\"bluesky.profile\", input, options);\n }\n\n /**\n * Bluesky User Posts\n *\n * List a Bluesky account's recent posts (text, author handle, like, reply, and repost counts) by handle as clean JSON, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.bluesky.userPosts({ handle: \"bsky.app\" });\n */\n userPosts(\n input: BlueskyUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<BlueskyUserPostsData>> {\n return this._core.run(\"bluesky.user_posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Booking.com Search (booking.search).\n */\nexport interface BookingSearchInput {\n /**\n * Number of adult guests (e.g. 2).\n * Range: minimum 1.\n */\n adults?: number;\n /**\n * Check-in date in YYYY-MM-DD format (e.g. 2026-07-01). Defaults to tomorrow.\n */\n checkIn?: string;\n /**\n * Check-out date in YYYY-MM-DD format (e.g. 2026-07-05). Defaults to the day after check-in.\n */\n checkOut?: string;\n /**\n * Number of child guests (e.g. 1).\n * Range: minimum 0.\n */\n children?: number;\n /**\n * Currency code for prices (e.g. EUR).\n * Default: USD.\n */\n currency?: string;\n /**\n * Maximum number of hotels to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Destination city to search for stays in (e.g. Paris).\n */\n query: string;\n /**\n * Number of rooms to book (e.g. 1).\n * Range: minimum 1.\n */\n rooms?: number;\n}\n\nexport interface BookingSearchItem {\n address?: string;\n city?: string;\n /**\n * ISO country code.\n */\n country?: string;\n currency?: string;\n /**\n * Booking.com hotel identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n id?: string;\n /**\n * Primary hotel photo URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n latitude?: number;\n /**\n * Neighborhood or area label.\n */\n location?: string;\n longitude?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Total stay price in the requested currency.\n */\n price?: number;\n pricePerNight?: number;\n /**\n * Guest review score (0-10).\n */\n rating?: number;\n /**\n * Guest review score (0-10).\n */\n reviewScore?: number;\n reviewsCount?: number;\n /**\n * Star rating class (1-5).\n */\n stars?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Booking.com Search (booking.search).\n */\nexport interface BookingSearchData {\n /**\n * Hotel result records: name, price, review score, star rating, address, and location. Populated whenever the provider has data for the entity.\n */\n items: BookingSearchItem[];\n}\n\n/**\n * Typed methods for the booking platform. Attached to the AnyAPI client as\n * `client.booking`.\n */\nexport class BookingNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Booking.com Search\n *\n * Search Booking.com stays by destination and dates with optional guest and room occupancy and get hotel results (name, price, review score, location) as normalized JSON.\n *\n * Price: $0.002 per request plus $0.0045 per result (maximum $0.092).\n *\n * @example\n * const res = await client.booking.search({ query: \"New York\", adults: 2, checkIn: \"2026-09-01\", checkOut: \"2026-09-03\", limit: 3 });\n */\n search(\n input: BookingSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<BookingSearchData>> {\n return this._core.run(\"booking.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for CoinMarketCap Listings (coinmarketcap.listings).\n */\nexport interface CoinmarketcapListingsInput {\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n}\n\nexport interface CoinmarketcapListingsItem {\n /**\n * All-time high price in USD.\n */\n ath?: number;\n /**\n * All-time low price in USD.\n */\n atl?: number;\n /**\n * Circulating supply (coin count).\n */\n circulatingSupply?: number;\n /**\n * 24h high price in USD.\n */\n high24h?: number;\n /**\n * CoinMarketCap identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n lastUpdated?: string;\n /**\n * 24h low price in USD.\n */\n low24h?: number;\n /**\n * Market capitalization in USD.\n */\n marketCap?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Latest price in USD.\n */\n price?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n slug?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n symbol: string;\n /**\n * Total supply (coin count).\n */\n totalSupply?: number;\n /**\n * 24h trading volume in USD.\n */\n volume24h?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of CoinMarketCap Listings (coinmarketcap.listings).\n */\nexport interface CoinmarketcapListingsData {\n /**\n * Cryptocurrency listing records: rank, name, symbol, price, market cap, trading volume, and 24h price change. Populated whenever the provider has data for the entity.\n */\n items: CoinmarketcapListingsItem[];\n}\n\n/**\n * Typed methods for the coinmarketcap platform. Attached to the AnyAPI client as\n * `client.coinmarketcap`.\n */\nexport class CoinmarketcapNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * CoinMarketCap Listings\n *\n * Get the current top cryptocurrencies from CoinMarketCap (rank, price, market cap, volume, and 24h change) as normalized JSON.\n *\n * Price: $0 per request plus $0.0018 per result (maximum $0.045).\n *\n * @example\n * const res = await client.coinmarketcap.listings({ limit: 5 });\n */\n listings(\n input: CoinmarketcapListingsInput,\n options?: RequestOptions,\n ): Promise<RunResult<CoinmarketcapListingsData>> {\n return this._core.run(\"coinmarketcap.listings\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Congress Stock Trades (congress.trades).\n */\nexport interface CongressTradesInput {\n /**\n * Latest transaction date to include, inclusive, in YYYY-MM-DD format (e.g. 2026-06-01).\n */\n endDate?: string;\n /**\n * Filter by the congressional member's first name, case-insensitive partial match (e.g. Nancy).\n */\n firstName?: string;\n /**\n * Filter by the congressional member's last name, case-insensitive partial match (e.g. Pelosi).\n */\n lastName?: string;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Earliest transaction date to include, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).\n */\n startDate?: string;\n /**\n * Filter to transactions involving this stock ticker symbol (e.g. NVDA).\n */\n ticker?: string;\n}\n\nexport interface CongressTradesItem {\n /**\n * Disclosed dollar amount range for the transaction.\n */\n amountRange?: string;\n /**\n * Full name of the traded asset. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n assetName?: string;\n /**\n * Congressional chamber, e.g. House or Senate.\n */\n chamber?: string;\n /**\n * Member's first name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n firstName?: string;\n /**\n * Stable disclosure record identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Member's last name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n lastName?: string;\n /**\n * Trade owner code, e.g. SP (spouse), JT (joint), DC (dependent child).\n */\n owner?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Date the transaction was reported/disclosed.\n */\n reportedUtc?: number;\n /**\n * Member's state and district, e.g. PA11.\n */\n stateDistrict?: string;\n /**\n * Stock ticker symbol of the traded asset. Populated whenever the provider has data for the entity.\n */\n symbol: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Date the transaction occurred.\n */\n tradedUtc?: number;\n /**\n * Transaction type code, e.g. P (purchase), S (sale).\n */\n transactionType?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Congress Stock Trades (congress.trades).\n */\nexport interface CongressTradesData {\n /**\n * Disclosure records: member name and chamber, stock ticker, transaction type, amount range, and transaction/report dates. Populated whenever the provider has data for the entity.\n */\n items: CongressTradesItem[];\n}\n\n/**\n * Typed methods for the congress platform. Attached to the AnyAPI client as\n * `client.congress`.\n */\nexport class CongressNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Congress Stock Trades\n *\n * Get US Congress members' financial disclosures and stock trades (member, ticker, transaction type, amount range, and dates), filterable by member, ticker, or date range.\n *\n * Price: $0.001 per request plus $0.0019 per result (maximum $0.0485).\n *\n * @example\n * const res = await client.congress.trades({ limit: 5 });\n */\n trades(\n input: CongressTradesInput,\n options?: RequestOptions,\n ): Promise<RunResult<CongressTradesData>> {\n return this._core.run(\"congress.trades\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for DEX Screener Tokens (dexscreener.tokens).\n */\nexport interface DexscreenerTokensInput {\n /**\n * Blockchain network to list tokens for, optionally scoped to a DEX as chain/dex (e.g. solana or ethereum/uniswap).\n */\n chain: string;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Only include tokens whose 24-hour price change is at most this many percent (e.g. -20 means -20%). Negative values allowed. Omit to skip this filter.\n */\n max24HChg?: number;\n /**\n * Only include tokens with at most this many 24-hour transactions (buys plus sells). Omit to skip this filter.\n * Range: minimum 0.\n */\n max24HTxns?: number;\n /**\n * Only include tokens with at most this much 24-hour trading volume, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n max24HVol?: number;\n /**\n * Only include token pairs at most this old, in hours. Omit to skip this filter.\n * Range: minimum 0.\n */\n maxAge?: number;\n /**\n * Only include tokens with at most this fully diluted valuation (FDV), in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n maxFdv?: number;\n /**\n * Only include tokens with at most this much pool liquidity, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n maxLiq?: number;\n /**\n * Only include tokens with at most this market capitalization, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n maxMarketCap?: number;\n /**\n * Only include tokens with at least this many 24-hour buy transactions. Omit to skip this filter.\n * Range: minimum 0.\n */\n min24HBuys?: number;\n /**\n * Only include tokens whose 24-hour price change is at least this many percent (e.g. 10 means +10%). Negative values allowed. Omit to skip this filter.\n */\n min24HChg?: number;\n /**\n * Only include tokens with at least this many 24-hour sell transactions. Omit to skip this filter.\n * Range: minimum 0.\n */\n min24HSells?: number;\n /**\n * Only include tokens with at least this many 24-hour transactions (buys plus sells). Omit to skip this filter.\n * Range: minimum 0.\n */\n min24HTxns?: number;\n /**\n * Only include tokens with at least this much 24-hour trading volume, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n min24HVol?: number;\n /**\n * Only include token pairs at least this old, in hours. Omit to skip this filter.\n * Range: minimum 0.\n */\n minAge?: number;\n /**\n * Only include tokens with at least this fully diluted valuation (FDV), in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n minFdv?: number;\n /**\n * Only include tokens with at least this much pool liquidity, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n minLiq?: number;\n /**\n * Only include tokens with at least this market capitalization, in USD. Omit to skip this filter.\n * Range: minimum 0.\n */\n minMarketCap?: number;\n /**\n * Sort direction: desc or asc (e.g. desc).\n */\n order?: string;\n /**\n * Field to sort tokens by (e.g. volume, txns, liquidity, marketCap, trendingScoreH24).\n */\n rankBy?: string;\n /**\n * Stats timeframe: 24h, 6h, 1h, or 5m (e.g. 24h).\n * Default: 24h.\n */\n timeframe?: string;\n}\n\nexport interface DexscreenerTokensItem {\n /**\n * Age of the token pair in hours.\n */\n ageHours?: number;\n /**\n * Token logo image URL.\n */\n image?: string;\n /**\n * Total pool liquidity in USD.\n */\n liquidityUsd?: number;\n /**\n * Number of distinct makers over the selected timeframe.\n */\n makerCount?: number;\n /**\n * Token market capitalization in USD.\n */\n marketCapUsd?: number;\n /**\n * Token full name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * On-chain address of the liquidity pool.\n */\n poolAddress?: string;\n /**\n * Current token price in USD. Populated whenever the provider has data for the entity.\n */\n price: number;\n /**\n * Fractional price change over the past hour.\n */\n priceChange1h?: number;\n /**\n * Fractional price change over the past 24 hours.\n */\n priceChange24h?: number;\n /**\n * Token ticker symbol. Populated whenever the provider has data for the entity.\n */\n symbol: string;\n /**\n * Number of transactions over the selected timeframe.\n */\n transactionCount?: number;\n /**\n * DEX Screener URL for the trading pair. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Trading volume in USD over the selected timeframe.\n */\n volumeUsd?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of DEX Screener Tokens (dexscreener.tokens).\n */\nexport interface DexscreenerTokensData {\n /**\n * Token listing records: token name and symbol, price, liquidity, volume, transaction/maker counts, price change, market cap, and the DEX Screener pair URL. Populated whenever the provider has data for the entity.\n */\n items: DexscreenerTokensItem[];\n}\n\n/**\n * Typed methods for the dexscreener platform. Attached to the AnyAPI client as\n * `client.dexscreener`.\n */\nexport class DexscreenerNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * DEX Screener Tokens\n *\n * List trending tokens on any blockchain from DEX Screener (price, liquidity, volume, transactions, and market cap), sorted how you want, as normalized JSON.\n *\n * Price: $0.02 per request plus $0.0015 per result (maximum $0.0575).\n *\n * @example\n * const res = await client.dexscreener.tokens({ chain: \"solana\", limit: 5, min24HVol: 100000 });\n */\n tokens(\n input: DexscreenerTokensInput,\n options?: RequestOptions,\n ): Promise<RunResult<DexscreenerTokensData>> {\n return this._core.run(\"dexscreener.tokens\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Douyin Profile (douyin.profile).\n */\nexport interface DouyinProfileInput {\n /**\n * Douyin sec_user_id for the public account.\n */\n secUserId: string;\n}\n\n/**\n * The `data` payload of Douyin Profile (douyin.profile).\n */\nexport interface DouyinProfileData {\n /**\n * Profile biography.\n */\n bio?: string;\n /**\n * Follower count.\n */\n followers?: number;\n /**\n * Following count.\n */\n following?: number;\n /**\n * Profile image URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Total likes received.\n */\n likes?: number;\n /**\n * Display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n nickname?: string;\n /**\n * Published post count.\n */\n posts?: number;\n /**\n * Douyin sec_user_id. Populated whenever the provider has data for the entity.\n */\n secUserId: string;\n /**\n * Legacy numeric short ID.\n */\n shortId?: string;\n /**\n * Public Douyin handle when configured. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n uniqueId?: string;\n /**\n * Douyin user identifier. Populated whenever the provider has data for the entity.\n */\n userId: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Douyin Video Search (douyin.search_videos).\n */\nexport interface DouyinSearchVideosInput {\n /**\n * Backtrace token returned by the previous page.\n */\n backtrace?: string;\n /**\n * Pagination cursor from the previous response; omit for the first page.\n * Range: minimum 0.\n */\n cursor?: number;\n /**\n * Duration filter in minutes: any, under 1, 1 to 5, or over 5.\n * One of: 0, 0-1, 1-5, 5-10000.\n * Default: 0.\n */\n duration?: \"0\" | \"0-1\" | \"1-5\" | \"5-10000\";\n /**\n * Publication window in days: 0 any time, 1 day, 7 days, or 180 days.\n * One of: 0, 1, 7, 180.\n * Default: 0.\n */\n publishedWithin?: \"0\" | \"1\" | \"7\" | \"180\";\n /**\n * Keyword to search for.\n */\n query: string;\n /**\n * Search ID returned by the previous page.\n */\n searchId?: string;\n /**\n * Sort order: 0 comprehensive, 1 most liked, or 2 newest.\n * One of: 0, 1, 2.\n * Default: 0.\n */\n sort?: \"0\" | \"1\" | \"2\";\n}\n\nexport interface DouyinSearchVideosVideo {\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Video caption. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n caption?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Video identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Cover image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Save count.\n */\n saves?: number;\n /**\n * Share count.\n */\n shares?: number;\n /**\n * Canonical video URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Play count.\n */\n views?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Douyin Video Search (douyin.search_videos).\n */\nexport interface DouyinSearchVideosData {\n /**\n * Backtrace token required for the next page.\n */\n backtrace: string;\n /**\n * Whether another page is available.\n */\n hasMore: boolean;\n /**\n * Cursor for the next page.\n */\n nextCursor: string;\n /**\n * Search ID required for the next page.\n */\n searchId: string;\n /**\n * Normalized matching videos. Populated whenever the provider has data for the entity.\n */\n videos: DouyinSearchVideosVideo[];\n}\n\n/**\n * Input for Douyin User Posts (douyin.user_posts).\n */\nexport interface DouyinUserPostsInput {\n /**\n * Pagination cursor from the previous response; omit for the first page.\n */\n cursor?: number;\n /**\n * Requested page size. Values up to 20 are recommended.\n * Default: 20.\n */\n limit?: number;\n /**\n * Douyin sec_user_id for the public account.\n */\n secUserId: string;\n /**\n * Post order: 0 for newest or 1 for most popular.\n * Default: 0.\n */\n sort?: number;\n}\n\nexport interface DouyinUserPostsPost {\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author sec_user_id. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorSecUserId?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Post caption. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n caption?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Cover image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Save count.\n */\n saves?: number;\n /**\n * Share count.\n */\n shares?: number;\n /**\n * Canonical post URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Play count.\n */\n views?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Douyin User Posts (douyin.user_posts).\n */\nexport interface DouyinUserPostsData {\n /**\n * Whether another page is available.\n */\n hasMore: boolean;\n /**\n * Cursor for the next page; empty when unavailable.\n */\n nextCursor: string;\n /**\n * Normalized Douyin posts. Populated whenever the provider has data for the entity.\n */\n posts: DouyinUserPostsPost[];\n}\n\n/**\n * Input for Douyin Video (douyin.video).\n */\nexport interface DouyinVideoInput {\n /**\n * Public Douyin video share URL.\n * Format: uri.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Douyin Video (douyin.video).\n */\nexport interface DouyinVideoData {\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author sec_user_id. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorSecUserId?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Video caption. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n caption?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Video duration in milliseconds.\n */\n durationMs?: number;\n /**\n * Video identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Video cover image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Save count.\n */\n saves?: number;\n /**\n * Share count.\n */\n shares?: number;\n /**\n * Canonical Douyin video URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Play count.\n */\n views?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Douyin Video Comments (douyin.video_comments).\n */\nexport interface DouyinVideoCommentsInput {\n /**\n * Pagination cursor from the previous response; omit for the first page.\n * Range: minimum 0.\n */\n cursor?: number;\n /**\n * Douyin aweme_id for the video.\n */\n videoId: string;\n}\n\nexport interface DouyinVideoCommentsComment {\n /**\n * Author profile image URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author sec_user_id. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorSecUserId?: string;\n /**\n * Author public handle.\n */\n authorUniqueId?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Comment identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Approximate location label shown by Douyin.\n */\n ipLabel?: string;\n /**\n * Comment like count.\n */\n likes?: number;\n /**\n * Direct reply count.\n */\n replyCount?: number;\n /**\n * Comment text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n /**\n * Commented video identifier. Populated whenever the provider has data for the entity.\n */\n videoId: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Douyin Video Comments (douyin.video_comments).\n */\nexport interface DouyinVideoCommentsData {\n /**\n * Normalized video comments. Populated whenever the provider has data for the entity.\n */\n comments: DouyinVideoCommentsComment[];\n /**\n * Whether another page is available.\n */\n hasMore: boolean;\n /**\n * Cursor for the next page.\n */\n nextCursor: string;\n /**\n * Total comment count reported by Douyin.\n */\n total: number;\n}\n\n/**\n * Typed methods for the douyin platform. Attached to the AnyAPI client as\n * `client.douyin`.\n */\nexport class DouyinNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Douyin Profile\n *\n * Look up a public Douyin profile by sec_user_id and return normalized profile statistics.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.douyin.profile({ secUserId: \"MS4wLjABAAAAW9FWcqS7RdQAWPd2AA5fL_ilmqsIFUCQ_Iym6Yh9_cUa6ZRqVLjVQSUjlHrfXY1Y\" });\n */\n profile(\n input: DouyinProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinProfileData>> {\n return this._core.run(\"douyin.profile\", input, options);\n }\n\n /**\n * Douyin Video Search\n *\n * Search public Douyin videos by keyword with sorting, time, duration, and content filters.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.douyin.searchVideos({ query: \"机器人\", duration: \"0\", publishedWithin: \"0\", sort: \"0\" });\n */\n searchVideos(\n input: DouyinSearchVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinSearchVideosData>> {\n return this._core.run(\"douyin.search_videos\", input, options);\n }\n\n /**\n * Douyin User Posts\n *\n * List public posts from a Douyin user with normalized engagement data and pagination.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.douyin.userPosts({ secUserId: \"MS4wLjABAAAANXSltcLCzDGmdNFI2Q_QixVTr67NiYzjKOIP5s03CAE\", limit: 20, sort: 0 });\n */\n userPosts(\n input: DouyinUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinUserPostsData>> {\n return this._core.run(\"douyin.user_posts\", input, options);\n }\n\n /**\n * Douyin Video\n *\n * Fetch a public Douyin video by share URL with normalized author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.douyin.video({ url: \"https://www.douyin.com/video/6894784055775071503\" });\n */\n video(\n input: DouyinVideoInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinVideoData>> {\n return this._core.run(\"douyin.video\", input, options);\n }\n\n /**\n * Douyin Video Comments\n *\n * List public comments on a Douyin video with author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.douyin.videoComments({ videoId: \"7448118827402972455\" });\n */\n videoComments(\n input: DouyinVideoCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<DouyinVideoCommentsData>> {\n return this._core.run(\"douyin.video_comments\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for eBay Search (ebay.search).\n */\nexport interface EbaySearchInput {\n /**\n * Filter by one or more item conditions; omit for all conditions (e.g. [\"new\", \"open_box\"]).\n */\n condition?: (\"new\" | \"open_box\" | \"refurbished\" | \"used\" | \"for_parts\")[];\n /**\n * Maximum number of results to return (1 to 25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Restrict to a listing format; omit or use all for both (e.g. buy_it_now for fixed-price only).\n * One of: all, auction, buy_it_now.\n */\n listingType?: \"all\" | \"auction\" | \"buy_it_now\";\n /**\n * Optional maximum item price in USD.\n * Range: minimum 0.\n */\n maxPrice?: number;\n /**\n * Optional minimum item price in USD.\n * Range: minimum 0.\n */\n minPrice?: number;\n /**\n * Search keywords, e.g. \"nintendo switch\" or \"vintage levis 501\".\n */\n query: string;\n /**\n * Result sort order; omit for eBay's Best Match (e.g. price_low sorts by lowest price plus shipping first).\n * One of: best_match, ending_soonest, newly_listed, price_low, price_high.\n */\n sort?:\n | \"best_match\"\n | \"ending_soonest\"\n | \"newly_listed\"\n | \"price_low\"\n | \"price_high\";\n}\n\nexport interface EbaySearchItem {\n condition?: string;\n /**\n * Primary listing image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * eBay item identifier. Populated whenever the provider has data for the entity.\n */\n itemId: string;\n /**\n * Auction, FixedPrice, etc.\n */\n listingType?: string;\n /**\n * Listing price.\n */\n price?: number;\n /**\n * Seller positive-feedback percentage.\n */\n sellerFeedbackPercent?: number;\n sellerName?: string;\n /**\n * Shipping cost or free-delivery label.\n */\n shippingCost?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of eBay Search (ebay.search).\n */\nexport interface EbaySearchData {\n /**\n * Listing records: title, price, condition, shipping cost, seller info, image, and item URL. Populated whenever the provider has data for the entity.\n */\n items: EbaySearchItem[];\n}\n\n/**\n * Input for eBay Sold Listings (ebay.sold_listings).\n */\nexport interface EbaySoldListingsInput {\n /**\n * Item condition filter (e.g. used).\n * One of: any, new, used.\n * Default: any.\n */\n condition?: \"any\" | \"new\" | \"used\";\n /**\n * How many days back to include sold listings, 1-90 (e.g. 30).\n * Default: 30.\n */\n daysBack?: number;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Optional maximum sold price in the site currency (e.g. 500).\n * Range: minimum 0.\n */\n maxPrice?: number;\n /**\n * Optional minimum sold price in the site currency (e.g. 200).\n * Range: minimum 0.\n */\n minPrice?: number;\n /**\n * Search keyword for sold items (e.g. iphone 13 pro).\n */\n query: string;\n /**\n * eBay country site to search (e.g. ebay.co.uk).\n * One of: ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au.\n * Default: ebay.com.\n */\n site?:\n | \"ebay.com\"\n | \"ebay.co.uk\"\n | \"ebay.de\"\n | \"ebay.fr\"\n | \"ebay.it\"\n | \"ebay.es\"\n | \"ebay.ca\"\n | \"ebay.com.au\";\n /**\n * Result sort order; omit for eBay's default ended-recently (e.g. price_high sorts by highest total price first).\n * One of: ended_recently, newly_listed, price_low, price_high, distance_nearest.\n */\n sort?:\n | \"ended_recently\"\n | \"newly_listed\"\n | \"price_low\"\n | \"price_high\"\n | \"distance_nearest\";\n}\n\nexport interface EbaySoldListingsItem {\n condition?: string;\n /**\n * Sale date (ISO 8601).\n */\n endedAt?: string;\n /**\n * Primary listing image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * eBay item identifier. Populated whenever the provider has data for the entity.\n */\n itemId: string;\n listingType?: string;\n sellerUsername?: string;\n soldCurrency?: string;\n /**\n * Final sold price.\n */\n soldPrice?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Sold price plus shipping.\n */\n totalPrice?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of eBay Sold Listings (ebay.sold_listings).\n */\nexport interface EbaySoldListingsData {\n /**\n * Sold listing records: title, sold price, sale date, condition, shipping, and item URL. Populated whenever the provider has data for the entity.\n */\n items: EbaySoldListingsItem[];\n}\n\n/**\n * Typed methods for the ebay platform. Attached to the AnyAPI client as\n * `client.ebay`.\n */\nexport class EbayNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * eBay Search\n *\n * Search eBay active listings by keyword with optional price-range, item-condition, listing-type, and sort filters and get title, price, condition, shipping, and seller in one normalized response.\n *\n * Price: $0.001 per request plus $0.00234 per result (maximum $0.0595).\n *\n * @example\n * const res = await client.ebay.search({ query: \"nintendo switch\", limit: 3, sort: \"price_low\" });\n */\n search(\n input: EbaySearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<EbaySearchData>> {\n return this._core.run(\"ebay.search\", input, options);\n }\n\n /**\n * eBay Sold Listings\n *\n * Retrieve recently sold eBay listings for any keyword with optional price-range and sort filters (sold price, sale date, condition, item details); ideal for pricing research.\n *\n * Price: $0.00005 per request plus $0.004 per result (maximum $0.10005).\n *\n * @example\n * const res = await client.ebay.soldListings({ query: \"nintendo switch\", limit: 3, sort: \"price_high\" });\n */\n soldListings(\n input: EbaySoldListingsInput,\n options?: RequestOptions,\n ): Promise<RunResult<EbaySoldListingsData>> {\n return this._core.run(\"ebay.sold_listings\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Email Finder (email.find).\n */\nexport interface EmailFindInput {\n /**\n * The person to find an email for, e.g. {\"firstName\": \"Jane\", \"surname\": \"Doe\", \"domain\": \"acme.com\"} (domain also accepts a company name).\n */\n person?: {\n /**\n * Company domain (e.g. acme.com) or company name (e.g. Acme Inc), resolved automatically.\n */\n domain: string;\n /**\n * The person's first name (e.g. Jane).\n */\n firstName: string;\n /**\n * The person's last name (e.g. Doe).\n */\n surname: string;\n };\n}\n\nexport interface EmailFindItem {\n domain?: string;\n /**\n * Discovered email address, or empty when none was found. Populated whenever the provider has data for the entity.\n */\n email: string;\n firstName?: string;\n isDeliverable?: boolean;\n lastName?: string;\n /**\n * Lookup status (e.g. found, not_found). Populated whenever the provider has data for the entity.\n */\n status: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Email Finder (email.find).\n */\nexport interface EmailFindData {\n /**\n * Email lookup records: the discovered email address, verification status, and the matched person and company details. Populated whenever the provider has data for the entity.\n */\n items: EmailFindItem[];\n}\n\n/**\n * Input for Email Verifier (email.verify).\n */\nexport interface EmailVerifyInput {\n /**\n * The email address to verify (e.g. jane.doe@acme.com).\n */\n email: string;\n}\n\nexport interface EmailVerifyItem {\n /**\n * Domain accepts all addresses.\n */\n catchAll?: boolean;\n disposable?: boolean;\n domain?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n email: string;\n /**\n * Free email provider.\n */\n free?: boolean;\n reason?: string;\n /**\n * Role-based address (e.g. info@).\n */\n role?: boolean;\n /**\n * Confidence score (0-100).\n */\n score?: number;\n /**\n * Deliverability verdict (e.g. valid, risky, invalid). Populated whenever the provider has data for the entity.\n */\n status: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Email Verifier (email.verify).\n */\nexport interface EmailVerifyData {\n /**\n * Verification records: the email address with its deliverability verdict and syntax, domain, and mailbox check details. Populated whenever the provider has data for the entity.\n */\n items: EmailVerifyItem[];\n}\n\n/**\n * Typed methods for the email platform. Attached to the AnyAPI client as\n * `client.email`.\n */\nexport class EmailNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Email Finder\n *\n * Find a person's work email address from their name and company domain.\n *\n * Price: $0.005 per request plus $0.008 per result (maximum $0.013).\n *\n * @example\n * const res = await client.email.find({ person: { domain: \"stripe.com\", firstName: \"Patrick\", surname: \"Collison\" } });\n */\n find(\n input: EmailFindInput,\n options?: RequestOptions,\n ): Promise<RunResult<EmailFindData>> {\n return this._core.run(\"email.find\", input, options);\n }\n\n /**\n * Email Verifier\n *\n * Verify any email address for deliverability: syntax, domain, and mailbox checks in one normalized response.\n *\n * Price: $0 per request plus $0.0008 per result (maximum $0.0008).\n *\n * @example\n * const res = await client.email.verify({ email: \"patrick@stripe.com\" });\n */\n verify(\n input: EmailVerifyInput,\n options?: RequestOptions,\n ): Promise<RunResult<EmailVerifyData>> {\n return this._core.run(\"email.verify\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Facebook Ad Details (facebook.ad_details).\n */\nexport interface FacebookAdDetailsInput {\n /**\n * Meta Ad Library ad ID (e.g. \"702369045530963\"). Provide either id or url.\n */\n id?: string;\n /**\n * Meta Ad Library ad URL (e.g. \"https://www.facebook.com/ads/library?id=1185617869915074\"). Provide either id or url.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Ad Details (facebook.ad_details).\n */\nexport interface FacebookAdDetailsData {\n /**\n * Whether the ad is currently running.\n */\n active?: boolean;\n /**\n * Ad Library archive ID (stable identity). Populated whenever the provider has data for the entity.\n */\n adArchiveId: string;\n /**\n * Call-to-action label. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n ctaText?: string;\n /**\n * Spend currency, may be empty.\n */\n currency?: string;\n /**\n * Ad creative format. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n displayFormat?: string;\n /**\n * Run end, epoch seconds.\n */\n endDate?: number;\n /**\n * Creative destination URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n linkUrl?: string;\n /**\n * Advertiser page ID (stable identity). Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Advertiser page name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n pageName?: string;\n /**\n * Publisher platforms the ad runs on. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n platforms?: string[];\n /**\n * Run start, epoch seconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n startDate?: number;\n /**\n * Ad body text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n /**\n * Creative title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Ad Transcript (facebook.ad_transcript).\n */\nexport interface FacebookAdTranscriptInput {\n /**\n * Meta Ad Library ad ID (e.g. \"1020359190509080\"). Provide either id or url.\n */\n id?: string;\n /**\n * Meta Ad Library ad URL (e.g. \"https://www.facebook.com/ads/library?id=1020359190509080\"). Provide either id or url.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Ad Transcript (facebook.ad_transcript).\n */\nexport interface FacebookAdTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adId: string;\n /**\n * Transcribed ad audio text.\n */\n transcript: string;\n transcriptAvailable: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Ad Search (facebook.ads_search).\n */\nexport interface FacebookAdsSearchInput {\n /**\n * Restrict to all ads (default) or only political and issue ads.\n * One of: all, political_and_issue_ads.\n */\n adType?: \"all\" | \"political_and_issue_ads\";\n /**\n * Two-letter country code to scope results. Omit for all countries.\n */\n country?: string;\n /**\n * Opaque pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Filter to ads with impressions on or before this date, in YYYY-MM-DD format.\n */\n endDate?: string;\n /**\n * Creative media type filter.\n * One of: ALL, IMAGE, VIDEO, MEME, IMAGE_AND_MEME, NONE.\n */\n mediaType?: \"ALL\" | \"IMAGE\" | \"VIDEO\" | \"MEME\" | \"IMAGE_AND_MEME\" | \"NONE\";\n /**\n * Keyword to search the Meta Ad Library for (e.g. \"protein powder\").\n */\n query: string;\n /**\n * Match mode for the query: loose keyword match (keyword_unordered, the default) or exact phrase (keyword_exact_phrase).\n * One of: keyword_unordered, keyword_exact_phrase.\n */\n searchType?: \"keyword_unordered\" | \"keyword_exact_phrase\";\n /**\n * Sort order: impressions (highest first, the default) or recent (most recent).\n * One of: impressions, recent.\n */\n sortBy?: \"impressions\" | \"recent\";\n /**\n * Filter to ads with impressions on or after this date, in YYYY-MM-DD format.\n */\n startDate?: string;\n /**\n * Ad status filter.\n * One of: ALL, ACTIVE, INACTIVE.\n * Default: ACTIVE.\n */\n status?: \"ALL\" | \"ACTIVE\" | \"INACTIVE\";\n}\n\nexport interface FacebookAdsSearchAd {\n active: boolean;\n /**\n * Number of ads in this campaign (collation count).\n */\n adCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n ctaText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n ctaType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayFormat: string;\n /**\n * Epoch seconds.\n */\n endDate: number;\n /**\n * Ad Library archive ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n linkUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n platforms: string[];\n /**\n * Epoch seconds. Populated whenever the provider has data for the entity.\n */\n startDate: number;\n /**\n * Ad body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Ad Search (facebook.ads_search).\n */\nexport interface FacebookAdsSearchData {\n ads: FacebookAdsSearchAd[];\n nextCursor: string;\n totalResults: number;\n}\n\n/**\n * Input for Facebook Comment Replies (facebook.comment_replies).\n */\nexport interface FacebookCommentRepliesInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * The expansion_token of the comment, from the post comments endpoint.\n */\n expansionToken: string;\n /**\n * The feedback_id of the comment (not the comment id).\n */\n feedbackId: string;\n}\n\nexport interface FacebookCommentRepliesReplie {\n /**\n * Identifier of the reply author. Populated whenever the provider has data for the entity.\n */\n authorId: string;\n /**\n * Display name of the reply author. Populated whenever the provider has data for the entity.\n */\n authorName: string;\n /**\n * URL of the author's profile picture.\n */\n authorProfilePicture: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Token used to expand nested replies, when present.\n */\n expansionToken?: string;\n /**\n * Facebook feedback identifier for the reply. Populated whenever the provider has data for the entity.\n */\n feedbackId: string;\n /**\n * Reply identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of reactions on the reply.\n */\n reactionCount: number;\n /**\n * Number of replies nested under this reply.\n */\n replyCount: number;\n /**\n * Reply text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Comment Replies (facebook.comment_replies).\n */\nexport interface FacebookCommentRepliesData {\n /**\n * True when more replies are available beyond this page.\n */\n hasNextPage: boolean;\n /**\n * Cursor for the next page of replies; empty when there are no more.\n */\n nextCursor: string;\n /**\n * Replies to the comment. Populated whenever the provider has data for the entity.\n */\n replies: FacebookCommentRepliesReplie[];\n}\n\n/**\n * Input for Facebook Company Ads (facebook.company_ads).\n */\nexport interface FacebookCompanyAdsInput {\n /**\n * Company name to search (e.g. \"nike\"). Provide either pageId or companyName.\n */\n companyName?: string;\n /**\n * Two-letter country code to scope results. Defaults to all countries.\n */\n country?: string;\n /**\n * Opaque pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Filter to ads with impressions on or before this date, in YYYY-MM-DD format.\n */\n endDate?: string;\n /**\n * Two-letter language code to filter ads (e.g. \"EN\", \"ES\", \"FR\").\n */\n language?: string;\n /**\n * Creative media type filter.\n * One of: ALL, IMAGE, VIDEO, MEME, IMAGE_AND_MEME, NONE.\n */\n mediaType?: \"ALL\" | \"IMAGE\" | \"VIDEO\" | \"MEME\" | \"IMAGE_AND_MEME\" | \"NONE\";\n /**\n * Company's Ad Library page ID. Provide either pageId or companyName.\n */\n pageId?: string;\n /**\n * Sort order: impressions (highest first, the default) or recent (most recent).\n * One of: impressions, recent.\n */\n sortBy?: \"impressions\" | \"recent\";\n /**\n * Filter to ads with impressions on or after this date, in YYYY-MM-DD format.\n */\n startDate?: string;\n /**\n * Ad status filter. Defaults to ACTIVE.\n * One of: ALL, ACTIVE, INACTIVE.\n */\n status?: \"ALL\" | \"ACTIVE\" | \"INACTIVE\";\n}\n\nexport interface FacebookCompanyAdsAd {\n active: boolean;\n /**\n * Number of ads in this campaign (collation count).\n */\n adCount: number;\n currency: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayFormat: string;\n /**\n * Epoch seconds.\n */\n endDate: number;\n /**\n * Ad Library archive ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n platforms: string[];\n /**\n * Epoch seconds. Populated whenever the provider has data for the entity.\n */\n startDate: number;\n /**\n * Ad body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Company Ads (facebook.company_ads).\n */\nexport interface FacebookCompanyAdsData {\n ads: FacebookCompanyAdsAd[];\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Event Details (facebook.event_details).\n */\nexport interface FacebookEventDetailsInput {\n /**\n * The event's numeric identifier.\n */\n id?: string;\n /**\n * The event's Facebook URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Event Details (facebook.event_details).\n */\nexport interface FacebookEventDetailsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n city: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverPhotoUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n dayTimeSentence: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n endTime: string;\n goingCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n interestedCount: number;\n isCanceled: boolean;\n isOnline: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n locationName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n startTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Events (facebook.events).\n */\nexport interface FacebookEventsInput {\n /**\n * Pagination cursor from a previous response to fetch the next page.\n */\n cursor?: string;\n /**\n * Timeframe filter for the returned events. Defaults to all time.\n * One of: today, this_week, next_week.\n */\n time?: \"today\" | \"this_week\" | \"next_week\";\n /**\n * URL of a city's or place's Facebook Events page (e.g. https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547).\n */\n url: string;\n}\n\nexport interface FacebookEventsEvent {\n /**\n * Populated whenever the provider has data for the entity.\n */\n dayTimeSentence: string;\n goingCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n interestedCount: number;\n isOnline: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n placeName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n startTimestamp: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Events (facebook.events).\n */\nexport interface FacebookEventsData {\n events: FacebookEventsEvent[];\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Events Search (facebook.events_search).\n */\nexport interface FacebookEventsSearchInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * The query to search events for.\n */\n query: string;\n}\n\nexport interface FacebookEventsSearchEvent {\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverImage: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n dayTimeSentence: string;\n goingCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n interestedCount: number;\n isOnline: boolean;\n isPast: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n placeName: string;\n priceRangeText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n startTimestamp: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Events Search (facebook.events_search).\n */\nexport interface FacebookEventsSearchData {\n events: FacebookEventsSearchEvent[];\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Followers (facebook.followers).\n */\nexport interface FacebookFollowersInput {\n /**\n * Which relation to fetch: 'follower' or 'following' (e.g. follower).\n * Default: follower.\n */\n followType?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Facebook page or profile URL to list follows for (e.g. https://www.facebook.com/nasa).\n */\n url: string;\n}\n\nexport interface FacebookFollowersItem {\n /**\n * The account's numeric Facebook ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the account's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The account's public display name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Canonical URL of the account's Facebook profile, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Followers (facebook.followers).\n */\nexport interface FacebookFollowersData {\n /**\n * Follower or following records for the target page/profile. Populated whenever the provider has data for the entity.\n */\n items: FacebookFollowersItem[];\n}\n\n/**\n * Input for Facebook Group Posts (facebook.group_posts).\n */\nexport interface FacebookGroupPostsInput {\n /**\n * Pagination cursor from a previous response to fetch the next page.\n */\n cursor?: string;\n /**\n * Ordering for the returned posts (e.g. TOP_POSTS).\n * One of: TOP_POSTS, RECENT_ACTIVITY, CHRONOLOGICAL, CHRONOLOGICAL_LISTINGS.\n */\n sort?:\n | \"TOP_POSTS\"\n | \"RECENT_ACTIVITY\"\n | \"CHRONOLOGICAL\"\n | \"CHRONOLOGICAL_LISTINGS\";\n /**\n * The URL of a public Facebook group to fetch posts from (e.g. https://www.facebook.com/groups/1270525996445602/).\n */\n url: string;\n}\n\nexport interface FacebookGroupPostsPost {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorName: string;\n commentCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n permalink: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishTime: number;\n reactionCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Group Posts (facebook.group_posts).\n */\nexport interface FacebookGroupPostsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: FacebookGroupPostsPost[];\n}\n\n/**\n * Input for Facebook Marketplace (facebook.marketplace).\n */\nexport interface FacebookMarketplaceInput {\n /**\n * Filter by availability: available (default), sold, or all (e.g. sold).\n * One of: available, sold, all.\n */\n availability?: \"available\" | \"sold\" | \"all\";\n /**\n * Only return listings in this condition (e.g. used_good).\n * One of: new, used_like_new, used_good, used_fair.\n */\n condition?: \"new\" | \"used_like_new\" | \"used_good\" | \"used_fair\";\n /**\n * Pagination cursor from a previous response to fetch the next page.\n */\n cursor?: string;\n /**\n * Only return listings posted within this window (e.g. last_7_days).\n * One of: all, last_24_hours, last_7_days, last_30_days.\n */\n dateListed?: \"all\" | \"last_24_hours\" | \"last_7_days\" | \"last_30_days\";\n /**\n * Only return listings offering this delivery method (e.g. shipping).\n * One of: all, local_pickup, shipping.\n */\n deliveryMethod?: \"all\" | \"local_pickup\" | \"shipping\";\n /**\n * Latitude of the search location (e.g. '30.2677').\n */\n lat: string;\n /**\n * Longitude of the search location (e.g. '-97.7475').\n */\n lng: string;\n /**\n * Maximum listing price in whole currency units, e.g. 500 for $500. Facebook may mix in a few suggested listings outside the range.\n * Range: minimum 0.\n */\n priceMax?: number;\n /**\n * Minimum listing price in whole currency units, e.g. 100 for $100. Facebook may mix in a few suggested listings outside the range.\n * Range: minimum 0.\n */\n priceMin?: number;\n /**\n * Search keyword for Marketplace listings (e.g. 'bike').\n */\n query: string;\n /**\n * Sort order for the returned listings (e.g. price_ascend).\n * One of: suggested, distance_ascend, creation_time_descend, price_ascend, price_descend.\n */\n sort?:\n | \"suggested\"\n | \"distance_ascend\"\n | \"creation_time_descend\"\n | \"price_ascend\"\n | \"price_descend\";\n}\n\nexport interface FacebookMarketplaceListing {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isSold: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n locationName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n photoUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n priceAmount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n priceFormatted: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Marketplace (facebook.marketplace).\n */\nexport interface FacebookMarketplaceData {\n hasNextPage: boolean;\n listings: FacebookMarketplaceListing[];\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Marketplace Item (facebook.marketplace_item).\n */\nexport interface FacebookMarketplaceItemInput {\n /**\n * Facebook Marketplace item ID.\n */\n id?: string;\n /**\n * Facebook Marketplace item URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Marketplace Item (facebook.marketplace_item).\n */\nexport interface FacebookMarketplaceItemData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n categoryId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n creationTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n currency: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isLive: boolean;\n isSold: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n locationText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n priceAmount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n priceFormatted: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Marketplace Location Search (facebook.marketplace_location_search).\n */\nexport interface FacebookMarketplaceLocationSearchInput {\n /**\n * Location search query (e.g. a city name).\n */\n query: string;\n}\n\nexport interface FacebookMarketplaceLocationSearchLocation {\n /**\n * Populated whenever the provider has data for the entity.\n */\n city: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n latitude: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n longitude: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n postalCode: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n subtitle: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Marketplace Location Search (facebook.marketplace_location_search).\n */\nexport interface FacebookMarketplaceLocationSearchData {\n locations: FacebookMarketplaceLocationSearchLocation[];\n}\n\n/**\n * Input for Facebook Page Contact Info (facebook.page_contact).\n */\nexport interface FacebookPageContactInput {\n /**\n * Locale code for the returned data (e.g. en-US).\n * Default: en-US.\n */\n language?: string;\n /**\n * Facebook Page URL or page ID to look up (e.g. https://www.facebook.com/nasa).\n */\n page: string;\n}\n\nexport interface FacebookPageContactItem {\n /**\n * The page's public physical address. Empty when the page lists none.\n */\n address?: string;\n /**\n * The page's primary category (e.g. \"Seafood Restaurant\"). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n category?: string;\n /**\n * The page's public contact email. Empty when the page lists none.\n */\n email?: string;\n /**\n * The page's follower count.\n */\n followers?: number;\n /**\n * URL of the page's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The page's public phone number. Empty when the page lists none.\n */\n phone?: string;\n /**\n * The page's public name. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical URL of the Facebook Page, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The page's public website URL. Empty when the page lists none.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Page Contact Info (facebook.page_contact).\n */\nexport interface FacebookPageContactData {\n /**\n * Contact record for the requested Facebook Page (one item). Populated whenever the provider has data for the entity.\n */\n items: FacebookPageContactItem[];\n}\n\n/**\n * Input for Facebook Page Photos (facebook.photos).\n */\nexport interface FacebookPhotosInput {\n /**\n * Pagination cursor from a previous response to fetch the next page.\n */\n cursor?: string;\n /**\n * URL of the public Facebook page or profile to fetch photos from (e.g. https://www.facebook.com/Spurs).\n */\n url: string;\n}\n\nexport interface FacebookPhotosPhoto {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n imageHeight: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n imageUrl: string;\n imageWidth: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n photoId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n thumbnail: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Page Photos (facebook.photos).\n */\nexport interface FacebookPhotosData {\n nextCursor: string;\n nextPageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n photos: FacebookPhotosPhoto[];\n}\n\n/**\n * Input for Facebook Post (facebook.post).\n */\nexport interface FacebookPostInput {\n /**\n * Full Facebook post URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Facebook Post (facebook.post).\n */\nexport interface FacebookPostData {\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n shares: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Post Comments (facebook.post_comments).\n */\nexport interface FacebookPostCommentsInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Facebook feedback id for the post (alternative to url).\n */\n feedbackId?: string;\n /**\n * Full Facebook post URL.\n */\n url?: string;\n}\n\nexport interface FacebookPostCommentsComment {\n /**\n * Display name of the comment author. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Comment identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of reactions on the comment.\n */\n reactions: number;\n /**\n * Number of replies to the comment.\n */\n replies: number;\n /**\n * Comment text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Post Comments (facebook.post_comments).\n */\nexport interface FacebookPostCommentsData {\n /**\n * Comments on the post. Populated whenever the provider has data for the entity.\n */\n comments: FacebookPostCommentsComment[];\n /**\n * Cursor for the next page of comments; empty when there are no more.\n */\n nextCursor: string;\n}\n\n/**\n * Input for Facebook Post Transcript (facebook.post_transcript).\n */\nexport interface FacebookPostTranscriptInput {\n /**\n * The Facebook post or video URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Facebook Post Transcript (facebook.post_transcript).\n */\nexport interface FacebookPostTranscriptData {\n transcript: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Profile (facebook.profile).\n */\nexport interface FacebookProfileInput {\n /**\n * Facebook page handle/username.\n */\n handle?: string;\n /**\n * Full Facebook page URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Facebook Profile (facebook.profile).\n */\nexport interface FacebookProfileData {\n about: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n category: string;\n followers: number;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Facebook Page Events (facebook.profile_events).\n */\nexport interface FacebookProfileEventsInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * The Facebook page URL.\n */\n url: string;\n}\n\nexport interface FacebookProfileEventsEvent {\n city: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n creatorName: string;\n dayTimeSentence: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isCanceled: boolean;\n isOnline: boolean;\n isPast: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n placeName: string;\n startTimestamp: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Page Events (facebook.profile_events).\n */\nexport interface FacebookProfileEventsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n events: FacebookProfileEventsEvent[];\n hasNextPage: boolean;\n nextCursor: string;\n totalCount: number;\n}\n\n/**\n * Input for Facebook Profile Posts (facebook.profile_posts).\n */\nexport interface FacebookProfilePostsInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Facebook page id.\n */\n pageId?: string;\n /**\n * Full Facebook page/profile URL.\n */\n url?: string;\n}\n\nexport interface FacebookProfilePostsPost {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Profile Posts (facebook.profile_posts).\n */\nexport interface FacebookProfilePostsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: FacebookProfilePostsPost[];\n}\n\n/**\n * Input for Facebook Profile Reels (facebook.profile_reels).\n */\nexport interface FacebookProfileReelsInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Full Facebook page/profile URL.\n */\n url: string;\n}\n\nexport interface FacebookProfileReelsReel {\n /**\n * Reel caption text. Populated whenever the provider has data for the entity.\n */\n caption: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Reel identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the reel thumbnail image. Populated whenever the provider has data for the entity.\n */\n thumbnail: string;\n /**\n * Canonical URL of the reel. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Number of views on the reel.\n */\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Profile Reels (facebook.profile_reels).\n */\nexport interface FacebookProfileReelsData {\n /**\n * The profile's reels. Populated whenever the provider has data for the entity.\n */\n reels: FacebookProfileReelsReel[];\n}\n\n/**\n * Input for Facebook Company Search (facebook.search_companies).\n */\nexport interface FacebookSearchCompaniesInput {\n /**\n * Keyword to search advertiser pages for (e.g. \"nike\").\n */\n query: string;\n}\n\nexport interface FacebookSearchCompaniesCompanie {\n /**\n * Populated whenever the provider has data for the entity.\n */\n category: string;\n country: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n entityType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n igFollowers: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n igUsername: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n imageUrl: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageAlias: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n pageId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n verification: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Company Search (facebook.search_companies).\n */\nexport interface FacebookSearchCompaniesData {\n companies: FacebookSearchCompaniesCompanie[];\n}\n\n/**\n * Input for Facebook Page Search (facebook.search_pages).\n */\nexport interface FacebookSearchPagesInput {\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * Optional free-text location to narrow the search: a city, province, or country (e.g. 'Berlin').\n */\n location?: string;\n /**\n * Keyword to search Facebook Pages for (e.g. 'coffee roasters').\n */\n query: string;\n}\n\nexport interface FacebookSearchPagesItem {\n /**\n * The page's primary category (e.g. \"Sportswear Store\"). Empty when the upstream omits it.\n */\n category?: string;\n /**\n * The page's follower count.\n */\n followers?: number;\n /**\n * The page's numeric Facebook ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the page's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The page's like count.\n */\n likes?: number;\n /**\n * The page's public phone number. Empty when the upstream omits it.\n */\n phone?: string;\n /**\n * The page's public name. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical URL of the Facebook Page, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The page's public website URL. Empty when the upstream omits it.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Page Search (facebook.search_pages).\n */\nexport interface FacebookSearchPagesData {\n /**\n * Matching Facebook Page records for the query. Populated whenever the provider has data for the entity.\n */\n items: FacebookSearchPagesItem[];\n}\n\n/**\n * Input for Facebook Post Search (facebook.search_posts).\n */\nexport interface FacebookSearchPostsInput {\n /**\n * Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2024-12-31).\n */\n endDate?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Optional location to narrow results; include both city and country for best matches (e.g. 'Paris, France').\n */\n location?: string;\n /**\n * Keyword or phrase to search Facebook posts for (e.g. 'product launch').\n */\n query: string;\n /**\n * Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2024-01-01).\n */\n startDate?: string;\n}\n\nexport interface FacebookSearchPostsItem {\n /**\n * Display name of the post's author. Empty when the upstream omits it.\n */\n authorName?: string;\n /**\n * Canonical profile URL of the post's author, with tracking query params stripped. Empty when the upstream omits it.\n */\n authorUrl?: string;\n /**\n * Total number of comments on the post.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * The post's numeric Facebook ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the post's primary image, with tracking query params stripped. Empty for text-only or video posts.\n */\n image?: string;\n /**\n * Total number of reactions on the post.\n */\n reactionCount?: number;\n /**\n * Total number of shares/reshares of the post.\n */\n shareCount?: number;\n /**\n * The post's text/message. Empty for media-only posts with no caption.\n */\n text: string;\n /**\n * Canonical URL of the post, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Facebook Post Search (facebook.search_posts).\n */\nexport interface FacebookSearchPostsData {\n /**\n * Matching public Facebook post records for the query. Populated whenever the provider has data for the entity.\n */\n items: FacebookSearchPostsItem[];\n}\n\n/**\n * Typed methods for the facebook platform. Attached to the AnyAPI client as\n * `client.facebook`.\n */\nexport class FacebookNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Facebook Ad Details\n *\n * Look up a single Meta Ad Library ad by ID or URL and get the advertiser, creative text, call-to-action, platforms, and run dates as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.adDetails({ id: \"1869276447125570\" });\n */\n adDetails(\n input: FacebookAdDetailsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookAdDetailsData>> {\n return this._core.run(\"facebook.ad_details\", input, options);\n }\n\n /**\n * Facebook Ad Transcript\n *\n * Get the spoken-word transcript of a Meta Ad Library video ad by ad ID or URL.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.adTranscript({ id: \"931919822778200\" });\n */\n adTranscript(\n input: FacebookAdTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookAdTranscriptData>> {\n return this._core.run(\"facebook.ad_transcript\", input, options);\n }\n\n /**\n * Facebook Ad Search\n *\n * Search the Meta Ad Library by keyword and get matching ads (advertiser, creative text, CTA, platforms, and run dates) with cursor pagination and transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.adsSearch({ query: \"nike\", country: \"US\", searchType: \"keyword_exact_phrase\" });\n */\n adsSearch(\n input: FacebookAdsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookAdsSearchData>> {\n return this._core.run(\"facebook.ads_search\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Ad Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterAdsSearch(\n input: FacebookAdsSearchInput,\n options?: RequestOptions,\n ): Paginator<FacebookAdsSearchAd, RunResult<FacebookAdsSearchData>> {\n return paginate<FacebookAdsSearchAd, RunResult<FacebookAdsSearchData>>(\n this._core,\n \"facebook.ads_search\",\n input as unknown as Record<string, unknown>,\n \"ads\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Comment Replies\n *\n * List the replies to a Facebook post comment (text, author, reactions, and timestamps) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.commentReplies({ expansionToken: \"MjoxNzgzMjI4OTY4OgF_o5zrjDnpemv4bwPtpsShXutqvKIw2bKs2YuJksL1Ak8n8YG-_KPSQGkIks5oW6wdRfhb_cRv9q5OX0NHjFJwEupYNZi9pcMV-FYLWLp47u-eusMkZFOMwbkISsTln7gtSvQrOzlffyavOTIL85PECYzGfunU2IAEkd13CIikxu06Mw10UJ1ShcFAmz8175R1uJfYy_iOixWZukqfrWhUfVOXApXznxx7qXvUxPwct76qe6p7-nVWQrPC_SZc2xh9Z8ggL3WMjgTzSq4oWFSsyZuuVsyVVjSgdjRQiDqtJSeEUlSjTr6vOnKsvKV-GpnBRaeA0BCaNRhqpB4xDZoduBuO5ZYrFvWLJdJLryDhCPI2Ss-Z33cEM2Vz7pLf1wJzE7TuizXPwICSn1DA_Prca-BItTbOUjAjfiySap1LXYkGuuDC2ziUdiEsmE5XhevMP8XtF_2WQlMNcGbXMEQyAWDUawtPAxXgMeRrCO9YGSweFQ4OZumoIlSGa3Vfjy-euUOHT1IAsNbV2A8rAq4HJNU3jCXQTn0vfW9xvbVQhL-53Mhw2YPjhlvUj6QpnGA25N8\", feedbackId: \"ZmVlZGJhY2s6MTM5MzQ2MTExNTQ4MTkyN18yMDgyNjUzMjQ1ODA5Mzg2\" });\n */\n commentReplies(\n input: FacebookCommentRepliesInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookCommentRepliesData>> {\n return this._core.run(\"facebook.comment_replies\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Comment Replies across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterCommentReplies(\n input: FacebookCommentRepliesInput,\n options?: RequestOptions,\n ): Paginator<\n FacebookCommentRepliesReplie,\n RunResult<FacebookCommentRepliesData>\n > {\n return paginate<\n FacebookCommentRepliesReplie,\n RunResult<FacebookCommentRepliesData>\n >(\n this._core,\n \"facebook.comment_replies\",\n input as unknown as Record<string, unknown>,\n \"replies\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Company Ads\n *\n * List the Meta Ad Library ads a company is running by page ID or company name (creative text, format, platforms, and run dates) with cursor pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.companyAds({ companyName: \"nike\", sortBy: \"recent\" });\n */\n companyAds(\n input: FacebookCompanyAdsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookCompanyAdsData>> {\n return this._core.run(\"facebook.company_ads\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Company Ads across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterCompanyAds(\n input: FacebookCompanyAdsInput,\n options?: RequestOptions,\n ): Paginator<FacebookCompanyAdsAd, RunResult<FacebookCompanyAdsData>> {\n return paginate<FacebookCompanyAdsAd, RunResult<FacebookCompanyAdsData>>(\n this._core,\n \"facebook.company_ads\",\n input as unknown as Record<string, unknown>,\n \"ads\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Event Details\n *\n * Fetch full details for a single Facebook event by ID or URL (name, schedule, venue, hosts, and attendance) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.eventDetails({ id: \"4045709448982422\" });\n */\n eventDetails(\n input: FacebookEventDetailsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookEventDetailsData>> {\n return this._core.run(\"facebook.event_details\", input, options);\n }\n\n /**\n * Facebook Events\n *\n * List public Facebook events for a city or place by its events-page URL (event name, date, venue, and attendance) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.events({ url: \"https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547\" });\n */\n events(\n input: FacebookEventsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookEventsData>> {\n return this._core.run(\"facebook.events\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Events across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterEvents(\n input: FacebookEventsInput,\n options?: RequestOptions,\n ): Paginator<FacebookEventsEvent, RunResult<FacebookEventsData>> {\n return paginate<FacebookEventsEvent, RunResult<FacebookEventsData>>(\n this._core,\n \"facebook.events\",\n input as unknown as Record<string, unknown>,\n \"events\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Events Search\n *\n * Search public Facebook events by keyword and get structured event records (name, schedule, venue, pricing, and attendance) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.eventsSearch({ query: \"music festival\" });\n */\n eventsSearch(\n input: FacebookEventsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookEventsSearchData>> {\n return this._core.run(\"facebook.events_search\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Events Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterEventsSearch(\n input: FacebookEventsSearchInput,\n options?: RequestOptions,\n ): Paginator<FacebookEventsSearchEvent, RunResult<FacebookEventsSearchData>> {\n return paginate<\n FacebookEventsSearchEvent,\n RunResult<FacebookEventsSearchData>\n >(\n this._core,\n \"facebook.events_search\",\n input as unknown as Record<string, unknown>,\n \"events\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Followers\n *\n * List the public followers (or accounts followed) of any Facebook page or profile URL as normalized JSON records.\n *\n * Price: $0 per request plus $0.006 per result (maximum $0.12).\n *\n * @example\n * const res = await client.facebook.followers({ url: \"https://www.facebook.com/nike\", limit: 3 });\n */\n followers(\n input: FacebookFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookFollowersData>> {\n return this._core.run(\"facebook.followers\", input, options);\n }\n\n /**\n * Facebook Group Posts\n *\n * Fetch recent posts from any public Facebook group by URL: text, author, reactions, and comment counts.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.groupPosts({ url: \"https://www.facebook.com/groups/1270525996445602/\" });\n */\n groupPosts(\n input: FacebookGroupPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookGroupPostsData>> {\n return this._core.run(\"facebook.group_posts\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Group Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterGroupPosts(\n input: FacebookGroupPostsInput,\n options?: RequestOptions,\n ): Paginator<FacebookGroupPostsPost, RunResult<FacebookGroupPostsData>> {\n return paginate<FacebookGroupPostsPost, RunResult<FacebookGroupPostsData>>(\n this._core,\n \"facebook.group_posts\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Marketplace\n *\n * Search Facebook Marketplace listings by keyword near a location, filter by price, condition, delivery, recency, and availability, and get title, price, location, and image as normalized JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.marketplace({ lat: \"30.2677\", lng: \"-97.7475\", query: \"bike\", priceMax: 500, priceMin: 100 });\n */\n marketplace(\n input: FacebookMarketplaceInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookMarketplaceData>> {\n return this._core.run(\"facebook.marketplace\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Marketplace across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterMarketplace(\n input: FacebookMarketplaceInput,\n options?: RequestOptions,\n ): Paginator<FacebookMarketplaceListing, RunResult<FacebookMarketplaceData>> {\n return paginate<\n FacebookMarketplaceListing,\n RunResult<FacebookMarketplaceData>\n >(\n this._core,\n \"facebook.marketplace\",\n input as unknown as Record<string, unknown>,\n \"listings\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Marketplace Item\n *\n * Fetch full details for a single Facebook Marketplace listing by ID or URL (title, price, location, photos, and attributes) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.marketplaceItem({ url: \"https://www.facebook.com/marketplace/item/1656586118821988/\" });\n */\n marketplaceItem(\n input: FacebookMarketplaceItemInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookMarketplaceItemData>> {\n return this._core.run(\"facebook.marketplace_item\", input, options);\n }\n\n /**\n * Facebook Marketplace Location Search\n *\n * Resolve a place name to Facebook Marketplace locations with coordinates and metadata as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.marketplaceLocationSearch({ query: \"Austin\" });\n */\n marketplaceLocationSearch(\n input: FacebookMarketplaceLocationSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookMarketplaceLocationSearchData>> {\n return this._core.run(\n \"facebook.marketplace_location_search\",\n input,\n options,\n );\n }\n\n /**\n * Facebook Page Contact Info\n *\n * Look up a Facebook Page's public contact details (email, phone, website, and address) by page URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.pageContact({ page: \"https://www.facebook.com/joesstonecrab\" });\n */\n pageContact(\n input: FacebookPageContactInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPageContactData>> {\n return this._core.run(\"facebook.page_contact\", input, options);\n }\n\n /**\n * Facebook Page Photos\n *\n * Fetch recent photos posted by any public Facebook page or profile (image URLs, captions, and dimensions) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.photos({ url: \"https://www.facebook.com/Spurs\" });\n */\n photos(\n input: FacebookPhotosInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPhotosData>> {\n return this._core.run(\"facebook.photos\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Page Photos across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterPhotos(\n input: FacebookPhotosInput,\n options?: RequestOptions,\n ): Paginator<FacebookPhotosPhoto, RunResult<FacebookPhotosData>> {\n return paginate<FacebookPhotosPhoto, RunResult<FacebookPhotosData>>(\n this._core,\n \"facebook.photos\",\n input as unknown as Record<string, unknown>,\n \"photos\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Post\n *\n * Fetch a single Facebook post by URL with its text and engagement counts (likes, comments, shares, views), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.post({ url: \"https://www.facebook.com/reel/2166091230582141/\" });\n */\n post(\n input: FacebookPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPostData>> {\n return this._core.run(\"facebook.post\", input, options);\n }\n\n /**\n * Facebook Post Comments\n *\n * List the comments on a Facebook post by URL with cursor pagination (text, author, reactions, reply count), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.postComments({ url: \"https://www.facebook.com/reel/2166091230582141/\" });\n */\n postComments(\n input: FacebookPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPostCommentsData>> {\n return this._core.run(\"facebook.post_comments\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Post Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterPostComments(\n input: FacebookPostCommentsInput,\n options?: RequestOptions,\n ): Paginator<\n FacebookPostCommentsComment,\n RunResult<FacebookPostCommentsData>\n > {\n return paginate<\n FacebookPostCommentsComment,\n RunResult<FacebookPostCommentsData>\n >(\n this._core,\n \"facebook.post_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Post Transcript\n *\n * Get the spoken-word transcript of any public Facebook video post by URL as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.postTranscript({ url: \"https://www.facebook.com/reel/2166091230582141/\" });\n */\n postTranscript(\n input: FacebookPostTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookPostTranscriptData>> {\n return this._core.run(\"facebook.post_transcript\", input, options);\n }\n\n /**\n * Facebook Profile\n *\n * Fetch a Facebook page's public profile (likes, followers, category, about) by URL or handle, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.profile({ url: \"https://www.facebook.com/nike\" });\n */\n profile(\n input: FacebookProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookProfileData>> {\n return this._core.run(\"facebook.profile\", input, options);\n }\n\n /**\n * Facebook Page Events\n *\n * List upcoming and past events hosted by any public Facebook page by URL (name, schedule, venue, and host) as normalized JSON at a.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.profileEvents({ url: \"https://www.facebook.com/brickyardoldtown\" });\n */\n profileEvents(\n input: FacebookProfileEventsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookProfileEventsData>> {\n return this._core.run(\"facebook.profile_events\", input, options);\n }\n\n /**\n * Iterate every result of Facebook Page Events across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterProfileEvents(\n input: FacebookProfileEventsInput,\n options?: RequestOptions,\n ): Paginator<\n FacebookProfileEventsEvent,\n RunResult<FacebookProfileEventsData>\n > {\n return paginate<\n FacebookProfileEventsEvent,\n RunResult<FacebookProfileEventsData>\n >(\n this._core,\n \"facebook.profile_events\",\n input as unknown as Record<string, unknown>,\n \"events\",\n false,\n options,\n );\n }\n\n /**\n * Facebook Profile Posts\n *\n * List a Facebook page's recent posts by URL or page id with cursor pagination (text, author, permalink), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.profilePosts({ url: \"https://www.facebook.com/nike\" });\n */\n profilePosts(\n input: FacebookProfilePostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookProfilePostsData>> {\n return this._core.run(\"facebook.profile_posts\", input, options);\n }\n\n /**\n * Facebook Profile Reels\n *\n * List a Facebook page's reels by URL with cursor pagination (caption, view count, permalink, thumbnail), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.profileReels({ url: \"https://www.facebook.com/nike\" });\n */\n profileReels(\n input: FacebookProfileReelsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookProfileReelsData>> {\n return this._core.run(\"facebook.profile_reels\", input, options);\n }\n\n /**\n * Facebook Company Search\n *\n * Search the Meta Ad Library for advertisers by keyword and get matching pages: page ID, category, verification, follower counts, and linked Instagram.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.facebook.searchCompanies({ query: \"nike\" });\n */\n searchCompanies(\n input: FacebookSearchCompaniesInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookSearchCompaniesData>> {\n return this._core.run(\"facebook.search_companies\", input, options);\n }\n\n /**\n * Facebook Page Search\n *\n * Search Facebook Pages by keyword, optionally narrowed to a location, and get structured page profiles (name, category, followers, contact details) at a.\n *\n * Price: $0.001 per request plus $0.011 per result (maximum $0.111).\n *\n * @example\n * const res = await client.facebook.searchPages({ query: \"nike\", limit: 3 });\n */\n searchPages(\n input: FacebookSearchPagesInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookSearchPagesData>> {\n return this._core.run(\"facebook.search_pages\", input, options);\n }\n\n /**\n * Facebook Post Search\n *\n * Search public Facebook posts by keyword, optionally filtered by location, and get structured post records (text, author, engagement).\n *\n * Price: $0 per request plus $0.003 per result (maximum $0.06).\n *\n * @example\n * const res = await client.facebook.searchPosts({ query: \"nike\", limit: 3 });\n */\n searchPosts(\n input: FacebookSearchPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<FacebookSearchPostsData>> {\n return this._core.run(\"facebook.search_posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Fiverr Gig Search (fiverr.search).\n */\nexport interface FiverrSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Fiverr search or category page URL to extract gigs from.\n */\n url: string;\n}\n\nexport interface FiverrSearchItem {\n /**\n * Delivery time in days.\n */\n duration?: number;\n /**\n * Stable Fiverr gig identifier. Populated whenever the provider has data for the entity.\n */\n gigId: string;\n /**\n * Canonical Fiverr URL for the gig. Populated whenever the provider has data for the entity.\n */\n gigUrl: string;\n /**\n * Primary gig thumbnail URL.\n */\n image?: string;\n /**\n * Starting price in USD.\n */\n price?: number;\n /**\n * Seller country code.\n */\n sellerCountry?: string;\n /**\n * Seller display name.\n */\n sellerDisplayName?: string;\n /**\n * Fiverr seller level.\n */\n sellerLevel?: string;\n /**\n * Seller username.\n */\n sellerName?: string;\n /**\n * Number of seller ratings.\n */\n sellerRatingCount?: number;\n /**\n * Average seller rating.\n */\n sellerRatingScore?: number;\n /**\n * Seller profile URL.\n */\n sellerUrl?: string;\n /**\n * Gig headline. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Fiverr Gig Search (fiverr.search).\n */\nexport interface FiverrSearchData {\n /**\n * Gig records from the search or category URL. Operators may return additional fields beyond those documented here. Populated whenever the provider has data for the entity.\n */\n items: FiverrSearchItem[];\n}\n\n/**\n * Typed methods for the fiverr platform. Attached to the AnyAPI client as\n * `client.fiverr`.\n */\nexport class FiverrNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Fiverr Gig Search\n *\n * Extract Fiverr gig listings from any search or category URL: titles, sellers, ratings, and pricing as structured JSON.\n *\n * Price: $0 per request plus $0.0015 per result (maximum $0.03).\n *\n * @example\n * const res = await client.fiverr.search({ url: \"https://www.fiverr.com/search/gigs?query=logo%20design\", limit: 3 });\n */\n search(\n input: FiverrSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<FiverrSearchData>> {\n return this._core.run(\"fiverr.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for GitHub Repository (github.repository).\n */\nexport interface GithubRepositoryInput {\n /**\n * GitHub repository URL (e.g. https://github.com/facebook/react).\n */\n url: string;\n}\n\n/**\n * The `data` payload of GitHub Repository (github.repository).\n */\nexport interface GithubRepositoryData {\n /**\n * Whether the repository is archived.\n */\n archived?: boolean;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Name of the default branch. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n defaultBranch?: string;\n /**\n * Short repository description, or null if none.\n */\n description?: string;\n /**\n * Whether the repository is a fork.\n */\n fork?: boolean;\n /**\n * Number of forks.\n */\n forks?: number;\n /**\n * Full repository name in owner/name form. Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Project homepage URL, or null if none.\n */\n homepage?: string;\n /**\n * Primary programming language, or null if undetected.\n */\n language?: string;\n /**\n * License name, or null if unlicensed.\n */\n license?: string;\n /**\n * Repository short name (without owner). Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Count of open issues and pull requests.\n */\n openIssues?: number;\n /**\n * Login of the repository owner (user or organization). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n owner?: string;\n /**\n * Last push timestamp (ISO 8601). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n pushedAt?: string;\n /**\n * Number of stargazers.\n */\n stars?: number;\n /**\n * Repository topic tags.\n */\n topics?: string[];\n /**\n * Last metadata update timestamp (ISO 8601). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n updatedAt?: string;\n /**\n * Canonical URL of the repository. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Number of watchers.\n */\n watchers?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for GitHub Trending Developers (github.trending_developers).\n */\nexport interface GithubTrendingDevelopersInput {\n /**\n * Programming language to filter trending developers (e.g. javascript, python, go).\n */\n language?: string;\n /**\n * Trending range: daily, weekly, or monthly (defaults to daily).\n */\n since?: string;\n}\n\nexport interface GithubTrendingDevelopersDeveloper {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n name: string;\n popularRepo: string;\n popularRepoDescription: string;\n popularRepoUrl: string;\n rank: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub Trending Developers (github.trending_developers).\n */\nexport interface GithubTrendingDevelopersData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n developers: GithubTrendingDevelopersDeveloper[];\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n since: string;\n}\n\n/**\n * Input for GitHub Trending Repositories (github.trending_repositories).\n */\nexport interface GithubTrendingRepositoriesInput {\n /**\n * Filter by programming language (e.g. \"go\", \"typescript\"). Omit for all languages.\n */\n language?: string;\n /**\n * Trending window.\n * One of: daily, weekly, monthly.\n * Default: daily.\n */\n since?: \"daily\" | \"weekly\" | \"monthly\";\n}\n\nexport interface GithubTrendingRepositoriesRepo {\n description: string;\n forks: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n fullName: string;\n language: string;\n rank: number;\n stars: number;\n starsToday: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub Trending Repositories (github.trending_repositories).\n */\nexport interface GithubTrendingRepositoriesData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n repos: GithubTrendingRepositoriesRepo[];\n}\n\n/**\n * Input for GitHub User (github.user).\n */\nexport interface GithubUserInput {\n /**\n * GitHub username.\n */\n handle: string;\n}\n\n/**\n * The `data` payload of GitHub User (github.user).\n */\nexport interface GithubUserData {\n /**\n * URL of the profile avatar image. Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Profile bio text.\n */\n bio: string;\n /**\n * Blog or website URL from the profile.\n */\n blog?: string;\n /**\n * Company listed on the profile.\n */\n company?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Number of followers.\n */\n followers: number;\n /**\n * Number of accounts the user follows.\n */\n following: number;\n /**\n * Location listed on the profile.\n */\n location?: string;\n /**\n * GitHub username (handle). Populated whenever the provider has data for the entity.\n */\n login: string;\n /**\n * Display name, or empty string if unset. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Count of public gists.\n */\n publicGists?: number;\n /**\n * Count of public repositories.\n */\n publicRepos: number;\n /**\n * Linked X/Twitter username.\n */\n twitterUsername?: string;\n /**\n * \"User\" or \"Organization\".\n */\n type?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for GitHub User Activity (github.user_activity).\n */\nexport interface GithubUserActivityInput {\n /**\n * Pagination cursor from a previous response (pages backward by month).\n */\n cursor?: string;\n /**\n * GitHub username.\n */\n handle: string;\n /**\n * Year of contribution activity to return (defaults to the current year).\n */\n year?: string;\n}\n\nexport interface GithubUserActivityActivity {\n /**\n * Populated whenever the provider has data for the entity.\n */\n summary: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Activity (github.user_activity).\n */\nexport interface GithubUserActivityData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n activity: GithubUserActivityActivity[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n month: string;\n nextCursor: string;\n noActivity: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n year: number;\n}\n\n/**\n * Input for GitHub User Contributions (github.user_contributions).\n */\nexport interface GithubUserContributionsInput {\n /**\n * GitHub username.\n */\n handle: string;\n /**\n * Calendar year of the contribution graph. Defaults to the current year.\n */\n year?: number;\n}\n\nexport interface GithubUserContributionsDay {\n /**\n * Number of contributions on this day.\n */\n count: number;\n /**\n * UTC epoch seconds at 00:00 UTC of the contribution day. Populated whenever the provider has data for the entity.\n */\n dateUtc: number;\n /**\n * Heatmap level 0-4.\n */\n intensity: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Contributions (github.user_contributions).\n */\nexport interface GithubUserContributionsData {\n /**\n * Per-day contribution buckets for the year. Populated whenever the provider has data for the entity.\n */\n days: GithubUserContributionsDay[];\n /**\n * Total contributions across the year.\n */\n total: number;\n /**\n * GitHub username the contribution graph belongs to. Populated whenever the provider has data for the entity.\n */\n username: string;\n /**\n * Calendar year of the contribution graph.\n */\n year: number;\n}\n\n/**\n * Input for GitHub User Followers (github.user_followers).\n */\nexport interface GithubUserFollowersInput {\n /**\n * Pagination cursor from a previous response (page number, defaults to 1).\n */\n cursor?: string;\n /**\n * GitHub username.\n */\n handle: string;\n}\n\nexport interface GithubUserFollowersFollower {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n id: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n login: string;\n siteAdmin: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Followers (github.user_followers).\n */\nexport interface GithubUserFollowersData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n followers: GithubUserFollowersFollower[];\n nextCursor: string;\n}\n\n/**\n * Input for GitHub User Following (github.user_following).\n */\nexport interface GithubUserFollowingInput {\n /**\n * Pagination cursor from a previous response (page number, defaults to 1).\n */\n cursor?: string;\n /**\n * GitHub username.\n */\n handle: string;\n}\n\nexport interface GithubUserFollowingFollowing {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n id: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n login: string;\n siteAdmin: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Following (github.user_following).\n */\nexport interface GithubUserFollowingData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n following: GithubUserFollowingFollowing[];\n nextCursor: string;\n}\n\n/**\n * Input for GitHub User Pull Requests (github.user_pull_requests).\n */\nexport interface GithubUserPullRequestsInput {\n /**\n * Pagination cursor from a previous response (page number, defaults to 1).\n */\n cursor?: string;\n /**\n * GitHub username.\n */\n handle: string;\n /**\n * Only include pull requests created on or after this date (YYYY-MM-DD).\n */\n since?: string;\n /**\n * Only include pull requests created on or before this date (YYYY-MM-DD).\n */\n until?: string;\n}\n\nexport interface GithubUserPullRequestsPullRequest {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Repository the pull request targets, in owner/name form. Populated whenever the provider has data for the entity.\n */\n repo: string;\n /**\n * Pull request state (e.g. open, closed, merged). Populated whenever the provider has data for the entity.\n */\n state: string;\n /**\n * Pull request title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical URL of the pull request. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Pull Requests (github.user_pull_requests).\n */\nexport interface GithubUserPullRequestsData {\n /**\n * Whether more pull requests are available beyond this page.\n */\n hasMore: boolean;\n /**\n * Opaque cursor for the next page, or empty string when none.\n */\n nextCursor: string;\n /**\n * The user's public pull requests for this page. Populated whenever the provider has data for the entity.\n */\n pullRequests: GithubUserPullRequestsPullRequest[];\n}\n\n/**\n * Input for GitHub User Repositories (github.user_repositories).\n */\nexport interface GithubUserRepositoriesInput {\n /**\n * 1-based results page. Use the output's nextCursor to paginate.\n * Range: minimum 1.\n * Default: 1.\n */\n cursor?: number;\n /**\n * Sort direction, ascending or descending, paired with sort.\n * One of: asc, desc.\n */\n direction?: \"asc\" | \"desc\";\n /**\n * GitHub username.\n */\n handle: string;\n /**\n * Repository ordering.\n * One of: created, updated, pushed, full_name.\n * Default: updated.\n */\n sort?: \"created\" | \"updated\" | \"pushed\" | \"full_name\";\n /**\n * Which repositories to include: owner (default), all, or member.\n * One of: owner, all, member.\n */\n type?: \"owner\" | \"all\" | \"member\";\n}\n\nexport interface GithubUserRepositoriesRepo {\n archived: boolean;\n description: string;\n fork: boolean;\n forks: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n fullName: string;\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n pushedAt: string;\n stars: number;\n updatedAt: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of GitHub User Repositories (github.user_repositories).\n */\nexport interface GithubUserRepositoriesData {\n hasMore: boolean;\n nextCursor: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n repos: GithubUserRepositoriesRepo[];\n}\n\n/**\n * Typed methods for the github platform. Attached to the AnyAPI client as\n * `client.github`.\n */\nexport class GithubNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * GitHub Repository\n *\n * Fetch a GitHub repository's metadata by URL (stars, forks, language, topics, license, and timestamps), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.repository({ url: \"https://github.com/facebook/react\" });\n */\n repository(\n input: GithubRepositoryInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubRepositoryData>> {\n return this._core.run(\"github.repository\", input, options);\n }\n\n /**\n * GitHub Trending Developers\n *\n * List trending GitHub developers (rank, username, name, avatar, and their most popular repository), optionally filtered by programming language and time range.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.trendingDevelopers({ language: \"go\", since: \"weekly\" });\n */\n trendingDevelopers(\n input: GithubTrendingDevelopersInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubTrendingDevelopersData>> {\n return this._core.run(\"github.trending_developers\", input, options);\n }\n\n /**\n * GitHub Trending Repositories\n *\n * List GitHub Trending repositories (rank, stars, stars gained today, language, and description), filterable by language and time window, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.trendingRepositories({ language: \"python\", since: \"daily\" });\n */\n trendingRepositories(\n input: GithubTrendingRepositoriesInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubTrendingRepositoriesData>> {\n return this._core.run(\"github.trending_repositories\", input, options);\n }\n\n /**\n * GitHub User\n *\n * Fetch a GitHub user's public profile by handle (name, bio, company, location, followers, and repo counts), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.user({ handle: \"torvalds\" });\n */\n user(\n input: GithubUserInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserData>> {\n return this._core.run(\"github.user\", input, options);\n }\n\n /**\n * GitHub User Activity\n *\n * List a GitHub user's public contribution activity by handle (grouped monthly summaries of commits, pull requests, and issues with repository links) for a given year.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userActivity({ handle: \"kentcdodds\" });\n */\n userActivity(\n input: GithubUserActivityInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserActivityData>> {\n return this._core.run(\"github.user_activity\", input, options);\n }\n\n /**\n * Iterate every result of GitHub User Activity across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserActivity(\n input: GithubUserActivityInput,\n options?: RequestOptions,\n ): Paginator<GithubUserActivityActivity, RunResult<GithubUserActivityData>> {\n return paginate<\n GithubUserActivityActivity,\n RunResult<GithubUserActivityData>\n >(\n this._core,\n \"github.user_activity\",\n input as unknown as Record<string, unknown>,\n \"activity\",\n false,\n options,\n );\n }\n\n /**\n * GitHub User Contributions\n *\n * Fetch a GitHub user's contribution graph for a year (total contributions plus per-day counts and heatmap intensity), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userContributions({ handle: \"torvalds\", year: 2024 });\n */\n userContributions(\n input: GithubUserContributionsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserContributionsData>> {\n return this._core.run(\"github.user_contributions\", input, options);\n }\n\n /**\n * GitHub User Followers\n *\n * List a GitHub user's followers by handle (each follower's login, type, avatar, and profile URL) with pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userFollowers({ handle: \"torvalds\" });\n */\n userFollowers(\n input: GithubUserFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserFollowersData>> {\n return this._core.run(\"github.user_followers\", input, options);\n }\n\n /**\n * Iterate every result of GitHub User Followers across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserFollowers(\n input: GithubUserFollowersInput,\n options?: RequestOptions,\n ): Paginator<\n GithubUserFollowersFollower,\n RunResult<GithubUserFollowersData>\n > {\n return paginate<\n GithubUserFollowersFollower,\n RunResult<GithubUserFollowersData>\n >(\n this._core,\n \"github.user_followers\",\n input as unknown as Record<string, unknown>,\n \"followers\",\n false,\n options,\n );\n }\n\n /**\n * GitHub User Following\n *\n * List the GitHub users a given user follows by handle (each account's login, type, avatar, and profile URL) with pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userFollowing({ handle: \"kentcdodds\" });\n */\n userFollowing(\n input: GithubUserFollowingInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserFollowingData>> {\n return this._core.run(\"github.user_following\", input, options);\n }\n\n /**\n * Iterate every result of GitHub User Following across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserFollowing(\n input: GithubUserFollowingInput,\n options?: RequestOptions,\n ): Paginator<\n GithubUserFollowingFollowing,\n RunResult<GithubUserFollowingData>\n > {\n return paginate<\n GithubUserFollowingFollowing,\n RunResult<GithubUserFollowingData>\n >(\n this._core,\n \"github.user_following\",\n input as unknown as Record<string, unknown>,\n \"following\",\n false,\n options,\n );\n }\n\n /**\n * GitHub User Pull Requests\n *\n * List a GitHub user's public pull requests by handle (title, repository, state, creation date, and URL) with optional date filtering and pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userPullRequests({ handle: \"torvalds\" });\n */\n userPullRequests(\n input: GithubUserPullRequestsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserPullRequestsData>> {\n return this._core.run(\"github.user_pull_requests\", input, options);\n }\n\n /**\n * Iterate every result of GitHub User Pull Requests across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserPullRequests(\n input: GithubUserPullRequestsInput,\n options?: RequestOptions,\n ): Paginator<\n GithubUserPullRequestsPullRequest,\n RunResult<GithubUserPullRequestsData>\n > {\n return paginate<\n GithubUserPullRequestsPullRequest,\n RunResult<GithubUserPullRequestsData>\n >(\n this._core,\n \"github.user_pull_requests\",\n input as unknown as Record<string, unknown>,\n \"pullRequests\",\n false,\n options,\n );\n }\n\n /**\n * GitHub User Repositories\n *\n * List a GitHub user's public repositories (name, description, language, stars, and forks) with sorting and cursor pagination, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.github.userRepositories({ handle: \"torvalds\" });\n */\n userRepositories(\n input: GithubUserRepositoriesInput,\n options?: RequestOptions,\n ): Promise<RunResult<GithubUserRepositoriesData>> {\n return this._core.run(\"github.user_repositories\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Glassdoor Jobs (glassdoor.jobs).\n */\nexport interface GlassdoorJobsInput {\n /**\n * When true, only return jobs offering Easy Apply. Keyword mode only.\n */\n easyApply?: boolean;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * City, region, or country to search within (keyword mode; e.g. United States, New York).\n */\n location?: string;\n /**\n * Only jobs posted within this window (past 24 hours, week, or month). Keyword mode only.\n * One of: 24h, week, month.\n */\n postedLimit?: \"24h\" | \"week\" | \"month\";\n /**\n * Job title or keywords to search (keyword mode). Provide this or a url.\n */\n query?: string;\n /**\n * Sort order: most recent (date) or best match (relevance). Keyword mode only.\n * One of: date, relevance.\n */\n sortBy?: \"date\" | \"relevance\";\n /**\n * Alternatively, a Glassdoor company or job search page URL to scrape (e.g. https://www.glassdoor.com/Jobs/Google-Jobs-E9079.htm). The filters below apply in keyword (query) mode.\n */\n url?: string;\n /**\n * Filter by workplace type (remote, hybrid, or onsite). Keyword mode only.\n * One of: remote, hybrid, onsite.\n */\n workplaceType?: \"remote\" | \"hybrid\" | \"onsite\";\n}\n\n/**\n * A Glassdoor job listing: title, employer, location, salary estimate, rating, and the listing URL.\n */\nexport interface GlassdoorJobsItem {\n /**\n * Days since the listing was posted.\n */\n ageInDays?: number;\n /**\n * Hiring employer name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n company?: string;\n /**\n * Full job description (may contain HTML).\n */\n description?: string;\n /**\n * Glassdoor job listing id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Job location (city, region).\n */\n location?: string;\n /**\n * Employer Glassdoor star rating (0 when not rated).\n */\n rating?: number;\n /**\n * Estimated salary range for the listing.\n */\n salary?: {\n /**\n * ISO currency code for the salary figures.\n */\n currency?: string;\n /**\n * High end of the estimated salary range.\n */\n max?: number;\n /**\n * Median of the estimated salary range.\n */\n median?: number;\n /**\n * Low end of the estimated salary range.\n */\n min?: number;\n /**\n * Pay period the figures cover (e.g. ANNUAL, HOURLY).\n */\n period?: string;\n };\n /**\n * Job title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Absolute Glassdoor job listing URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Glassdoor Jobs (glassdoor.jobs).\n */\nexport interface GlassdoorJobsData {\n /**\n * Job listing records for the search or company page. Populated whenever the provider has data for the entity.\n */\n items: GlassdoorJobsItem[];\n}\n\n/**\n * Typed methods for the glassdoor platform. Attached to the AnyAPI client as\n * `client.glassdoor`.\n */\nexport class GlassdoorNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Glassdoor Jobs\n *\n * Search Glassdoor job listings by keyword and location, or scrape any Glassdoor company or job search page URL - up to 20 normalized job records per request.\n *\n * Price: $0.005 per request plus $0.00475 per result (maximum $0.1).\n *\n * @example\n * const res = await client.glassdoor.jobs({ limit: 3, location: \"United States\", postedLimit: \"month\", query: \"software engineer\" });\n */\n jobs(\n input: GlassdoorJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GlassdoorJobsData>> {\n return this._core.run(\"glassdoor.jobs\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Autocomplete (google.autocomplete).\n */\nexport interface GoogleAutocompleteInput {\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code for the suggestions (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * The partial Google search query.\n */\n query: string;\n}\n\nexport interface GoogleAutocompleteSuggestion {\n /**\n * Suggested query text. Populated whenever the provider has data for the entity.\n */\n value: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Autocomplete (google.autocomplete).\n */\nexport interface GoogleAutocompleteData {\n /**\n * The partial query that was searched.\n */\n query: string;\n /**\n * Autocomplete suggestion records. Populated whenever the provider has data for the entity.\n */\n suggestions: GoogleAutocompleteSuggestion[];\n}\n\n/**\n * Input for Google Images (google.images).\n */\nexport interface GoogleImagesInput {\n /**\n * Toggle Google spelling autocorrect (default true). Set false to search the exact query without correction.\n */\n autocorrect?: boolean;\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * Maximum number of images to return (1-100, default 20). Requests for 10 results or fewer are billed at a lower rate than larger requests.\n * Range: minimum 1, maximum 100.\n * Default: 20.\n */\n limit?: number;\n /**\n * Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.\n */\n location?: string;\n /**\n * Image search query (e.g. golden gate bridge at sunset).\n */\n query: string;\n /**\n * Restrict results to a recent time window: 1h, 1d, 7d, 1y, or all. Default all (no time restriction).\n */\n timeframe?: string;\n}\n\nexport interface GoogleImagesItem {\n /**\n * Full image height in pixels.\n */\n height?: number;\n /**\n * Host domain of the page the image appears on. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n source?: string;\n /**\n * URL of the page the image appears on. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n sourceUrl?: string;\n /**\n * URL to a thumbnail of the image.\n */\n thumbnailUrl?: string;\n /**\n * Image result title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Direct URL to the full-size image. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Full image width in pixels.\n */\n width?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Images (google.images).\n */\nexport interface GoogleImagesData {\n /**\n * Image result records: image URL, dimensions, title, and the source page it appears on. Populated whenever the provider has data for the entity.\n */\n items: GoogleImagesItem[];\n}\n\n/**\n * Input for Google Lens (google.lens).\n */\nexport interface GoogleLensInput {\n /**\n * Public URL of the image to search with.\n * Format: uri.\n */\n url: string;\n}\n\nexport interface GoogleLensResult {\n /**\n * Matched image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * URL to the matching web page. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n link: string;\n /**\n * Source site name.\n */\n source?: string;\n /**\n * Thumbnail image URL for the match.\n * Format: uri.\n */\n thumbnailUrl?: string;\n /**\n * Title of the matching web page. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Lens (google.lens).\n */\nexport interface GoogleLensData {\n /**\n * Visual match result records. Populated whenever the provider has data for the entity.\n */\n results: GoogleLensResult[];\n /**\n * The input image URL that was searched.\n */\n url: string;\n}\n\n/**\n * Input for Google News (google.news).\n */\nexport interface GoogleNewsInput {\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * Requested article count (1-20, default 20). Google News returns its latest matching articles and may return more or fewer than requested. Price is flat per request.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.\n */\n location?: string;\n /**\n * News search query; supports operators like '-', 'OR', and 'site:' (e.g. bitcoin site:cnn.com).\n */\n query: string;\n /**\n * Time window for results: 1h, 1d, 7d, 1y, or all (e.g. 1d).\n * Default: 7d.\n */\n timeframe?: string;\n}\n\nexport interface GoogleNewsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Article snippet when available.\n */\n snippet?: string;\n /**\n * Publisher name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n source?: string;\n /**\n * Article headline. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Article link. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google News (google.news).\n */\nexport interface GoogleNewsData {\n /**\n * Article records: headline, source name, article link, and publish time. Populated whenever the provider has data for the entity.\n */\n items: GoogleNewsItem[];\n}\n\n/**\n * Input for Google Patents (google.patents).\n */\nexport interface GooglePatentsInput {\n /**\n * The Google Patents search query.\n */\n query: string;\n}\n\nexport interface GooglePatentsResult {\n /**\n * Patent assignee.\n */\n assignee?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n filedUtc?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n grantedUtc?: number;\n /**\n * First patent figure thumbnail image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Named inventor or inventors.\n */\n inventor?: string;\n /**\n * URL to the patent. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n link: string;\n /**\n * URL to an available patent PDF.\n * Format: uri.\n */\n pdfUrl?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n priorityUtc?: number;\n /**\n * Patent publication number (e.g. US11303135B2). Populated whenever the provider has data for the entity.\n */\n publicationNumber: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n publishedUtc?: number;\n /**\n * Short patent description snippet.\n */\n snippet?: string;\n /**\n * Patent title. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Patents (google.patents).\n */\nexport interface GooglePatentsData {\n /**\n * The query that was searched.\n */\n query: string;\n /**\n * Patent result records.\n */\n results: GooglePatentsResult[];\n}\n\n/**\n * Input for Google Scholar (google.scholar).\n */\nexport interface GoogleScholarInput {\n /**\n * The Google Scholar search query.\n */\n query: string;\n}\n\nexport interface GoogleScholarResult {\n /**\n * Number of citations reported by Google Scholar.\n */\n citedBy?: number;\n /**\n * Result identifier.\n */\n id?: string;\n /**\n * URL to the paper. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n link: string;\n /**\n * URL to an available PDF.\n * Format: uri.\n */\n pdfUrl?: string;\n /**\n * Authors, venue, and publication year.\n */\n publicationInfo?: string;\n /**\n * Short paper description snippet.\n */\n snippet?: string;\n /**\n * Paper title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Publication year.\n */\n year?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Scholar (google.scholar).\n */\nexport interface GoogleScholarData {\n /**\n * The query that was searched.\n */\n query: string;\n /**\n * Academic paper result records.\n */\n results: GoogleScholarResult[];\n}\n\n/**\n * Input for Google Search (google.search).\n */\nexport interface GoogleSearchInput {\n /**\n * Toggle Google spelling autocorrect (default true). Set false to search the exact query without correction.\n */\n autocorrect?: boolean;\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * Maximum number of organic results to return (1-100, default 10). Google may return fewer if the query is narrow. Price is flat per request.\n * Range: minimum 1, maximum 100.\n * Default: 10.\n */\n limit?: number;\n /**\n * Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.\n */\n location?: string;\n /**\n * The Google search query.\n */\n query: string;\n /**\n * Restrict results to a recent time window: 1h, 1d, 7d, 1y, or all. Default all (no time restriction).\n */\n timeframe?: string;\n}\n\nexport interface GoogleSearchResult {\n /**\n * Populated whenever the provider has data for the entity.\n */\n link: string;\n position: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n snippet: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Search (google.search).\n */\nexport interface GoogleSearchData {\n query: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n results: GoogleSearchResult[];\n}\n\n/**\n * Input for Google Videos (google.videos).\n */\nexport interface GoogleVideosInput {\n /**\n * Toggle Google spelling autocorrect (default true). Set false to search the exact query without correction.\n */\n autocorrect?: boolean;\n /**\n * Two-letter country code for result localization (e.g. us, gb, de).\n * Default: us.\n */\n gl?: string;\n /**\n * Two-letter interface and results language code (e.g. en, es, de).\n * Default: en.\n */\n hl?: string;\n /**\n * Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.\n */\n location?: string;\n /**\n * The video search query.\n */\n query: string;\n /**\n * Restrict results to a recent time window: 1h, 1d, 7d, 1y, or all. Default all (no time restriction).\n */\n timeframe?: string;\n}\n\nexport interface GoogleVideosResult {\n /**\n * Thumbnail image URL for the video.\n * Format: uri.\n */\n image?: string;\n /**\n * URL to the video. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n link: string;\n /**\n * 1-based rank in the result list.\n */\n position?: number;\n /**\n * Short description snippet.\n */\n snippet?: string;\n /**\n * Host platform (e.g. YouTube, Vimeo).\n */\n source?: string;\n /**\n * Video title. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Videos (google.videos).\n */\nexport interface GoogleVideosData {\n /**\n * The query that was searched.\n */\n query: string;\n /**\n * Video result records. Populated whenever the provider has data for the entity.\n */\n results: GoogleVideosResult[];\n}\n\n/**\n * Typed methods for the google platform. Attached to the AnyAPI client as\n * `client.google`.\n */\nexport class GoogleNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Autocomplete\n *\n * Get Google search autocomplete suggestions for a partial query (keyword ideas).\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.autocomplete({ query: \"best coff\" });\n */\n autocomplete(\n input: GoogleAutocompleteInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAutocompleteData>> {\n return this._core.run(\"google.autocomplete\", input, options);\n }\n\n /**\n * Google Images\n *\n * Run a Google Images search and get structured results: image URLs, dimensions, titles, and source pages.\n *\n * Price: $0.00099 per request plus $0.00009 per result (maximum $0.00198).\n *\n * @example\n * const res = await client.google.images({ query: \"golden retriever\", gl: \"us\", hl: \"en\", limit: 5 });\n */\n images(\n input: GoogleImagesInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleImagesData>> {\n return this._core.run(\"google.images\", input, options);\n }\n\n /**\n * Google Lens\n *\n * Reverse image search: find web pages and visual matches for an image URL.\n *\n * Price: $0.00297 per request.\n *\n * @example\n * const res = await client.google.lens({ url: \"https://i.imgur.com/HBrB8p0.png\" });\n */\n lens(\n input: GoogleLensInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleLensData>> {\n return this._core.run(\"google.lens\", input, options);\n }\n\n /**\n * Google News\n *\n * Search Google News by keyword and get fresh articles (headlines, sources, links, and publish times) as clean JSON.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.news({ query: \"openai\", gl: \"us\", hl: \"en\" });\n */\n news(\n input: GoogleNewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleNewsData>> {\n return this._core.run(\"google.news\", input, options);\n }\n\n /**\n * Google Patents\n *\n * Search Google Patents with title, patent number, inventor, assignee, key dates, and PDF link.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.patents({ query: \"wireless charging\" });\n */\n patents(\n input: GooglePatentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GooglePatentsData>> {\n return this._core.run(\"google.patents\", input, options);\n }\n\n /**\n * Google Scholar\n *\n * Search Google Scholar for academic papers with title, authors, citation count, and PDF link.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.scholar({ query: \"attention is all you need\" });\n */\n scholar(\n input: GoogleScholarInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleScholarData>> {\n return this._core.run(\"google.scholar\", input, options);\n }\n\n /**\n * Google Search\n *\n * Run a Google web search and get the organic results (title, link, snippet, position) as clean JSON.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.search({ query: \"best coffee maker\", gl: \"us\", hl: \"en\", limit: 10 });\n */\n search(\n input: GoogleSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleSearchData>> {\n return this._core.run(\"google.search\", input, options);\n }\n\n /**\n * Google Videos\n *\n * Search Google for video results (YouTube and others) with title, link, thumbnail, and source.\n *\n * Price: $0.00099 per request.\n *\n * @example\n * const res = await client.google.videos({ query: \"lofi hip hop\", gl: \"us\", hl: \"en\" });\n */\n videos(\n input: GoogleVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleVideosData>> {\n return this._core.run(\"google.videos\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Google Ads Ad Details (google_ads.ad_details).\n */\nexport interface GoogleAdsAdDetailsInput {\n /**\n * Google Ads Transparency Center creative URL (e.g. \"https://adstransparency.google.com/advertiser/AR.../creative/CR...\").\n */\n url: string;\n}\n\nexport interface GoogleAdsAdDetailsVariation {\n allText: string;\n description: string;\n destinationUrl: string;\n headline: string;\n imageUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Ads Ad Details (google_ads.ad_details).\n */\nexport interface GoogleAdsAdDetailsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n creativeId: string;\n /**\n * ISO 8601 date.\n */\n firstShown: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n format: string;\n impressionsMax: number;\n impressionsMin: number;\n /**\n * ISO 8601 date.\n */\n lastShown: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n variations: GoogleAdsAdDetailsVariation[];\n}\n\n/**\n * Input for Google Ads Advertiser Search (google_ads.advertiser_search).\n */\nexport interface GoogleAdsAdvertiserSearchInput {\n /**\n * Advertiser name or keyword to search for (e.g. \"lululemon\").\n */\n query: string;\n /**\n * Two-letter country code to scope results (e.g. \"AU\", \"CA\"). Defaults to US.\n */\n region?: string;\n}\n\nexport interface GoogleAdsAdvertiserSearchAdvertiser {\n /**\n * Estimated number of ads for this advertiser/region.\n */\n adsEstimate: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Ads Advertiser Search (google_ads.advertiser_search).\n */\nexport interface GoogleAdsAdvertiserSearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertisers: GoogleAdsAdvertiserSearchAdvertiser[];\n}\n\n/**\n * Input for Google Ads Company Ads (google_ads.company_ads).\n */\nexport interface GoogleAdsCompanyAdsInput {\n /**\n * Advertiser ID. Provide either domain or advertiserId.\n */\n advertiserId?: string;\n /**\n * Opaque pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Company domain (e.g. \"lululemon.com\"). Provide either domain or advertiserId.\n */\n domain?: string;\n /**\n * Only return ads first shown on or before this date, format YYYY-MM-DD (e.g. 2024-12-31).\n */\n endDate?: string;\n /**\n * Ad format filter.\n * One of: text, image, video.\n */\n format?: \"text\" | \"image\" | \"video\";\n /**\n * Platform filter.\n * One of: google_maps, google_play, google_search, google_shopping, youtube.\n */\n platform?:\n | \"google_maps\"\n | \"google_play\"\n | \"google_search\"\n | \"google_shopping\"\n | \"youtube\";\n /**\n * Two-letter country code to scope results (e.g. \"US\", \"AU\").\n */\n region?: string;\n /**\n * Only return ads first shown on or after this date, format YYYY-MM-DD (e.g. 2024-01-01).\n */\n startDate?: string;\n /**\n * Search topic. \"political\" requires a region.\n * One of: all, political.\n */\n topic?: \"all\" | \"political\";\n}\n\nexport interface GoogleAdsCompanyAdsAd {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n creativeId: string;\n /**\n * ISO 8601 date.\n */\n firstShown: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n format: string;\n imageUrl: string;\n /**\n * ISO 8601 date.\n */\n lastShown: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Ads Company Ads (google_ads.company_ads).\n */\nexport interface GoogleAdsCompanyAdsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n ads: GoogleAdsCompanyAdsAd[];\n /**\n * Estimated total number of ads.\n */\n adsEstimate: number;\n nextCursor: string;\n}\n\n/**\n * Input for Google Ads Transparency (google_ads.search).\n */\nexport interface GoogleAdsSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * A Google Ads Transparency Center URL for a selected advertiser or domain (e.g. https://adstransparency.google.com/advertiser/AR01614014350098432001?region=US).\n */\n url: string;\n}\n\nexport interface GoogleAdsSearchItem {\n /**\n * Advertiser display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n advertiser?: string;\n /**\n * Google Ads advertiser identifier.\n */\n advertiserId?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the ad was first shown.\n */\n firstShownUtc?: number;\n /**\n * Ad format, e.g. TEXT, IMAGE, VIDEO.\n */\n format?: string;\n /**\n * Google Ads creative identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the ad was last shown.\n */\n lastShownUtc?: number;\n /**\n * Number of days the ad has been served.\n */\n numServedDays?: number;\n /**\n * URL to a rendered preview of the creative.\n */\n previewUrl?: string;\n /**\n * Ads Transparency Center URL for the creative. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Creative variations for the ad, each with image, headline, and body text where present.\n */\n variations?: GoogleAdsSearchVariation[];\n [extra: string]: unknown;\n}\n\nexport interface GoogleAdsSearchVariation {\n /**\n * Creative headline text.\n */\n headline?: string;\n /**\n * Creative image URL.\n */\n imageUrl?: string;\n /**\n * Creative body/description text.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Ads Transparency (google_ads.search).\n */\nexport interface GoogleAdsSearchData {\n /**\n * Ad records from the Transparency Center: advertiser, ad format, creative details, preview URL, and first/last shown dates. Populated whenever the provider has data for the entity.\n */\n items: GoogleAdsSearchItem[];\n}\n\n/**\n * Typed methods for the google_ads platform. Attached to the AnyAPI client as\n * `client.googleAds`.\n */\nexport class GoogleAdsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Ads Ad Details\n *\n * Look up a single Google Ads Transparency Center creative by URL and get its format, run dates, impression range, regions, and creative variations as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.googleAds.adDetails({ url: \"https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR10449491775734153217\" });\n */\n adDetails(\n input: GoogleAdsAdDetailsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAdsAdDetailsData>> {\n return this._core.run(\"google_ads.ad_details\", input, options);\n }\n\n /**\n * Google Ads Advertiser Search\n *\n * Search the Google Ads Transparency Center for advertisers by keyword and get matching advertiser IDs, regions, and estimated ad counts as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.googleAds.advertiserSearch({ query: \"lululemon\" });\n */\n advertiserSearch(\n input: GoogleAdsAdvertiserSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAdsAdvertiserSearchData>> {\n return this._core.run(\"google_ads.advertiser_search\", input, options);\n }\n\n /**\n * Google Ads Company Ads\n *\n * List the ads a company is running from the Google Ads Transparency Center by domain or advertiser ID (creative ID, format, ad URL, and first/last shown dates) with cursor pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.googleAds.companyAds({ domain: \"lululemon.com\" });\n */\n companyAds(\n input: GoogleAdsCompanyAdsInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAdsCompanyAdsData>> {\n return this._core.run(\"google_ads.company_ads\", input, options);\n }\n\n /**\n * Iterate every result of Google Ads Company Ads across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterCompanyAds(\n input: GoogleAdsCompanyAdsInput,\n options?: RequestOptions,\n ): Paginator<GoogleAdsCompanyAdsAd, RunResult<GoogleAdsCompanyAdsData>> {\n return paginate<GoogleAdsCompanyAdsAd, RunResult<GoogleAdsCompanyAdsData>>(\n this._core,\n \"google_ads.company_ads\",\n input as unknown as Record<string, unknown>,\n \"ads\",\n false,\n options,\n );\n }\n\n /**\n * Google Ads Transparency\n *\n * Pull the ads an advertiser is currently running from the Google Ads Transparency Center (creative details, formats, and run dates) as clean JSON.\n *\n * Price: $0.00005 per request plus $0.0013 per result (maximum $0.02605).\n *\n * @example\n * const res = await client.googleAds.search({ url: \"https://adstransparency.google.com/?region=US&domain=nike.com\", limit: 3 });\n */\n search(\n input: GoogleAdsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleAdsSearchData>> {\n return this._core.run(\"google_ads.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Finance Quote (google_finance.quote).\n */\nexport interface GoogleFinanceQuoteInput {\n /**\n * The symbol to quote. US stocks use a plain ticker (e.g. AAPL, TSLA); non-US stocks add a market suffix (e.g. VOW3.DE, BABA.HK, BARC.L); indices use a caret (e.g. ^GSPC, ^DJI); crypto and currencies use pair form (e.g. BTC-USD, EURUSD=X); mutual funds and futures use their symbol (e.g. VFIAX, ES=F). Common alternate forms are accepted and normalized (e.g. AAPL:NASDAQ, .DJI, BTC/USD). Exact symbols only, not a company-name search.\n */\n symbol: string;\n}\n\nexport interface GoogleFinanceQuoteItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n asOfUtc?: number;\n /**\n * Current ask price.\n */\n ask?: number;\n /**\n * Instrument class (e.g. EQUITY, ETF, CRYPTOCURRENCY, CURRENCY, INDEX, MUTUALFUND, FUTURE).\n */\n assetType?: string;\n /**\n * Average daily trading volume.\n */\n averageVolume?: number;\n /**\n * Current bid price.\n */\n bid?: number;\n /**\n * Absolute price change on the day, in the quote currency.\n */\n change?: number;\n /**\n * Percent price change on the day.\n */\n changePercent?: number;\n /**\n * ISO currency the quote is priced in (e.g. USD). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n currency?: string;\n /**\n * Highest price so far in the current session.\n */\n dayHigh?: number;\n /**\n * Lowest price so far in the current session.\n */\n dayLow?: number;\n /**\n * Exchange the instrument trades on (e.g. NasdaqGS). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n exchange?: string;\n /**\n * Highest price over the trailing 52 weeks.\n */\n fiftyTwoWeekHigh?: number;\n /**\n * Lowest price over the trailing 52 weeks.\n */\n fiftyTwoWeekLow?: number;\n /**\n * Market capitalization in the quote currency.\n */\n marketCap?: number;\n /**\n * Current market state (e.g. REGULAR, PRE, POST, CLOSED).\n */\n marketState?: string;\n /**\n * Instrument or company name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Opening price for the current session.\n */\n open?: number;\n /**\n * Previous session close price.\n */\n previousClose?: number;\n /**\n * Current price in the quote currency.\n */\n price: number;\n /**\n * Resolved ticker symbol for the quote. Populated whenever the provider has data for the entity.\n */\n symbol: string;\n /**\n * Traded volume for the current session.\n */\n volume?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Finance Quote (google_finance.quote).\n */\nexport interface GoogleFinanceQuoteData {\n /**\n * The quote for the requested symbol: name, current price, day change (absolute and percent), quote currency, exchange and market state, plus intraday and reference figures. Up to one element (empty when the symbol did not resolve). Populated whenever the provider has data for the entity.\n */\n items: GoogleFinanceQuoteItem[];\n}\n\n/**\n * Typed methods for the google_finance platform. Attached to the AnyAPI client as\n * `client.googleFinance`.\n */\nexport class GoogleFinanceNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Finance Quote\n *\n * Fetch a live quote for any stock, index, ETF, mutual fund, currency pair, or crypto symbol: name, current price, the absolute and percent change on the day, quote currency, exchange and market state, plus intraday and reference figures (open, day high/low, previous close, volume, market cap, and the 52-week range).\n *\n * Price: $0.0005 per request plus $0.0015 per result (maximum $0.002).\n *\n * @example\n * const res = await client.googleFinance.quote({ symbol: \"AAPL:NASDAQ\" });\n */\n quote(\n input: GoogleFinanceQuoteInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleFinanceQuoteData>> {\n return this._core.run(\"google_finance.quote\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Shopping Search (google_shopping.search).\n */\nexport interface GoogleShoppingSearchInput {\n /**\n * Only return products in this condition (e.g. \"USED\"); defaults to any condition.\n * One of: ANY, NEW, USED, REFURBISHED.\n */\n condition?: \"ANY\" | \"NEW\" | \"USED\" | \"REFURBISHED\";\n /**\n * ISO 3166-1 alpha-2 country code for localized results (e.g. \"us\", \"gb\", \"de\").\n * Default: us.\n */\n country?: string;\n /**\n * ISO 639-1 language code for results (e.g. \"en\", \"es\", \"fr\").\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * Product name, brand, or keywords to search for (e.g. \"Nike running shoes\").\n */\n query: string;\n /**\n * Sort order for results (e.g. \"LOWEST_PRICE\"); defaults to relevance.\n * One of: BEST_MATCH, LOWEST_PRICE, HIGHEST_PRICE, TOP_RATED.\n */\n sortBy?: \"BEST_MATCH\" | \"LOWEST_PRICE\" | \"HIGHEST_PRICE\" | \"TOP_RATED\";\n}\n\nexport interface GoogleShoppingSearchItem {\n /**\n * Product brand; empty when not reported.\n */\n brand?: string;\n /**\n * Price currency code, e.g. \"USD\"; empty when not reported.\n */\n currency?: string;\n /**\n * Discount label when on sale, e.g. \"23% OFF\"; empty otherwise.\n */\n discountPercent?: string;\n /**\n * Primary product image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Pre-discount list price as a numeric amount; 0 when not on sale or reported only as text.\n */\n listPrice?: number;\n /**\n * Pre-discount list price as displayed, e.g. \"$130\"; empty when not applicable.\n */\n listPriceText?: string;\n /**\n * Current price as a numeric amount; 0 when the lane reports price only as text (see priceText).\n */\n price?: number;\n /**\n * Current price as displayed, e.g. \"$99.99\"; empty when the lane reports a numeric price instead.\n */\n priceText?: string;\n /**\n * Provider product identifier.\n */\n productId?: string;\n /**\n * Average product rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Number of ratings / reviews; 0 when none reported.\n */\n reviewsCount?: number;\n /**\n * Store / seller name offering the product, e.g. \"Target\".\n */\n seller?: string;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Google Shopping product page URL (query retained; it encodes the product identity). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Shopping Search (google_shopping.search).\n */\nexport interface GoogleShoppingSearchData {\n /**\n * Matching Google Shopping product offers. Populated whenever the provider has data for the entity.\n */\n items: GoogleShoppingSearchItem[];\n}\n\n/**\n * Typed methods for the google_shopping platform. Attached to the AnyAPI client as\n * `client.googleShopping`.\n */\nexport class GoogleShoppingNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Shopping Search\n *\n * Search Google Shopping by keyword and get up to 10 product offers (title, price, store, rating, and link), localized by country and language.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.googleShopping.search({ query: \"airpods\", limit: 10 });\n */\n search(\n input: GoogleShoppingSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<GoogleShoppingSearchData>> {\n return this._core.run(\"google_shopping.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Hacker News Profile (hackernews.profile).\n */\nexport interface HackernewsProfileInput {\n /**\n * Hacker News username, e.g. \"pg\".\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Hacker News Profile (hackernews.profile).\n */\nexport interface HackernewsProfileData {\n bio: string;\n karma: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Hacker News Search (hackernews.search).\n */\nexport interface HackernewsSearchInput {\n /**\n * Search keyword, e.g. \"ai\".\n */\n query: string;\n /**\n * Optional result filter, e.g. \"story\" or \"comment\".\n */\n tags?: string;\n}\n\nexport interface HackernewsSearchResult {\n /**\n * Submitting user's username. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Number of comments on the story.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Hacker News item id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Story score (upvotes).\n */\n points: number;\n /**\n * Story title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Story link.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Hacker News Search (hackernews.search).\n */\nexport interface HackernewsSearchData {\n /**\n * Matching Hacker News stories. Populated whenever the provider has data for the entity.\n */\n results: HackernewsSearchResult[];\n}\n\n/**\n * Input for Hacker News Story (hackernews.story).\n */\nexport interface HackernewsStoryInput {\n /**\n * Hacker News story id, e.g. \"47340079\".\n */\n id: string;\n}\n\n/**\n * The `data` payload of Hacker News Story (hackernews.story).\n */\nexport interface HackernewsStoryData {\n /**\n * Submitting user's username. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Number of comments on the story.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Story score (upvotes).\n */\n points: number;\n /**\n * Story title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Story link.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Hacker News Story Comments (hackernews.story_comments).\n */\nexport interface HackernewsStoryCommentsInput {\n /**\n * Hacker News story id, e.g. \"47340079\".\n */\n id: string;\n}\n\nexport interface HackernewsStoryCommentsComment {\n /**\n * Commenting user's username. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Hacker News comment id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Id of the parent item (story or comment) this reply belongs to.\n */\n parentId: string;\n /**\n * Comment body text.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Hacker News Story Comments (hackernews.story_comments).\n */\nexport interface HackernewsStoryCommentsData {\n /**\n * Comments on the story. Populated whenever the provider has data for the entity.\n */\n comments: HackernewsStoryCommentsComment[];\n}\n\n/**\n * Typed methods for the hackernews platform. Attached to the AnyAPI client as\n * `client.hackernews`.\n */\nexport class HackernewsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Hacker News Profile\n *\n * Get a Hacker News user's public profile by username - karma, bio, and account details as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.hackernews.profile({ handle: \"pg\" });\n */\n profile(\n input: HackernewsProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<HackernewsProfileData>> {\n return this._core.run(\"hackernews.profile\", input, options);\n }\n\n /**\n * Hacker News Search\n *\n * Search Hacker News by keyword - matching stories with title, link, author, points, and comment count as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.hackernews.search({ query: \"ai\" });\n */\n search(\n input: HackernewsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<HackernewsSearchData>> {\n return this._core.run(\"hackernews.search\", input, options);\n }\n\n /**\n * Hacker News Story\n *\n * Get a Hacker News story by id - title, link, author, points, and comment count as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.hackernews.story({ id: \"47340079\" });\n */\n story(\n input: HackernewsStoryInput,\n options?: RequestOptions,\n ): Promise<RunResult<HackernewsStoryData>> {\n return this._core.run(\"hackernews.story\", input, options);\n }\n\n /**\n * Hacker News Story Comments\n *\n * List the comments on a Hacker News story by id - text, author, and timestamp as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.hackernews.storyComments({ id: \"47340079\" });\n */\n storyComments(\n input: HackernewsStoryCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<HackernewsStoryCommentsData>> {\n return this._core.run(\"hackernews.story_comments\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Indeed Jobs (indeed.jobs).\n */\nexport interface IndeedJobsInput {\n /**\n * Two-letter country site code (e.g. us, uk, de).\n * Default: us.\n */\n country?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * City, state, zip, or 'remote'.\n */\n location?: string;\n /**\n * Only return jobs posted within this window: 24h (past day) or week (past 7 days). Omit for all dates.\n * One of: 24h, week.\n */\n postedLimit?: \"24h\" | \"week\";\n /**\n * Job search keywords (e.g. software engineer).\n */\n query: string;\n}\n\nexport interface IndeedJobsItem {\n city?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n company?: string;\n country?: string;\n /**\n * ISO 8601 publish date.\n */\n datePublished?: string;\n /**\n * Plain-text job description.\n */\n description?: string;\n expired?: boolean;\n /**\n * Indeed job key. Populated whenever the provider has data for the entity.\n */\n jobId: string;\n postalCode?: string;\n salaryCurrency?: string;\n salaryMax?: number;\n salaryMin?: number;\n /**\n * Salary period, e.g. YEAR or HOUR.\n */\n salaryUnit?: string;\n state?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Indeed job posting URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Indeed Jobs (indeed.jobs).\n */\nexport interface IndeedJobsData {\n /**\n * Job listing records: title, employer, location, salary when available, job type, posting date, and description. Populated whenever the provider has data for the entity.\n */\n items: IndeedJobsItem[];\n}\n\n/**\n * Typed methods for the indeed platform. Attached to the AnyAPI client as\n * `client.indeed`.\n */\nexport class IndeedNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Indeed Jobs\n *\n * Search Indeed job listings by keyword, location, and country, with up to 20 normalized job records per request.\n *\n * Price: $0.0008 per request plus $0.00008 per result (maximum $0.0024).\n *\n * @example\n * const res = await client.indeed.jobs({ query: \"data analyst\", limit: 3, location: \"Austin, TX\" });\n */\n jobs(\n input: IndeedJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<IndeedJobsData>> {\n return this._core.run(\"indeed.jobs\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Instagram Reels by Audio (instagram.audio_reels).\n */\nexport interface InstagramAudioReelsInput {\n /**\n * Audio identifier from the Instagram audio page URL.\n */\n audioId: string;\n /**\n * Pagination cursor returned by a previous response.\n */\n cursor?: string;\n}\n\nexport interface InstagramAudioReelsReel {\n code: string;\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n plays: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Reels by Audio (instagram.audio_reels).\n */\nexport interface InstagramAudioReelsData {\n hasMore: boolean;\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n reels: InstagramAudioReelsReel[];\n}\n\n/**\n * Input for Instagram Basic Profile (instagram.basic_profile).\n */\nexport interface InstagramBasicProfileInput {\n /**\n * Instagram numeric user id.\n */\n userId: string;\n}\n\n/**\n * The `data` payload of Instagram Basic Profile (instagram.basic_profile).\n */\nexport interface InstagramBasicProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n externalUrl: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n private: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Profile Embed (instagram.embed).\n */\nexport interface InstagramEmbedInput {\n /**\n * Instagram username without the leading @.\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Instagram Profile Embed (instagram.embed).\n */\nexport interface InstagramEmbedData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n html: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Followers (instagram.followers).\n */\nexport interface InstagramFollowersInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of followers.\n */\n cursor?: string;\n /**\n * How many followers you want (50-1000). By default results come back in cheap pages of up to ~50: follow the response's nextCursor for more. With requireSinglePage true, up to this many are returned in one (pricier) call.\n * Range: minimum 50, maximum 1000.\n */\n limit?: number;\n /**\n * Set true to get up to limit followers in a single response instead of cheap pages, served by a bulk provider at a higher price.\n */\n requireSinglePage?: boolean;\n /**\n * The Instagram username, user ID, or profile URL whose followers to list (e.g. natgeo).\n */\n username: string;\n}\n\nexport interface InstagramFollowersItem {\n /**\n * The follower's username, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * The follower's numeric Instagram user ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the follower's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The follower's display name. Empty when the account has none.\n */\n name?: string;\n /**\n * Whether the follower's account is private.\n */\n private?: boolean;\n /**\n * Canonical URL of the follower's profile, with tracking query params stripped. Empty when the lane does not return it.\n */\n url?: string;\n /**\n * Whether the follower's account is verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Followers (instagram.followers).\n */\nexport interface InstagramFollowersData {\n /**\n * Follower records for the target account. Populated whenever the provider has data for the entity.\n */\n items: InstagramFollowersItem[];\n /**\n * Opaque cursor for the next page of followers, or null/empty when this lane has no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for Instagram Following (instagram.following).\n */\nexport interface InstagramFollowingInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page.\n */\n cursor?: string;\n /**\n * How many accounts you want (50-1000). By default results come back in cheap pages of up to ~50: follow the response's nextCursor for more. With requireSinglePage true, up to this many are returned in one (pricier) call.\n * Range: minimum 50, maximum 1000.\n */\n limit?: number;\n /**\n * Set true to get up to limit accounts in a single response instead of cheap pages, served by a bulk provider at a higher price.\n */\n requireSinglePage?: boolean;\n /**\n * The Instagram username, user ID, or profile URL whose following list to fetch (e.g. natgeo).\n */\n username: string;\n}\n\nexport interface InstagramFollowingItem {\n /**\n * The followed account's username, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * The followed account's numeric Instagram user ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the followed account's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The followed account's display name. Empty when the account has none.\n */\n name?: string;\n /**\n * Whether the followed account is private.\n */\n private?: boolean;\n /**\n * Canonical URL of the followed account's profile, with tracking query params stripped. Empty when the lane does not return it.\n */\n url?: string;\n /**\n * Whether the followed account is verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Following (instagram.following).\n */\nexport interface InstagramFollowingData {\n /**\n * Records for the accounts the target user follows. Populated whenever the provider has data for the entity.\n */\n items: InstagramFollowingItem[];\n /**\n * Opaque cursor for the next page of results, or null/empty when this lane has no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for Instagram Hashtag Analytics (instagram.hashtag_analytics).\n */\nexport interface InstagramHashtagAnalyticsInput {\n /**\n * The Instagram hashtag to analyze, with or without the # symbol (e.g. streetphotography).\n */\n hashtag: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n}\n\nexport interface InstagramHashtagAnalyticsItem {\n difficulty?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n id?: string;\n /**\n * Hashtag (without #). Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Total posts using the hashtag.\n */\n postsCount?: number;\n /**\n * Human-formatted post count (e.g. 793.54 M). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n postsFormatted?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Hashtag Analytics (instagram.hashtag_analytics).\n */\nexport interface InstagramHashtagAnalyticsData {\n /**\n * Hashtag analytics records: hashtag name, total post count, and related hashtag suggestions. Populated whenever the provider has data for the entity.\n */\n items: InstagramHashtagAnalyticsItem[];\n}\n\n/**\n * Input for Instagram Highlight Detail (instagram.highlight_detail).\n */\nexport interface InstagramHighlightDetailInput {\n /**\n * The id of the highlight to retrieve details for.\n */\n id: string;\n}\n\n/**\n * The `data` payload of Instagram Highlight Detail (instagram.highlight_detail).\n */\nexport interface InstagramHighlightDetailData {\n /**\n * URL of the highlight cover image. Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Highlight identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of media items in the highlight.\n */\n mediaCount: number;\n /**\n * Handle of the account that owns the highlight. Populated whenever the provider has data for the entity.\n */\n ownerHandle: string;\n /**\n * Highlight title. Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Media Transcript (instagram.media_transcript).\n */\nexport interface InstagramMediaTranscriptInput {\n /**\n * Instagram post or reel URL.\n */\n url: string;\n}\n\nexport interface InstagramMediaTranscriptTranscript {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Media Transcript (instagram.media_transcript).\n */\nexport interface InstagramMediaTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n transcripts: InstagramMediaTranscriptTranscript[];\n}\n\n/**\n * Input for Instagram Post (instagram.post).\n */\nexport interface InstagramPostInput {\n /**\n * Full Instagram post or reel URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Instagram Post (instagram.post).\n */\nexport interface InstagramPostData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n owner: string;\n shortcode: string;\n type: string;\n videoUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Post Comments (instagram.post_comments).\n */\nexport interface InstagramPostCommentsInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Full Instagram post or reel URL.\n */\n url: string;\n}\n\nexport interface InstagramPostCommentsComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Post Comments (instagram.post_comments).\n */\nexport interface InstagramPostCommentsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n comments: InstagramPostCommentsComment[];\n}\n\n/**\n * Input for Instagram Profile (instagram.profile).\n */\nexport interface InstagramProfileInput {\n /**\n * Instagram username without the leading @.\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Instagram Profile (instagram.profile).\n */\nexport interface InstagramProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n posts: number;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Instagram Reel Transcript (instagram.reel_transcript).\n */\nexport interface InstagramReelTranscriptInput {\n /**\n * The URL of a public Instagram reel or video post with spoken audio (e.g. https://www.instagram.com/reel/C8yKXdRxKqK/).\n */\n url: string;\n /**\n * Set true to include a precise timestamp for every word in the transcript (e.g. true).\n * Default: false.\n */\n wordTimestamps?: boolean;\n}\n\nexport interface InstagramReelTranscriptItem {\n /**\n * The reel's caption text. Empty when the reel has no caption.\n */\n caption?: string;\n /**\n * Number of comments on the reel.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Video duration in seconds.\n */\n durationSeconds?: number;\n /**\n * The reel's numeric Instagram media ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Detected spoken language (ISO 639-1 code, e.g. \"en\"). Empty when the upstream omits it.\n */\n language?: string;\n /**\n * Number of likes on the reel.\n */\n likeCount?: number;\n /**\n * Username of the reel's owner, without the @ prefix. Empty when the upstream omits it.\n */\n ownerUsername?: string;\n /**\n * Time-aligned transcript segments, each with its text and start/end offsets in seconds.\n */\n segments?: InstagramReelTranscriptSegment[];\n /**\n * The full speech transcript. Empty when the reel has no detectable spoken audio. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the reel, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Number of video views.\n */\n viewCount?: number;\n [extra: string]: unknown;\n}\n\nexport interface InstagramReelTranscriptSegment {\n /**\n * Segment end offset in seconds from the start of the video.\n */\n end?: number;\n /**\n * Segment start offset in seconds from the start of the video.\n */\n start?: number;\n /**\n * The segment's transcribed text.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Reel Transcript (instagram.reel_transcript).\n */\nexport interface InstagramReelTranscriptData {\n /**\n * Transcript record for the requested reel (one item), with the full transcript text, timed segments, and source video metadata. Populated whenever the provider has data for the entity.\n */\n items: InstagramReelTranscriptItem[];\n}\n\n/**\n * Input for Instagram Reels Search (instagram.reels_search).\n */\nexport interface InstagramReelsSearchInput {\n /**\n * Restrict results to reels posted within this window.\n * One of: last-hour, last-day, last-week, last-month, last-year.\n */\n datePosted?:\n \"last-hour\" | \"last-day\" | \"last-week\" | \"last-month\" | \"last-year\";\n /**\n * 1-based results page.\n * Range: minimum 1.\n * Default: 1.\n */\n page?: number;\n /**\n * Search keyword (e.g. \"crossfit\").\n */\n query: string;\n}\n\nexport interface InstagramReelsSearchReel {\n /**\n * Reel caption text. Populated whenever the provider has data for the entity.\n */\n caption: string;\n /**\n * Number of comments on the reel.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Reel duration in seconds.\n */\n durationSeconds: number;\n /**\n * Follower count of the posting account.\n */\n followers: number;\n /**\n * Number of likes on the reel.\n */\n likes: number;\n /**\n * True when the reel is a paid partnership.\n */\n paidPartnership: boolean;\n /**\n * Number of plays of the reel.\n */\n plays: number;\n /**\n * Instagram media shortcode. Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n /**\n * URL of the reel thumbnail image. Populated whenever the provider has data for the entity.\n */\n thumbnail: string;\n /**\n * Canonical URL of the reel. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Username of the account that posted the reel. Populated whenever the provider has data for the entity.\n */\n username: string;\n /**\n * True when the posting account is verified.\n */\n verified: boolean;\n /**\n * Number of views on the reel.\n */\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Reels Search (instagram.reels_search).\n */\nexport interface InstagramReelsSearchData {\n /**\n * Reels matching the search. Populated whenever the provider has data for the entity.\n */\n reels: InstagramReelsSearchReel[];\n}\n\n/**\n * Input for Instagram Search (instagram.search).\n */\nexport interface InstagramSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Keyword to search Instagram for; one or more words without special punctuation (e.g. coffee roastery).\n */\n query: string;\n /**\n * What to search for: user profiles, hashtags, or places (e.g. hashtag).\n * One of: user, hashtag, place.\n * Default: user.\n */\n type?: \"user\" | \"hashtag\" | \"place\";\n}\n\nexport interface InstagramSearchItem {\n /**\n * The account's bio text. Empty when the account has none.\n */\n bio?: string;\n /**\n * The account's follower count. May be 0 when the lane does not return it in search results.\n */\n followers?: number;\n /**\n * The number of accounts the account follows. May be 0 when the lane does not return it in search results.\n */\n following?: number;\n /**\n * The account's username, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * The account's numeric Instagram user ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the account's profile picture, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * The account's display name. Empty when the account has none.\n */\n name?: string;\n /**\n * The account's post count. May be 0 when the lane does not return it in search results.\n */\n postsCount?: number;\n /**\n * Canonical URL of the account's profile, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Whether the account is verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Search (instagram.search).\n */\nexport interface InstagramSearchData {\n /**\n * Matching Instagram profile records for the query. Populated whenever the provider has data for the entity.\n */\n items: InstagramSearchItem[];\n}\n\n/**\n * Input for Instagram Hashtag Search (instagram.search_hashtag).\n */\nexport interface InstagramSearchHashtagInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Restrict results to posts published within this window.\n * One of: last-hour, last-day, last-week, last-month, last-year.\n */\n datePosted?:\n \"last-hour\" | \"last-day\" | \"last-week\" | \"last-month\" | \"last-year\";\n /**\n * Hashtag to search, without the leading #.\n */\n hashtag: string;\n /**\n * Filter by media type (e.g. all, photo, video, reel).\n */\n mediaType?: string;\n}\n\nexport interface InstagramSearchHashtagPost {\n caption: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Hashtag Search (instagram.search_hashtag).\n */\nexport interface InstagramSearchHashtagData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: InstagramSearchHashtagPost[];\n}\n\n/**\n * Input for Instagram Profile Search (instagram.search_profiles).\n */\nexport interface InstagramSearchProfilesInput {\n /**\n * Pagination cursor returned by a previous response.\n */\n cursor?: string;\n /**\n * Bio or caption keyword/phrase to search for.\n */\n query: string;\n}\n\nexport interface InstagramSearchProfilesProfile {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n posts: number;\n private: boolean;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Profile Search (instagram.search_profiles).\n */\nexport interface InstagramSearchProfilesData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n profiles: InstagramSearchProfilesProfile[];\n}\n\n/**\n * Input for Instagram Stories (full) (instagram.stories_full).\n */\nexport interface InstagramStoriesFullInput {\n /**\n * Instagram usernames/handles (without the @). A flat run fee is shared across the batch, so request several at once to lower the cost per account. Up to 100 usernames per request.\n */\n usernames: string[];\n}\n\nexport interface InstagramStoriesFullItem {\n /**\n * Story caption text, when present.\n */\n caption?: string;\n /**\n * Instagram media shortcode.\n */\n code?: string;\n /**\n * Posting time (Unix seconds).\n */\n createdUtc?: number;\n /**\n * Expiry time, 24h after posting (Unix seconds).\n */\n expiresAt?: number;\n /**\n * Media pixel height.\n */\n height?: number;\n /**\n * Story identifier.\n */\n id: string;\n /**\n * Direct URL to the story image (highest resolution).\n */\n imageUrl?: string;\n /**\n * Media type: 1 = image, 2 = video.\n */\n mediaType?: number;\n /**\n * Owner username. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n username?: string;\n /**\n * Direct URL to the story video, when the story is a video.\n */\n videoUrl?: string;\n /**\n * Media pixel width.\n */\n width?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Stories (full) (instagram.stories_full).\n */\nexport interface InstagramStoriesFullData {\n /**\n * Story records across the requested accounts, each with full media, type, dimensions, posting + expiry time, and caption. Populated whenever the provider has data for the entity.\n */\n items: InstagramStoriesFullItem[];\n}\n\n/**\n * Input for Instagram Stories (basic) (instagram.stories_thin).\n */\nexport interface InstagramStoriesThinInput {\n /**\n * Instagram username/handle to fetch currently live stories for (without the @).\n */\n username: string;\n}\n\nexport interface InstagramStoriesThinItem {\n /**\n * Posting time (Unix seconds).\n */\n createdUtc?: number;\n /**\n * Story identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Direct URL to the story image or video. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n mediaUrl?: string;\n /**\n * Public link to the story. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n permalink?: string;\n /**\n * Owner username. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n username?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Stories (basic) (instagram.stories_thin).\n */\nexport interface InstagramStoriesThinData {\n /**\n * The account's currently live stories, each with its media URL, owner, posting time, and permalink. Populated whenever the provider has data for the entity.\n */\n items: InstagramStoriesThinItem[];\n}\n\n/**\n * Input for Instagram Trending Reels (instagram.trending_reels).\n */\nexport interface InstagramTrendingReelsInput {}\n\nexport interface InstagramTrendingReelsReel {\n caption: string;\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n plays: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram Trending Reels (instagram.trending_reels).\n */\nexport interface InstagramTrendingReelsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n reels: InstagramTrendingReelsReel[];\n}\n\n/**\n * Input for Instagram User Highlights (instagram.user_highlights).\n */\nexport interface InstagramUserHighlightsInput {\n /**\n * Instagram username without the leading @.\n */\n handle: string;\n /**\n * Instagram numeric user id (optional, faster than handle).\n */\n userId?: string;\n}\n\nexport interface InstagramUserHighlightsHighlight {\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n ownerHandle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram User Highlights (instagram.user_highlights).\n */\nexport interface InstagramUserHighlightsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n highlights: InstagramUserHighlightsHighlight[];\n}\n\n/**\n * Input for Instagram User Posts (instagram.user_posts).\n */\nexport interface InstagramUserPostsInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Instagram username without the leading @.\n */\n handle: string;\n}\n\nexport interface InstagramUserPostsPost {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram User Posts (instagram.user_posts).\n */\nexport interface InstagramUserPostsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: InstagramUserPostsPost[];\n}\n\n/**\n * Input for Instagram User Reels (instagram.user_reels).\n */\nexport interface InstagramUserReelsInput {\n /**\n * Pagination cursor (max_id) from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Instagram handle.\n */\n handle?: string;\n /**\n * Instagram user id (faster than handle when known).\n */\n userId?: string;\n}\n\nexport interface InstagramUserReelsReel {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shortcode: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Instagram User Reels (instagram.user_reels).\n */\nexport interface InstagramUserReelsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n reels: InstagramUserReelsReel[];\n}\n\n/**\n * Typed methods for the instagram platform. Attached to the AnyAPI client as\n * `client.instagram`.\n */\nexport class InstagramNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Instagram Reels by Audio\n *\n * List Instagram reels that use a given audio track by audio id, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.audioReels({ audioId: \"1392969992841787\" });\n */\n audioReels(\n input: InstagramAudioReelsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramAudioReelsData>> {\n return this._core.run(\"instagram.audio_reels\", input, options);\n }\n\n /**\n * Iterate every result of Instagram Reels by Audio across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterAudioReels(\n input: InstagramAudioReelsInput,\n options?: RequestOptions,\n ): Paginator<InstagramAudioReelsReel, RunResult<InstagramAudioReelsData>> {\n return paginate<\n InstagramAudioReelsReel,\n RunResult<InstagramAudioReelsData>\n >(\n this._core,\n \"instagram.audio_reels\",\n input as unknown as Record<string, unknown>,\n \"reels\",\n false,\n options,\n );\n }\n\n /**\n * Instagram Basic Profile\n *\n * Fetch an Instagram account's core public profile fields (followers, posts, bio, verification) by user id, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.basicProfile({ userId: \"314216\" });\n */\n basicProfile(\n input: InstagramBasicProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramBasicProfileData>> {\n return this._core.run(\"instagram.basic_profile\", input, options);\n }\n\n /**\n * Instagram Profile Embed\n *\n * Fetch the public embed HTML for an Instagram profile by handle, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.embed({ handle: \"nasa\" });\n */\n embed(\n input: InstagramEmbedInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramEmbedData>> {\n return this._core.run(\"instagram.embed\", input, options);\n }\n\n /**\n * Instagram Followers\n *\n * List the followers of any public Instagram account by username: follower usernames, names, and profile details.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.instagram.followers({ username: \"nasa\", limit: 50 });\n */\n followers(\n input: InstagramFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramFollowersData>> {\n return this._core.run(\"instagram.followers\", input, options);\n }\n\n /**\n * Iterate every result of Instagram Followers across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowers(\n input: InstagramFollowersInput,\n options?: RequestOptions,\n ): Paginator<InstagramFollowersItem, RunResult<InstagramFollowersData>> {\n return paginate<InstagramFollowersItem, RunResult<InstagramFollowersData>>(\n this._core,\n \"instagram.followers\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * Instagram Following\n *\n * List the accounts a public Instagram user follows: usernames, names, and profile details.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.instagram.following({ username: \"nasa\", limit: 50 });\n */\n following(\n input: InstagramFollowingInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramFollowingData>> {\n return this._core.run(\"instagram.following\", input, options);\n }\n\n /**\n * Iterate every result of Instagram Following across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowing(\n input: InstagramFollowingInput,\n options?: RequestOptions,\n ): Paginator<InstagramFollowingItem, RunResult<InstagramFollowingData>> {\n return paginate<InstagramFollowingItem, RunResult<InstagramFollowingData>>(\n this._core,\n \"instagram.following\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * Instagram Hashtag Analytics\n *\n * Get analytics for any Instagram hashtag (total post count, related hashtags, and usage signals), normalized.\n *\n * Price: $0.001 per request plus $0.0017 per result (maximum $0.035).\n *\n * @example\n * const res = await client.instagram.hashtagAnalytics({ hashtag: \"travel\", limit: 5 });\n */\n hashtagAnalytics(\n input: InstagramHashtagAnalyticsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramHashtagAnalyticsData>> {\n return this._core.run(\"instagram.hashtag_analytics\", input, options);\n }\n\n /**\n * Instagram Highlight Detail\n *\n * Fetch the details and media items of a single Instagram story highlight by id, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.highlightDetail({ id: \"18201653992314974\" });\n */\n highlightDetail(\n input: InstagramHighlightDetailInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramHighlightDetailData>> {\n return this._core.run(\"instagram.highlight_detail\", input, options);\n }\n\n /**\n * Instagram Media Transcript\n *\n * Get the spoken-audio transcript text for an Instagram post or reel by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.mediaTranscript({ url: \"https://www.instagram.com/reel/DHsD6HGqJhp/\" });\n */\n mediaTranscript(\n input: InstagramMediaTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramMediaTranscriptData>> {\n return this._core.run(\"instagram.media_transcript\", input, options);\n }\n\n /**\n * Instagram Post\n *\n * Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.post({ url: \"https://www.instagram.com/reel/DWzrfE2kaY8/\" });\n */\n post(\n input: InstagramPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramPostData>> {\n return this._core.run(\"instagram.post\", input, options);\n }\n\n /**\n * Instagram Post Comments\n *\n * List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.postComments({ url: \"https://www.instagram.com/reel/DWzrfE2kaY8/\" });\n */\n postComments(\n input: InstagramPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramPostCommentsData>> {\n return this._core.run(\"instagram.post_comments\", input, options);\n }\n\n /**\n * Instagram Profile\n *\n * Fetch an Instagram account's public profile (followers, posts, bio, verification) by handle, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.profile({ handle: \"nasa\" });\n */\n profile(\n input: InstagramProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramProfileData>> {\n return this._core.run(\"instagram.profile\", input, options);\n }\n\n /**\n * Instagram Reel Transcript\n *\n * Turn any public Instagram reel or video post into a full speech transcript, with optional word-level timestamps.\n *\n * Price: $0.005 per request plus $0.02 per result (maximum $0.025).\n *\n * @example\n * const res = await client.instagram.reelTranscript({ url: \"https://www.instagram.com/reel/DWzrfE2kaY8/\", wordTimestamps: false });\n */\n reelTranscript(\n input: InstagramReelTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramReelTranscriptData>> {\n return this._core.run(\"instagram.reel_transcript\", input, options);\n }\n\n /**\n * Instagram Reels Search\n *\n * Search Instagram Reels by keyword and get matching reels (caption, views, likes, creator, and duration), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.reelsSearch({ query: \"travel\" });\n */\n reelsSearch(\n input: InstagramReelsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramReelsSearchData>> {\n return this._core.run(\"instagram.reels_search\", input, options);\n }\n\n /**\n * Instagram Search\n *\n * Search Instagram for users, hashtags, or places by keyword and get matching results with names, counts, and links.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.instagram.search({ query: \"nasa\" });\n */\n search(\n input: InstagramSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramSearchData>> {\n return this._core.run(\"instagram.search\", input, options);\n }\n\n /**\n * Instagram Hashtag Search\n *\n * List recent Instagram posts under a hashtag (caption, type, media URL), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.searchHashtag({ hashtag: \"travel\" });\n */\n searchHashtag(\n input: InstagramSearchHashtagInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramSearchHashtagData>> {\n return this._core.run(\"instagram.search_hashtag\", input, options);\n }\n\n /**\n * Instagram Profile Search\n *\n * Search public Instagram profiles by a bio or caption keyword, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.searchProfiles({ query: \"coffee roaster\" });\n */\n searchProfiles(\n input: InstagramSearchProfilesInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramSearchProfilesData>> {\n return this._core.run(\"instagram.search_profiles\", input, options);\n }\n\n /**\n * Iterate every result of Instagram Profile Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchProfiles(\n input: InstagramSearchProfilesInput,\n options?: RequestOptions,\n ): Paginator<\n InstagramSearchProfilesProfile,\n RunResult<InstagramSearchProfilesData>\n > {\n return paginate<\n InstagramSearchProfilesProfile,\n RunResult<InstagramSearchProfilesData>\n >(\n this._core,\n \"instagram.search_profiles\",\n input as unknown as Record<string, unknown>,\n \"profiles\",\n false,\n options,\n );\n }\n\n /**\n * Instagram Stories (full)\n *\n * Fetch public Instagram accounts' currently live stories with the full record - media (image and video), type, dimensions, posting time, 24h expiry, and caption. Up to 100 usernames per request.\n *\n * Price: $0.099 per request plus $0.003 per username (maximum $0.102).\n *\n * @example\n * const res = await client.instagram.storiesFull({ usernames: [\"natgeo\"] });\n */\n storiesFull(\n input: InstagramStoriesFullInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramStoriesFullData>> {\n return this._core.run(\"instagram.stories_full\", input, options);\n }\n\n /**\n * Instagram Stories (basic)\n *\n * Fetch a public Instagram account's currently live stories - media URL, owner, and posting time - by username. Lightweight projection; for media type, dimensions, and the 24h expiry time use instagram.stories_full.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.instagram.storiesThin({ username: \"natgeo\" });\n */\n storiesThin(\n input: InstagramStoriesThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramStoriesThinData>> {\n return this._core.run(\"instagram.stories_thin\", input, options);\n }\n\n /**\n * Instagram Trending Reels\n *\n * List currently trending Instagram reels, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.trendingReels({});\n */\n trendingReels(\n input: InstagramTrendingReelsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramTrendingReelsData>> {\n return this._core.run(\"instagram.trending_reels\", input, options);\n }\n\n /**\n * Instagram User Highlights\n *\n * List an Instagram account's story highlight reels by handle, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.userHighlights({ handle: \"nasa\" });\n */\n userHighlights(\n input: InstagramUserHighlightsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramUserHighlightsData>> {\n return this._core.run(\"instagram.user_highlights\", input, options);\n }\n\n /**\n * Instagram User Posts\n *\n * List an Instagram account's recent posts (likes, comments, captions) by handle with cursor pagination, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.userPosts({ handle: \"nasa\" });\n */\n userPosts(\n input: InstagramUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramUserPostsData>> {\n return this._core.run(\"instagram.user_posts\", input, options);\n }\n\n /**\n * Iterate every result of Instagram User Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserPosts(\n input: InstagramUserPostsInput,\n options?: RequestOptions,\n ): Paginator<InstagramUserPostsPost, RunResult<InstagramUserPostsData>> {\n return paginate<InstagramUserPostsPost, RunResult<InstagramUserPostsData>>(\n this._core,\n \"instagram.user_posts\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n\n /**\n * Instagram User Reels\n *\n * List an Instagram account's reels by handle with cursor pagination (caption, plays, likes, comments), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.instagram.userReels({ handle: \"nasa\" });\n */\n userReels(\n input: InstagramUserReelsInput,\n options?: RequestOptions,\n ): Promise<RunResult<InstagramUserReelsData>> {\n return this._core.run(\"instagram.user_reels\", input, options);\n }\n\n /**\n * Iterate every result of Instagram User Reels across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserReels(\n input: InstagramUserReelsInput,\n options?: RequestOptions,\n ): Paginator<InstagramUserReelsReel, RunResult<InstagramUserReelsData>> {\n return paginate<InstagramUserReelsReel, RunResult<InstagramUserReelsData>>(\n this._core,\n \"instagram.user_reels\",\n input as unknown as Record<string, unknown>,\n \"reels\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for LinkedIn Ad Details (linkedin.ad).\n */\nexport interface LinkedinAdInput {\n /**\n * LinkedIn Ad Library ad URL (e.g. \"https://www.linkedin.com/ad-library/detail/666281156\").\n */\n url: string;\n}\n\n/**\n * The `data` payload of LinkedIn Ad Details (linkedin.ad).\n */\nexport interface LinkedinAdData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiser: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiserLinkedinPage: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n cta: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n destinationUrl: string;\n /**\n * ISO 8601 date.\n */\n endDate: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n headline: string;\n id: string;\n image: string;\n /**\n * ISO 8601 date.\n */\n startDate: string;\n totalImpressions: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Ads Library (linkedin.ads).\n */\nexport interface LinkedinAdsInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * LinkedIn Ad Library search URL or a LinkedIn company URL (e.g. https://www.linkedin.com/ad-library/search?companyIds=1035).\n */\n url: string;\n}\n\n/**\n * A LinkedIn ad: advertiser, creative text, format, and ad library URL.\n */\nexport interface LinkedinAdsItem {\n /**\n * Advertiser (company) name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n advertiser?: string;\n /**\n * Advertiser logo image URL.\n */\n advertiserLogo?: string;\n /**\n * Ad format (e.g. SINGLE_IMAGE, VIDEO).\n */\n format?: string;\n /**\n * LinkedIn ad id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Ad creative image URL.\n */\n image?: string;\n /**\n * Ad creative body text.\n */\n text?: string;\n /**\n * Canonical LinkedIn Ad Library detail URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Ads Library (linkedin.ads).\n */\nexport interface LinkedinAdsData {\n /**\n * Ad records from the LinkedIn Ad Library. Populated whenever the provider has data for the entity.\n */\n items: LinkedinAdsItem[];\n}\n\n/**\n * Input for LinkedIn Ad Search (linkedin.ads_search).\n */\nexport interface LinkedinAdsSearchInput {\n /**\n * Company name to search (e.g. \"microsoft\").\n */\n company?: string;\n /**\n * LinkedIn company identifier.\n */\n companyId?: string;\n /**\n * Comma-separated two-letter country codes (e.g. \"US,CA,MX\").\n */\n countries?: string;\n /**\n * Search end date in YYYY-MM-DD format.\n */\n endDate?: string;\n /**\n * Keyword term for the ad search.\n */\n keyword?: string;\n /**\n * Opaque pagination token from a previous response's nextCursor.\n */\n paginationToken?: string;\n /**\n * Search start date in YYYY-MM-DD format.\n */\n startDate?: string;\n}\n\nexport interface LinkedinAdsSearchAd {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n advertiser: string;\n advertiserLinkedinPage: string;\n cta: string;\n description: string;\n destinationUrl: string;\n endDate: string;\n headline: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n startDate: string;\n totalImpressions: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Ad Search (linkedin.ads_search).\n */\nexport interface LinkedinAdsSearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n ads: LinkedinAdsSearchAd[];\n nextCursor: string;\n totalAds: number;\n}\n\n/**\n * Input for LinkedIn Company (linkedin.company).\n */\nexport interface LinkedinCompanyInput {\n /**\n * Full LinkedIn company page URL.\n */\n url: string;\n}\n\nexport interface LinkedinCompanyLocation {\n /**\n * City.\n */\n city?: string;\n /**\n * ISO country code.\n */\n country?: string;\n /**\n * True when this location is the headquarters.\n */\n headquarter?: boolean;\n /**\n * Street address line.\n */\n line1?: string;\n /**\n * Postal code.\n */\n postalCode?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company (linkedin.company).\n */\nexport interface LinkedinCompanyData {\n /**\n * Company type, e.g. Privately Held, Public Company.\n */\n companyType?: string;\n /**\n * Company about/description text. Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Reported total employee count. Populated whenever the provider has data for the entity.\n */\n employeeCount: number;\n /**\n * LinkedIn size bucket the company falls in.\n */\n employeeCountRange?: {\n /**\n * Upper bound of the employee-count bucket.\n */\n end?: number;\n /**\n * Lower bound of the employee-count bucket.\n */\n start?: number;\n };\n /**\n * LinkedIn page follower count. Populated whenever the provider has data for the entity.\n */\n followerCount: number;\n /**\n * Founding date (year populated when known).\n */\n foundedOn?: {\n /**\n * Year the company was founded.\n */\n year?: number;\n };\n /**\n * Funding summary sourced from Crunchbase, when available.\n */\n fundingData?: {\n /**\n * Crunchbase profile URL for the company.\n */\n companyCrunchbaseUrl?: string;\n /**\n * Type of the most recent funding round.\n */\n lastFundingType?: string;\n /**\n * Total number of funding rounds.\n */\n numFundingRounds?: number;\n };\n /**\n * Primary industry.\n */\n industry: string;\n /**\n * Company office locations, including headquarters.\n */\n locations?: LinkedinCompanyLocation[];\n /**\n * Company logo image URL.\n */\n logoUrl: string;\n /**\n * Company name.\n */\n name: string;\n /**\n * Whether LinkedIn has verified the company page.\n */\n pageVerified?: boolean;\n /**\n * Similar organizations surfaced by LinkedIn.\n */\n similarOrganizations?: unknown[];\n /**\n * Company-declared specialities.\n */\n specialities?: unknown[];\n /**\n * Company tagline/slogan.\n */\n tagline: string;\n /**\n * LinkedIn universal (vanity) name for the company.\n */\n universalName?: string;\n /**\n * Company website URL.\n */\n website: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Company Employees (linkedin.company_employees).\n */\nexport interface LinkedinCompanyEmployeesInput {\n /**\n * Company name or LinkedIn company URL (e.g. google or https://www.linkedin.com/company/google/).\n */\n company: string;\n /**\n * Optional job-title filter supporting boolean operators (e.g. CEO OR CTO).\n */\n jobTitle?: string;\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n}\n\n/**\n * An employee: name, headline, location, handle, and LinkedIn profile URL.\n */\nexport interface LinkedinCompanyEmployeesItem {\n /**\n * First name.\n */\n firstName?: string;\n /**\n * Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n handle?: string;\n /**\n * Profile picture URL.\n */\n image?: string;\n /**\n * The employee's current role or headline.\n */\n jobTitle?: string;\n /**\n * Last name.\n */\n lastName?: string;\n /**\n * The employee's location as a single string (city, region, country).\n */\n location?: string;\n /**\n * Full name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company Employees (linkedin.company_employees).\n */\nexport interface LinkedinCompanyEmployeesData {\n /**\n * Employee records for the company. Populated whenever the provider has data for the entity.\n */\n items: LinkedinCompanyEmployeesItem[];\n}\n\n/**\n * Input for LinkedIn Company Posts (linkedin.company_posts).\n */\nexport interface LinkedinCompanyPostsInput {\n /**\n * Include quote posts (posts shared with an added comment). Defaults to true; set false to exclude them.\n */\n includeQuotePosts?: boolean;\n /**\n * Include reposts (posts shared without an added comment). Defaults to true; set false to exclude them.\n */\n includeReposts?: boolean;\n /**\n * Maximum number of posts to return.\n * Range: minimum 1, maximum 50.\n * Default: 10.\n */\n limit?: number;\n /**\n * Only return posts published within this window (default any).\n * One of: any, 1h, 24h, week, month, 3months, 6months, year.\n */\n postedLimit?:\n \"any\" | \"1h\" | \"24h\" | \"week\" | \"month\" | \"3months\" | \"6months\" | \"year\";\n /**\n * Full LinkedIn company page URL.\n */\n url: string;\n}\n\nexport interface LinkedinCompanyPostsItem {\n /**\n * The post author (a company or a profile).\n */\n author?: {\n /**\n * Author follower count as displayed text (e.g. '1,543,793 followers').\n */\n followers?: string;\n /**\n * Canonical LinkedIn URL of the author.\n */\n linkedinUrl?: string;\n /**\n * Display name of the author.\n */\n name?: string;\n /**\n * Author kind, e.g. 'company' or 'profile'.\n */\n type?: string;\n /**\n * URL-safe company/profile handle, when present.\n */\n universalName?: string;\n };\n /**\n * Inline mentions and entity references in the post text.\n */\n contentAttributes?: LinkedinCompanyPostsContentAttribute[];\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Engagement metrics for the post.\n */\n engagement?: {\n /**\n * Number of comments on the post.\n */\n comments?: number;\n /**\n * Total reaction count on the post. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n likes?: number;\n /**\n * Per-reaction-type breakdown of the reaction total.\n */\n reactions?: LinkedinCompanyPostsReaction[];\n /**\n * Number of shares/reposts of the post.\n */\n shares?: number;\n };\n /**\n * Unique identifier of the post. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Images attached to the post.\n */\n postImages?: LinkedinCompanyPostsPostImage[];\n /**\n * Video attached to the post, or null when absent.\n */\n postVideo?: {};\n /**\n * Full text content of the post.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinCompanyPostsContentAttribute {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinCompanyPostsReaction {\n /**\n * Number of reactions of this type.\n */\n count?: number;\n /**\n * Reaction type, e.g. LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION.\n */\n type?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinCompanyPostsPostImage {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company Posts (linkedin.company_posts).\n */\nexport interface LinkedinCompanyPostsData {\n /**\n * The company's recent posts. Populated whenever the provider has data for the entity.\n */\n items: LinkedinCompanyPostsItem[];\n}\n\n/**\n * Input for LinkedIn Company Posts (basic) (linkedin.company_posts_thin).\n */\nexport interface LinkedinCompanyPostsThinInput {\n /**\n * Page number for pagination.\n * Range: minimum 1.\n */\n page?: number;\n /**\n * Full LinkedIn company page URL.\n */\n url: string;\n}\n\nexport interface LinkedinCompanyPostsThinItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Unique identifier of the post. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Text content of the post. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company Posts (basic) (linkedin.company_posts_thin).\n */\nexport interface LinkedinCompanyPostsThinData {\n /**\n * The company's recent posts. Populated whenever the provider has data for the entity.\n */\n items: LinkedinCompanyPostsThinItem[];\n}\n\n/**\n * Input for LinkedIn Company (basic) (linkedin.company_thin).\n */\nexport interface LinkedinCompanyThinInput {\n /**\n * Full LinkedIn company page URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of LinkedIn Company (basic) (linkedin.company_thin).\n */\nexport interface LinkedinCompanyThinData {\n /**\n * Company about/description text. Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Reported employee count.\n */\n employeeCount: number;\n /**\n * Primary industry. Populated whenever the provider has data for the entity.\n */\n industry: string;\n /**\n * Company logo image URL. Populated whenever the provider has data for the entity.\n */\n logoUrl: string;\n /**\n * Company name.\n */\n name: string;\n /**\n * Company tagline/slogan. Populated whenever the provider has data for the entity.\n */\n tagline: string;\n /**\n * Company website URL. Populated whenever the provider has data for the entity.\n */\n website: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Email Finder (linkedin.email).\n */\nexport interface LinkedinEmailInput {\n /**\n * LinkedIn profile URL or public identifier (the last part of the URL) to find the deliverability-validated work email for.\n */\n profileUrl: string;\n}\n\n/**\n * A discovered email with its deliverability and validation signals.\n */\nexport interface LinkedinEmailEmail {\n /**\n * True when the email passed deliverability checks (including SMTP).\n */\n deliverable?: boolean;\n /**\n * Discovered work email address. Populated whenever the provider has data for the entity.\n */\n email: string;\n /**\n * Confidence score for the email, 0-100.\n */\n qualityScore?: number;\n /**\n * Validation status of the email (e.g. valid).\n */\n status?: string;\n /**\n * True when the domain has a valid mail server.\n */\n validEmailServer?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Email Finder (linkedin.email).\n */\nexport interface LinkedinEmailData {\n /**\n * Deliverability-validated work emails discovered for the profile. Populated whenever the provider has data for the entity.\n */\n emails: LinkedinEmailEmail[];\n /**\n * First name on the LinkedIn profile.\n */\n firstName?: string;\n /**\n * Profile headline.\n */\n headline?: string;\n /**\n * Last name on the LinkedIn profile.\n */\n lastName?: string;\n /**\n * Canonical LinkedIn profile URL.\n */\n linkedinUrl?: string;\n}\n\n/**\n * Input for LinkedIn Jobs (linkedin.jobs).\n */\nexport interface LinkedinJobsInput {\n /**\n * Filter to a specific company by name (e.g. Google).\n */\n company?: string;\n /**\n * When true, only return jobs offering LinkedIn Easy Apply.\n */\n easyApply?: boolean;\n /**\n * Filter by employment type.\n * One of: full-time, part-time, contract, internship, temporary.\n */\n employmentType?:\n \"full-time\" | \"part-time\" | \"contract\" | \"internship\" | \"temporary\";\n /**\n * Filter by required seniority/experience level.\n * One of: internship, entry, associate, mid-senior, director, executive.\n */\n experienceLevel?:\n | \"internship\"\n | \"entry\"\n | \"associate\"\n | \"mid-senior\"\n | \"director\"\n | \"executive\";\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * City, region, or country to search within (e.g. United States, San Francisco).\n */\n location?: string;\n /**\n * Only jobs posted within this window (past hour, 24 hours, week, or month).\n * One of: 1h, 24h, week, month.\n */\n postedLimit?: \"1h\" | \"24h\" | \"week\" | \"month\";\n /**\n * Job title or keywords to search. Supports LinkedIn boolean operators.\n */\n query: string;\n /**\n * Filter by minimum base salary band (US dollars).\n * One of: 40k+, 60k+, 80k+, 100k+, 120k+, 140k+, 160k+, 180k+, 200k+.\n */\n salary?:\n | \"40k+\"\n | \"60k+\"\n | \"80k+\"\n | \"100k+\"\n | \"120k+\"\n | \"140k+\"\n | \"160k+\"\n | \"180k+\"\n | \"200k+\";\n /**\n * Sort order: most recent (date) or best match (relevance).\n * One of: date, relevance.\n */\n sortBy?: \"date\" | \"relevance\";\n /**\n * When true, only return jobs with fewer than 10 applicants (lower competition).\n */\n under10Applicants?: boolean;\n /**\n * Filter by workplace type (remote, hybrid, or onsite).\n * One of: remote, hybrid, onsite.\n */\n workplaceType?: \"remote\" | \"hybrid\" | \"onsite\";\n}\n\n/**\n * A LinkedIn job listing with full detail: title, description, salary, applicant count, seniority, company, and benefits.\n */\nexport interface LinkedinJobsItem {\n /**\n * Number of applicants reported by LinkedIn. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n applicants?: number;\n /**\n * External company apply URL when the job applies off-site.\n */\n applyUrl?: string;\n /**\n * Listed benefits.\n */\n benefits?: string[];\n /**\n * Hiring company details.\n */\n company?: {\n /**\n * Canonical LinkedIn company URL.\n */\n linkedinUrl?: string;\n /**\n * Company logo image URL.\n */\n logo?: string;\n /**\n * Company name.\n */\n name?: string;\n /**\n * Company LinkedIn universal (vanity) name.\n */\n universalName?: string;\n };\n /**\n * UTC epoch timestamp in seconds (Unix time) the job was posted. Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Full job description as plain text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n descriptionText?: string;\n /**\n * LinkedIn Easy Apply URL when available.\n */\n easyApplyUrl?: string;\n /**\n * Employment type (e.g. full_time, contract, part_time).\n */\n employmentType?: string;\n /**\n * Seniority / experience level (e.g. Mid-Senior level, Entry level).\n */\n experienceLevel?: string;\n /**\n * LinkedIn job listing id.\n */\n id?: string;\n /**\n * Industries associated with the role.\n */\n industries?: string[];\n /**\n * Job location (city, region, or country).\n */\n location?: string;\n /**\n * Salary range when disclosed by the poster.\n */\n salary?: {\n /**\n * Maximum salary.\n */\n max?: number;\n /**\n * Minimum salary.\n */\n min?: number;\n /**\n * Salary as displayed (e.g. '300,000 - 330,000 USD').\n */\n text?: string;\n };\n /**\n * Job title.\n */\n title: string;\n /**\n * Canonical LinkedIn job listing URL.\n */\n url: string;\n /**\n * Workplace type (e.g. remote, on_site, hybrid).\n */\n workplaceType?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Jobs (linkedin.jobs).\n */\nexport interface LinkedinJobsData {\n /**\n * Full job listing records for the search. Populated whenever the provider has data for the entity.\n */\n items: LinkedinJobsItem[];\n}\n\n/**\n * Input for LinkedIn Jobs (index) (linkedin.jobs_thin).\n */\nexport interface LinkedinJobsThinInput {\n /**\n * Filter to a specific company by its LinkedIn numeric company id.\n */\n companyId?: string;\n /**\n * Filter by employment type.\n * One of: full-time, part-time, contract, internship, temporary.\n */\n employmentType?:\n \"full-time\" | \"part-time\" | \"contract\" | \"internship\" | \"temporary\";\n /**\n * Filter by required seniority/experience level.\n * One of: internship, entry, associate, mid-senior, director, executive.\n */\n experienceLevel?:\n | \"internship\"\n | \"entry\"\n | \"associate\"\n | \"mid-senior\"\n | \"director\"\n | \"executive\";\n /**\n * LinkedIn geo id to target a precise location (e.g. 103644278 for the United States); more exact than the free-text location.\n */\n geoId?: string;\n /**\n * Maximum number of results to return (1-25, default 25).\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * City, region, or country to search within.\n */\n location?: string;\n /**\n * Only jobs posted within this window (past 24 hours, week, or month).\n * One of: 24h, week, month.\n */\n postedLimit?: \"24h\" | \"week\" | \"month\";\n /**\n * Job title or keywords to search.\n */\n query: string;\n /**\n * Filter by workplace type (remote, hybrid, or onsite).\n * One of: remote, hybrid, onsite.\n */\n workplaceType?: \"remote\" | \"hybrid\" | \"onsite\";\n}\n\n/**\n * A LinkedIn job listing index entry: title, company, location, posting date, and the listing URL.\n */\nexport interface LinkedinJobsThinItem {\n /**\n * Hiring company name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n company?: string;\n /**\n * Canonical LinkedIn company URL.\n */\n companyUrl?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * LinkedIn job listing id.\n */\n id?: string;\n /**\n * Job location (city, region). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n location?: string;\n /**\n * Job title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical LinkedIn job listing URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Jobs (index) (linkedin.jobs_thin).\n */\nexport interface LinkedinJobsThinData {\n /**\n * Job listing index records for the search. Populated whenever the provider has data for the entity.\n */\n items: LinkedinJobsThinItem[];\n}\n\n/**\n * Input for LinkedIn Post (linkedin.post).\n */\nexport interface LinkedinPostInput {\n /**\n * Full LinkedIn post or article URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of LinkedIn Post (linkedin.post).\n */\nexport interface LinkedinPostData {\n /**\n * Name of the post author. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Number of comments on the post.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Text content of the post. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Title of the post.\n */\n title: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Post Comments (linkedin.post_comments).\n */\nexport interface LinkedinPostCommentsInput {\n /**\n * Maximum number of comments to return. You are billed per comment returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n * Default: 100.\n */\n limit?: number;\n /**\n * Only return comments posted within this window (default any).\n * One of: any, 24h, week, month, 3months, 6months, year.\n */\n postedLimit?:\n \"any\" | \"24h\" | \"week\" | \"month\" | \"3months\" | \"6months\" | \"year\";\n /**\n * Full URL of the LinkedIn post to list comments for.\n */\n url: string;\n}\n\nexport interface LinkedinPostCommentsItem {\n /**\n * The commenter (a profile or a company).\n */\n actor?: {\n /**\n * Profile picture URL of the commenter.\n */\n image?: string;\n /**\n * Canonical LinkedIn URL of the commenter.\n */\n linkedinUrl?: string;\n /**\n * Display name of the commenter.\n */\n name?: string;\n /**\n * Commenter's headline or job title as displayed.\n */\n position?: string;\n /**\n * Commenter kind, e.g. 'profile' or 'company'.\n */\n type?: string;\n };\n /**\n * Full text of the comment. Populated whenever the provider has data for the entity.\n */\n commentary: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Whether the comment has been edited.\n */\n edited?: boolean;\n /**\n * Engagement metrics for the comment.\n */\n engagement?: {\n /**\n * Number of replies to the comment.\n */\n comments?: number;\n /**\n * Number of likes on the comment.\n */\n likes?: number;\n };\n /**\n * Unique identifier of the comment. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Whether the comment is pinned on the post.\n */\n pinned?: boolean;\n /**\n * Canonical permalink URL of the comment.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Post Comments (linkedin.post_comments).\n */\nexport interface LinkedinPostCommentsData {\n /**\n * The post's comments. Populated whenever the provider has data for the entity.\n */\n items: LinkedinPostCommentsItem[];\n}\n\n/**\n * Input for LinkedIn Post Reactions (linkedin.post_reactions).\n */\nexport interface LinkedinPostReactionsInput {\n /**\n * Maximum number of reactions to return (1-100, default 100). You are billed per reaction returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n /**\n * URL of the LinkedIn post to list reactions for (a /posts/...-activity-... or /feed/update/urn:li:activity:... link).\n */\n url: string;\n}\n\nexport interface LinkedinPostReactionsItem {\n /**\n * The reactor - the person or company that reacted.\n */\n actor: {\n /**\n * LinkedIn member or company id of the reactor.\n */\n id?: string;\n /**\n * Canonical LinkedIn profile or company URL of the reactor.\n * Format: uri.\n */\n linkedinUrl?: string;\n /**\n * Full name of the reactor (or company name). Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Profile picture URL of the reactor.\n */\n pictureUrl?: string;\n /**\n * Reactor's current job title / headline (or follower count for a company).\n */\n position?: string;\n };\n /**\n * LinkedIn URN of the post that was reacted to.\n */\n postId?: string;\n /**\n * Reaction kind (e.g. LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, ENTERTAINMENT).\n */\n reactionType: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Post Reactions (linkedin.post_reactions).\n */\nexport interface LinkedinPostReactionsData {\n /**\n * Reactions on the post, one record per reactor.\n */\n items: LinkedinPostReactionsItem[];\n}\n\n/**\n * Input for LinkedIn Post Transcript (linkedin.post_transcript).\n */\nexport interface LinkedinPostTranscriptInput {\n /**\n * The full URL of the LinkedIn post to get the video transcript from.\n */\n url: string;\n}\n\n/**\n * The `data` payload of LinkedIn Post Transcript (linkedin.post_transcript).\n */\nexport interface LinkedinPostTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n transcript: string;\n transcriptNotAvailable: boolean;\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Profile (linkedin.profile).\n */\nexport interface LinkedinProfileInput {\n /**\n * Full LinkedIn profile URL.\n */\n url: string;\n}\n\nexport interface LinkedinProfileCertification {\n /**\n * Issue date text.\n */\n issuedAt?: string;\n /**\n * Issuing organization.\n */\n issuedBy?: string;\n /**\n * Certification title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileCurrentPosition {\n /**\n * Company LinkedIn URL.\n */\n companyLinkedinUrl?: string;\n /**\n * Company name.\n */\n companyName?: string;\n /**\n * Human-readable tenure, e.g. '12 yrs 6 mos'.\n */\n duration?: string;\n /**\n * Role location.\n */\n location?: string;\n /**\n * Job title.\n */\n position?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileEducation {\n /**\n * Degree earned.\n */\n degree?: string;\n /**\n * End date text.\n */\n endDate?: string;\n /**\n * Field of study.\n */\n fieldOfStudy?: string;\n /**\n * School name.\n */\n school: string;\n /**\n * School LinkedIn URL.\n */\n schoolUrl?: string;\n /**\n * Start date text.\n */\n startDate?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileExperience {\n /**\n * Company LinkedIn URL.\n */\n companyLinkedinUrl?: string;\n /**\n * Company name.\n */\n companyName?: string;\n /**\n * Role description.\n */\n description?: string;\n /**\n * Human-readable tenure, e.g. '3 yrs 2 mos'.\n */\n duration?: string;\n /**\n * Employment type, e.g. 'Full-time'.\n */\n employmentType?: string;\n /**\n * End date text, e.g. 'Present'.\n */\n endDate?: string;\n /**\n * Role location.\n */\n location?: string;\n /**\n * Job title. Populated whenever the provider has data for the entity.\n */\n position: string;\n /**\n * Skills associated with this role.\n */\n skills?: unknown[];\n /**\n * Start date text, e.g. 'Feb 2014'.\n */\n startDate?: string;\n /**\n * Workplace type, e.g. 'Remote' or 'On-site'.\n */\n workplaceType?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileHonorsAndAward {\n /**\n * Award description.\n */\n description?: string;\n /**\n * Issue date text.\n */\n issuedAt?: string;\n /**\n * Issuing organization.\n */\n issuedBy?: string;\n /**\n * Award title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfilePublication {\n /**\n * Publication description.\n */\n description?: string;\n /**\n * Publisher and/or date text as shown on LinkedIn.\n */\n publishedText?: string;\n /**\n * Publication title.\n */\n title?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileSkill {\n /**\n * Endorsement count text, e.g. '99+ endorsements'.\n */\n endorsements?: string;\n /**\n * Skill name.\n */\n name?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile (linkedin.profile).\n */\nexport interface LinkedinProfileData {\n /**\n * About/summary text of the profile.\n */\n about?: string;\n /**\n * Licenses and certifications.\n */\n certifications?: LinkedinProfileCertification[];\n /**\n * Number of connections.\n */\n connectionsCount?: number;\n /**\n * The member's current role(s).\n */\n currentPosition?: LinkedinProfileCurrentPosition[];\n /**\n * Education entries.\n */\n education?: LinkedinProfileEducation[];\n /**\n * Full work experience with titles, descriptions, dates, and per-role skills. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n experience?: LinkedinProfileExperience[];\n /**\n * First name of the profile owner.\n */\n firstName: string;\n /**\n * Number of followers.\n */\n followerCount?: number;\n /**\n * Professional headline shown under the name. Populated whenever the provider has data for the entity.\n */\n headline: string;\n /**\n * Honors and awards.\n */\n honorsAndAwards?: LinkedinProfileHonorsAndAward[];\n /**\n * Languages, as returned by LinkedIn when present.\n */\n languages?: unknown[];\n /**\n * Last name of the profile owner.\n */\n lastName: string;\n /**\n * Location of the profile owner.\n */\n location?: string;\n /**\n * Whether the member is open to work.\n */\n openToWork?: boolean;\n /**\n * URL of the profile photo.\n */\n photo?: string;\n /**\n * Whether the member has LinkedIn Premium.\n */\n premium?: boolean;\n /**\n * Projects, as returned by LinkedIn when present.\n */\n projects?: unknown[];\n /**\n * LinkedIn public identifier (the /in/ handle).\n */\n publicIdentifier?: string;\n /**\n * Publications.\n */\n publications?: LinkedinProfilePublication[];\n /**\n * Endorsed skills.\n */\n skills?: LinkedinProfileSkill[];\n /**\n * The member's top skills, as free-form strings when present.\n */\n topSkills?: unknown[];\n /**\n * Canonical LinkedIn profile URL.\n */\n url: string;\n /**\n * Whether the profile is identity-verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Profile (basic) (linkedin.profile_thin).\n */\nexport interface LinkedinProfileThinInput {\n /**\n * Full LinkedIn profile URL.\n */\n url: string;\n}\n\nexport interface LinkedinProfileThinArticle {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Headline of the article.\n */\n headline: string;\n /**\n * Canonical URL of the article.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileThinEducation {\n /**\n * End date of study.\n */\n endDate?: string;\n /**\n * Name of the school.\n */\n school: string;\n /**\n * URL of the school page.\n */\n schoolUrl?: string;\n /**\n * Start date of study.\n */\n startDate?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileThinExperience {\n /**\n * Name of the company.\n */\n company: string;\n /**\n * URL of the company page.\n */\n companyUrl?: string;\n /**\n * End date of the role.\n */\n endDate?: string;\n /**\n * Start date of the role.\n */\n startDate?: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinProfileThinRecentPost {\n /**\n * Type of activity for the post.\n */\n activityType?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Unique identifier of the post.\n */\n id: string;\n /**\n * Text content of the post.\n */\n text?: string;\n /**\n * Canonical URL of the post.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile (basic) (linkedin.profile_thin).\n */\nexport interface LinkedinProfileThinData {\n /**\n * About/summary text of the profile.\n */\n about: string;\n /**\n * The profile's published articles.\n */\n articles: LinkedinProfileThinArticle[];\n /**\n * URL of the profile avatar image.\n */\n avatarUrl: string;\n /**\n * Education entries.\n */\n education: LinkedinProfileThinEducation[];\n /**\n * Work experience entries (company and dates only in this basic tier). Populated whenever the provider has data for the entity.\n */\n experience: LinkedinProfileThinExperience[];\n /**\n * Number of followers.\n */\n followers: number;\n /**\n * Location of the profile owner.\n */\n location: string;\n /**\n * Full name of the profile owner.\n */\n name: string;\n /**\n * The profile's recent posts.\n */\n recentPosts: LinkedinProfileThinRecentPost[];\n [extra: string]: unknown;\n}\n\n/**\n * Input for LinkedIn Company Search (linkedin.search_companies).\n */\nexport interface LinkedinSearchCompaniesInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Optional location filter, written out in full (e.g. United Kingdom or San Francisco).\n */\n location?: string;\n /**\n * Keyword to search LinkedIn companies for (e.g. marketing agency).\n */\n query: string;\n}\n\n/**\n * A LinkedIn company: name, URL, industry, location, follower count, and description.\n */\nexport interface LinkedinSearchCompaniesItem {\n /**\n * Company summary / about text.\n */\n description?: string;\n /**\n * Follower count as a display string (e.g. 105K followers).\n */\n followersText?: string;\n /**\n * Company universal name (the vanity slug in the URL).\n */\n handle?: string;\n /**\n * LinkedIn company id. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Company logo image URL.\n */\n image?: string;\n /**\n * Company industry.\n */\n industry?: string;\n /**\n * Company location as a single string (city, region).\n */\n location?: string;\n /**\n * Company name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Canonical LinkedIn company URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Company Search (linkedin.search_companies).\n */\nexport interface LinkedinSearchCompaniesData {\n /**\n * Matching company records. Populated whenever the provider has data for the entity.\n */\n items: LinkedinSearchCompaniesItem[];\n}\n\n/**\n * Input for LinkedIn Post Search (linkedin.search_posts).\n */\nexport interface LinkedinSearchPostsInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Filter by recency. One of last-hour, last-day, last-week, last-month, last-year.\n * One of: last-hour, last-day, last-week, last-month, last-year.\n */\n datePosted?:\n \"last-hour\" | \"last-day\" | \"last-week\" | \"last-month\" | \"last-year\";\n /**\n * The post search query.\n */\n query: string;\n}\n\nexport interface LinkedinSearchPostsPost {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Text content of the post. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Post Search (linkedin.search_posts).\n */\nexport interface LinkedinSearchPostsData {\n /**\n * Posts matching the search query. Populated whenever the provider has data for the entity.\n */\n posts: LinkedinSearchPostsPost[];\n}\n\n/**\n * Input for LinkedIn Profile Search (linkedin.search_profiles).\n */\nexport interface LinkedinSearchProfilesInput {\n /**\n * Filter by current company size (employee count). Codes: A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+.\n */\n companyHeadcount?: (\"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"H\" | \"I\")[];\n /**\n * Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']).\n */\n companyHeadquarterLocations?: string[];\n /**\n * Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR).\n */\n currentCompanies?: string[];\n /**\n * Exclude people whose current company is headquartered in any of these locations.\n */\n excludeCompanyHeadquarterLocations?: string[];\n /**\n * Exclude people who currently work at any of these companies, by name.\n */\n excludeCurrentCompanies?: string[];\n /**\n * Exclude people whose current job title matches any of these.\n */\n excludeCurrentJobTitles?: string[];\n /**\n * Exclude these job functions (same codes as functionIds).\n */\n excludeFunctionIds?: (\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"18\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"22\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"26\"\n )[];\n /**\n * Exclude people in any of these locations, by place name.\n */\n excludeLocations?: string[];\n /**\n * Exclude people who previously worked at any of these companies, by name.\n */\n excludePastCompanies?: string[];\n /**\n * Exclude people who held any of these past job titles.\n */\n excludePastJobTitles?: string[];\n /**\n * Exclude people who attended any of these schools, by name.\n */\n excludeSchools?: string[];\n /**\n * Exclude these seniority levels (same codes as seniorityLevelIds).\n */\n excludeSeniorityLevelIds?: (\n | \"100\"\n | \"110\"\n | \"120\"\n | \"130\"\n | \"200\"\n | \"210\"\n | \"220\"\n | \"300\"\n | \"310\"\n | \"320\"\n )[];\n /**\n * Filter to people whose first name matches any of these.\n */\n firstNames?: string[];\n /**\n * Filter by job function. Codes: 1=Accounting, 2=Administrative, 3=Arts and Design, 4=Business Development, 5=Community and Social Services, 6=Consulting, 7=Education, 8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Healthcare Services, 12=Human Resources, 13=Information Technology, 14=Legal, 15=Marketing, 16=Media and Communication, 17=Military and Protective Services, 18=Operations, 19=Product Management, 20=Program and Project Management, 21=Purchasing, 22=Quality Assurance, 23=Real Estate, 24=Research, 25=Sales, 26=Customer Success and Support.\n */\n functionIds?: (\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"18\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"22\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"26\"\n )[];\n /**\n * Optional current job title filter (e.g. 'Software Engineer').\n */\n jobTitle?: string;\n /**\n * Filter to people whose last name matches any of these.\n */\n lastNames?: string[];\n /**\n * Maximum number of full profiles to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Optional location filter (e.g. 'San Francisco').\n */\n location?: string;\n /**\n * Filter to people who previously worked at any of these companies, by name.\n */\n pastCompanies?: string[];\n /**\n * Filter by a past job title the person held (e.g. ['Product Manager']).\n */\n pastJobTitles?: string[];\n /**\n * Filter by the profile's primary language.\n */\n profileLanguages?: (\n | \"Arabic\"\n | \"English\"\n | \"Spanish\"\n | \"Portuguese\"\n | \"Chinese\"\n | \"French\"\n | \"Italian\"\n | \"Russian\"\n | \"German\"\n | \"Dutch\"\n | \"Turkish\"\n | \"Tagalog\"\n | \"Polish\"\n | \"Korean\"\n | \"Japanese\"\n | \"Malay\"\n | \"Norwegian\"\n | \"Danish\"\n | \"Romanian\"\n | \"Swedish\"\n | \"Bahasa Indonesia\"\n | \"Czech\"\n )[];\n /**\n * Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager').\n */\n query: string;\n /**\n * When true, only return people who recently changed jobs (a strong sales/recruiting signal).\n */\n recentlyChangedJobs?: boolean;\n /**\n * When true, only return people who recently posted on LinkedIn (an activity signal).\n */\n recentlyPostedOnLinkedIn?: boolean;\n /**\n * Filter to people who attended any of these schools, by name.\n */\n schools?: string[];\n /**\n * Filter by seniority level. Codes: 100=In Training, 110=Entry Level, 120=Senior, 130=Strategic, 200=Entry Level Manager, 210=Experienced Manager, 220=Director, 300=Vice President, 310=CXO, 320=Owner/Partner.\n */\n seniorityLevelIds?: (\n | \"100\"\n | \"110\"\n | \"120\"\n | \"130\"\n | \"200\"\n | \"210\"\n | \"220\"\n | \"300\"\n | \"310\"\n | \"320\"\n )[];\n /**\n * Filter by tenure at the current company. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.\n */\n yearsAtCurrentCompanyIds?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n /**\n * Filter by total years of experience. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.\n */\n yearsOfExperienceIds?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n}\n\n/**\n * A full LinkedIn profile: name, headline, location, about, current position, work experience, education, and skills, plus the profile URL, handle, and id.\n */\nexport interface LinkedinSearchProfilesItem {\n /**\n * Profile about / summary text.\n */\n about?: string;\n /**\n * Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile.\n */\n currentPosition?: LinkedinSearchProfilesCurrentPosition[];\n /**\n * Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile.\n */\n education?: LinkedinSearchProfilesEducation[];\n /**\n * Full work history. Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n experience?: LinkedinSearchProfilesExperience[];\n /**\n * Member's first name.\n */\n firstName?: string;\n /**\n * Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n handle?: string;\n /**\n * Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n headline?: string;\n /**\n * LinkedIn member URN id for the profile.\n */\n id: string;\n /**\n * Profile picture URL.\n */\n image?: string;\n /**\n * Member's last name.\n */\n lastName?: string;\n /**\n * Member's location as a single string (city, region, country).\n */\n location?: string;\n /**\n * Whether the member has the Open to Work flag set.\n */\n openToWork?: boolean;\n /**\n * Whether the member has a LinkedIn Premium subscription.\n */\n premium?: boolean;\n /**\n * Listed skills. Each entry is an open object with the skill name and endorsement summary.\n */\n skills?: LinkedinSearchProfilesSkill[];\n /**\n * Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesCurrentPosition {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEducation {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesExperience {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesSkill {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile Search (linkedin.search_profiles).\n */\nexport interface LinkedinSearchProfilesData {\n /**\n * Matched profile records. Populated whenever the provider has data for the entity.\n */\n items: LinkedinSearchProfilesItem[];\n}\n\n/**\n * Input for LinkedIn Profile Search + Email (linkedin.search_profiles_email).\n */\nexport interface LinkedinSearchProfilesEmailInput {\n /**\n * Filter by current company size (employee count). Codes: A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+.\n */\n companyHeadcount?: (\"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"H\" | \"I\")[];\n /**\n * Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']).\n */\n companyHeadquarterLocations?: string[];\n /**\n * Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR).\n */\n currentCompanies?: string[];\n /**\n * Exclude people whose current company is headquartered in any of these locations.\n */\n excludeCompanyHeadquarterLocations?: string[];\n /**\n * Exclude people who currently work at any of these companies, by name.\n */\n excludeCurrentCompanies?: string[];\n /**\n * Exclude people whose current job title matches any of these.\n */\n excludeCurrentJobTitles?: string[];\n /**\n * Exclude these job functions (same codes as functionIds).\n */\n excludeFunctionIds?: (\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"18\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"22\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"26\"\n )[];\n /**\n * Exclude people in any of these locations, by place name.\n */\n excludeLocations?: string[];\n /**\n * Exclude people who previously worked at any of these companies, by name.\n */\n excludePastCompanies?: string[];\n /**\n * Exclude people who held any of these past job titles.\n */\n excludePastJobTitles?: string[];\n /**\n * Exclude people who attended any of these schools, by name.\n */\n excludeSchools?: string[];\n /**\n * Exclude these seniority levels (same codes as seniorityLevelIds).\n */\n excludeSeniorityLevelIds?: (\n | \"100\"\n | \"110\"\n | \"120\"\n | \"130\"\n | \"200\"\n | \"210\"\n | \"220\"\n | \"300\"\n | \"310\"\n | \"320\"\n )[];\n /**\n * Filter to people whose first name matches any of these.\n */\n firstNames?: string[];\n /**\n * Filter by job function. Codes: 1=Accounting, 2=Administrative, 3=Arts and Design, 4=Business Development, 5=Community and Social Services, 6=Consulting, 7=Education, 8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Healthcare Services, 12=Human Resources, 13=Information Technology, 14=Legal, 15=Marketing, 16=Media and Communication, 17=Military and Protective Services, 18=Operations, 19=Product Management, 20=Program and Project Management, 21=Purchasing, 22=Quality Assurance, 23=Real Estate, 24=Research, 25=Sales, 26=Customer Success and Support.\n */\n functionIds?: (\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"18\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"22\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"26\"\n )[];\n /**\n * Optional current job title filter (e.g. 'Software Engineer').\n */\n jobTitle?: string;\n /**\n * Filter to people whose last name matches any of these.\n */\n lastNames?: string[];\n /**\n * Maximum number of full profiles (with email) to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Optional location filter (e.g. 'San Francisco').\n */\n location?: string;\n /**\n * Filter to people who previously worked at any of these companies, by name.\n */\n pastCompanies?: string[];\n /**\n * Filter by a past job title the person held (e.g. ['Product Manager']).\n */\n pastJobTitles?: string[];\n /**\n * Filter by the profile's primary language.\n */\n profileLanguages?: (\n | \"Arabic\"\n | \"English\"\n | \"Spanish\"\n | \"Portuguese\"\n | \"Chinese\"\n | \"French\"\n | \"Italian\"\n | \"Russian\"\n | \"German\"\n | \"Dutch\"\n | \"Turkish\"\n | \"Tagalog\"\n | \"Polish\"\n | \"Korean\"\n | \"Japanese\"\n | \"Malay\"\n | \"Norwegian\"\n | \"Danish\"\n | \"Romanian\"\n | \"Swedish\"\n | \"Bahasa Indonesia\"\n | \"Czech\"\n )[];\n /**\n * Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager').\n */\n query: string;\n /**\n * When true, only return people who recently changed jobs (a strong sales/recruiting signal).\n */\n recentlyChangedJobs?: boolean;\n /**\n * When true, only return people who recently posted on LinkedIn (an activity signal).\n */\n recentlyPostedOnLinkedIn?: boolean;\n /**\n * Filter to people who attended any of these schools, by name.\n */\n schools?: string[];\n /**\n * Filter by seniority level. Codes: 100=In Training, 110=Entry Level, 120=Senior, 130=Strategic, 200=Entry Level Manager, 210=Experienced Manager, 220=Director, 300=Vice President, 310=CXO, 320=Owner/Partner.\n */\n seniorityLevelIds?: (\n | \"100\"\n | \"110\"\n | \"120\"\n | \"130\"\n | \"200\"\n | \"210\"\n | \"220\"\n | \"300\"\n | \"310\"\n | \"320\"\n )[];\n /**\n * Filter by tenure at the current company. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.\n */\n yearsAtCurrentCompanyIds?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n /**\n * Filter by total years of experience. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.\n */\n yearsOfExperienceIds?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n}\n\n/**\n * A full LinkedIn profile: name, headline, location, about, current position, work experience, education, and skills, plus the profile URL, handle, id, and a discovered work email with deliverability.\n */\nexport interface LinkedinSearchProfilesEmailItem {\n /**\n * Profile about / summary text.\n */\n about?: string;\n /**\n * Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile.\n */\n currentPosition?: LinkedinSearchProfilesEmailCurrentPosition[];\n /**\n * Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile.\n */\n education?: LinkedinSearchProfilesEmailEducation[];\n /**\n * Discovered work email(s) for the member. Each entry is an open object with the email address plus deliverability signals (deliverable, disposable, catchAllDomain, validEmailServer, qualityScore, status); may be empty when no email could be verified. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n emails?: LinkedinSearchProfilesEmailEmail[];\n /**\n * Full work history. Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n experience?: LinkedinSearchProfilesEmailExperience[];\n /**\n * Member's first name.\n */\n firstName?: string;\n /**\n * Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n handle?: string;\n /**\n * Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n headline?: string;\n /**\n * LinkedIn member URN id for the profile.\n */\n id: string;\n /**\n * Profile picture URL.\n */\n image?: string;\n /**\n * Member's last name.\n */\n lastName?: string;\n /**\n * Member's location as a single string (city, region, country).\n */\n location?: string;\n /**\n * Whether the member has the Open to Work flag set.\n */\n openToWork?: boolean;\n /**\n * Whether the member has a LinkedIn Premium subscription.\n */\n premium?: boolean;\n /**\n * Listed skills. Each entry is an open object with the skill name and endorsement summary.\n */\n skills?: LinkedinSearchProfilesEmailSkill[];\n /**\n * Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailCurrentPosition {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailEducation {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailEmail {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailExperience {\n [extra: string]: unknown;\n}\n\nexport interface LinkedinSearchProfilesEmailSkill {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile Search + Email (linkedin.search_profiles_email).\n */\nexport interface LinkedinSearchProfilesEmailData {\n /**\n * Matched profile records, each with a discovered work email. Populated whenever the provider has data for the entity.\n */\n items: LinkedinSearchProfilesEmailItem[];\n}\n\n/**\n * Input for LinkedIn Profile Search (basic) (linkedin.search_profiles_thin).\n */\nexport interface LinkedinSearchProfilesThinInput {\n /**\n * Search query for LinkedIn profiles - a role, name, or keywords (e.g. 'Marketing Manager').\n */\n query: string;\n}\n\n/**\n * A basic LinkedIn profile record: name, handle, headline, vanity profile URL, and location.\n */\nexport interface LinkedinSearchProfilesThinItem {\n /**\n * Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n handle?: string;\n /**\n * Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n headline?: string;\n /**\n * LinkedIn member URN id for the profile.\n */\n id?: string;\n /**\n * Profile picture URL.\n */\n image?: string;\n /**\n * Member's location as a single string (city, region, country).\n */\n location?: string;\n /**\n * Member's display name.\n */\n name?: string;\n /**\n * Canonical LinkedIn vanity profile URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of LinkedIn Profile Search (basic) (linkedin.search_profiles_thin).\n */\nexport interface LinkedinSearchProfilesThinData {\n /**\n * Matched profile records (basic fields only). Populated whenever the provider has data for the entity.\n */\n items: LinkedinSearchProfilesThinItem[];\n}\n\n/**\n * Typed methods for the linkedin platform. Attached to the AnyAPI client as\n * `client.linkedin`.\n */\nexport class LinkedinNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * LinkedIn Ad Details\n *\n * Look up a single LinkedIn Ad Library ad by URL and get the advertiser, headline, creative text, format, CTA, targeting, run dates, and impressions as clean JSON.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.ad({ url: \"https://www.linkedin.com/ad-library/detail/1487405616\" });\n */\n ad(\n input: LinkedinAdInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinAdData>> {\n return this._core.run(\"linkedin.ad\", input, options);\n }\n\n /**\n * LinkedIn Ads Library\n *\n * Search the LinkedIn Ad Library by search URL and list the matching ads (advertiser, creative text, format).\n *\n * Price: $0.00005 per request plus $0.0015 per result (maximum $0.03005).\n *\n * @example\n * const res = await client.linkedin.ads({ url: \"https://www.linkedin.com/company/stripe\", limit: 3 });\n */\n ads(\n input: LinkedinAdsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinAdsData>> {\n return this._core.run(\"linkedin.ads\", input, options);\n }\n\n /**\n * LinkedIn Ad Search\n *\n * Search the LinkedIn Ad Library by company or keyword and list matching ads (advertiser, headline, creative text, format, CTA, and run dates) with pagination.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.adsSearch({ company: \"microsoft\" });\n */\n adsSearch(\n input: LinkedinAdsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinAdsSearchData>> {\n return this._core.run(\"linkedin.ads_search\", input, options);\n }\n\n /**\n * LinkedIn Company\n *\n * Fetch a full LinkedIn company page by URL: name, description, industry, employee count and range, follower count, founded year, headquarters and office locations, funding data, tagline, logo, website, and specialities.\n *\n * Price: $0.004 per request plus $0 per result (maximum $0.004).\n *\n * @example\n * const res = await client.linkedin.company({ url: \"https://www.linkedin.com/company/stripe\" });\n */\n company(\n input: LinkedinCompanyInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyData>> {\n return this._core.run(\"linkedin.company\", input, options);\n }\n\n /**\n * LinkedIn Company Employees\n *\n * List the employees of a LinkedIn company by name or company URL, with optional job-title filtering.\n *\n * Price: $0 per request plus $0.01 per result (maximum $0.1).\n *\n * @example\n * const res = await client.linkedin.companyEmployees({ company: \"stripe\", limit: 3 });\n */\n companyEmployees(\n input: LinkedinCompanyEmployeesInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyEmployeesData>> {\n return this._core.run(\"linkedin.company_employees\", input, options);\n }\n\n /**\n * LinkedIn Company Posts\n *\n * List a LinkedIn company page's recent posts by URL: full text, canonical link, publish date, author, engagement counts with a per-reaction breakdown, and attached media.\n *\n * Price: $0.00005 per request plus $0.00175 per result (maximum $0.08755).\n *\n * @example\n * const res = await client.linkedin.companyPosts({ url: \"https://www.linkedin.com/company/stripe\", limit: 10 });\n */\n companyPosts(\n input: LinkedinCompanyPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyPostsData>> {\n return this._core.run(\"linkedin.company_posts\", input, options);\n }\n\n /**\n * LinkedIn Company Posts (basic)\n *\n * Post text and link only. No engagement counts, author details, media, or reaction breakdown - for those use linkedin.company_posts.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.companyPostsThin({ url: \"https://www.linkedin.com/company/stripe\" });\n */\n companyPostsThin(\n input: LinkedinCompanyPostsThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyPostsThinData>> {\n return this._core.run(\"linkedin.company_posts_thin\", input, options);\n }\n\n /**\n * LinkedIn Company (basic)\n *\n * Basic company: name, description, employee count, industry, logo, website, tagline. No follower count, founded year, office locations, or funding data - for those use linkedin.company.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.companyThin({ url: \"https://www.linkedin.com/company/stripe\" });\n */\n companyThin(\n input: LinkedinCompanyThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinCompanyThinData>> {\n return this._core.run(\"linkedin.company_thin\", input, options);\n }\n\n /**\n * LinkedIn Email Finder\n *\n * Find the deliverability-validated work email behind a LinkedIn profile URL or public ID. Returns each discovered email with its deliverability, validation status, and quality score, plus the person's name and headline.\n *\n * Price: $0.01 per request plus $0 per result (maximum $0.01).\n *\n * @example\n * const res = await client.linkedin.email({ profileUrl: \"https://www.linkedin.com/in/satyanadella\" });\n */\n email(\n input: LinkedinEmailInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinEmailData>> {\n return this._core.run(\"linkedin.email\", input, options);\n }\n\n /**\n * LinkedIn Jobs\n *\n * Search LinkedIn job listings by title and location - full records with description, salary, applicant count, seniority, company details, and benefits. Up to 25 jobs per request.\n *\n * Price: $0.001 per request plus $0.001 per result (maximum $0.026).\n *\n * @example\n * const res = await client.linkedin.jobs({ query: \"software engineer\", limit: 3, location: \"United States\", workplaceType: \"remote\" });\n */\n jobs(\n input: LinkedinJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinJobsData>> {\n return this._core.run(\"linkedin.jobs\", input, options);\n }\n\n /**\n * LinkedIn Jobs (index)\n *\n * Cheap job index: title, company, location, posted date, URL. No description, salary, applicant counts, or seniority - for those use linkedin.jobs.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.linkedin.jobsThin({ query: \"software engineer\", limit: 3, location: \"United States\", workplaceType: \"remote\" });\n */\n jobsThin(\n input: LinkedinJobsThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinJobsThinData>> {\n return this._core.run(\"linkedin.jobs_thin\", input, options);\n }\n\n /**\n * LinkedIn Post\n *\n * Fetch a single LinkedIn post or article by URL (title, text, author, like and comment counts, publish date), normalized across providers.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.linkedin.post({ url: \"https://www.linkedin.com/posts/stripe_last-week-agent-traffic-surpassed-human-activity-7470882737390940160-2Nxs\" });\n */\n post(\n input: LinkedinPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinPostData>> {\n return this._core.run(\"linkedin.post\", input, options);\n }\n\n /**\n * LinkedIn Post Comments\n *\n * List comments on a LinkedIn post - full text, commenter name/URL/job title, timestamps, and engagement.\n *\n * Price: $0 per request plus $0.002 per result (maximum $0.2).\n *\n * @example\n * const res = await client.linkedin.postComments({ url: \"https://www.linkedin.com/posts/stripe_philip-kl%C3%B6ckner-in-conversation-with-conor-activity-7477791740645564416-tIbZ\", limit: 10 });\n */\n postComments(\n input: LinkedinPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinPostCommentsData>> {\n return this._core.run(\"linkedin.post_comments\", input, options);\n }\n\n /**\n * LinkedIn Post Reactions\n *\n * List who reacted to a LinkedIn post - reactor name, profile URL, job title, and reaction type. Lead-gen grade.\n *\n * Price: $0 per request plus $0.002 per result (maximum $0.2).\n *\n * @example\n * const res = await client.linkedin.postReactions({ url: \"https://www.linkedin.com/posts/satyanadella_today-were-bringing-skills-to-copilot-for-activity-7475945433668694017--kvG\", limit: 5 });\n */\n postReactions(\n input: LinkedinPostReactionsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinPostReactionsData>> {\n return this._core.run(\"linkedin.post_reactions\", input, options);\n }\n\n /**\n * LinkedIn Post Transcript\n *\n * Get the spoken transcript of a LinkedIn video post by URL.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.postTranscript({ url: \"https://www.linkedin.com/posts/artificial-analysis_gemini-35-flash-is-a-step-forward-for-google-activity-7465082408409870337-4Pm-\" });\n */\n postTranscript(\n input: LinkedinPostTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinPostTranscriptData>> {\n return this._core.run(\"linkedin.post_transcript\", input, options);\n }\n\n /**\n * LinkedIn Profile\n *\n * Fetch a rich LinkedIn member profile by URL: name, headline, avatar, location, connections and followers, current position, and full work experience with job titles, descriptions, dates, employment/workplace type, and per-role skills, plus education, skills, certifications, honors and awards, languages, projects, publications, and verified/premium/open-to-work flags.\n *\n * Price: $0.004 per request plus $0 per result (maximum $0.004).\n *\n * @example\n * const res = await client.linkedin.profile({ url: \"https://www.linkedin.com/in/williamhgates\" });\n */\n profile(\n input: LinkedinProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinProfileData>> {\n return this._core.run(\"linkedin.profile\", input, options);\n }\n\n /**\n * LinkedIn Profile (basic)\n *\n * Lightweight profile: name, avatar, location, followers, and a basic experience/education list (company + dates only, no job titles, descriptions, or skills; past companies may be redacted). For full experience detail, skills, certifications, connections, and verified flags use linkedin.profile.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.profileThin({ url: \"https://www.linkedin.com/in/williamhgates\" });\n */\n profileThin(\n input: LinkedinProfileThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinProfileThinData>> {\n return this._core.run(\"linkedin.profile_thin\", input, options);\n }\n\n /**\n * LinkedIn Company Search\n *\n * Search LinkedIn companies by keyword with optional location filtering, returning normalized company records.\n *\n * Price: $0.001 per request plus $0.004 per result (maximum $0.081).\n *\n * @example\n * const res = await client.linkedin.searchCompanies({ query: \"fintech\", limit: 3 });\n */\n searchCompanies(\n input: LinkedinSearchCompaniesInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchCompaniesData>> {\n return this._core.run(\"linkedin.search_companies\", input, options);\n }\n\n /**\n * LinkedIn Post Search\n *\n * Search public LinkedIn posts by keyword (text, link, publish date), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.linkedin.searchPosts({ query: \"hiring\", datePosted: \"last-week\" });\n */\n searchPosts(\n input: LinkedinSearchPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchPostsData>> {\n return this._core.run(\"linkedin.search_posts\", input, options);\n }\n\n /**\n * LinkedIn Profile Search\n *\n * Search LinkedIn profiles by keyword with optional location and job-title filters. Each match returns a full profile record: name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id. For a cheaper name/headline/URL-only search use linkedin.search_profiles_thin; add emails with linkedin.search_profiles_email.\n *\n * Price: $0.08 per request plus $0.004 per result (maximum $0.18).\n *\n * @example\n * const res = await client.linkedin.searchProfiles({ query: \"engineer\", currentCompanies: [\"Google\"], limit: 3 });\n */\n searchProfiles(\n input: LinkedinSearchProfilesInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchProfilesData>> {\n return this._core.run(\"linkedin.search_profiles\", input, options);\n }\n\n /**\n * LinkedIn Profile Search + Email\n *\n * People search returning a full profile AND a verified work email for each hit. Search LinkedIn profiles by keyword with optional location and job-title filters; each match returns the full profile record (name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id) together with an emails array carrying the discovered work email and its deliverability. For a full profile without email use linkedin.search_profiles; for a cheaper name/headline/URL-only search use linkedin.search_profiles_thin.\n *\n * Price: $0.08 per request plus $0.009 per result (maximum $0.305).\n *\n * @example\n * const res = await client.linkedin.searchProfilesEmail({ query: \"founder\", companyHeadcount: [\"B\"], limit: 5 });\n */\n searchProfilesEmail(\n input: LinkedinSearchProfilesEmailInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchProfilesEmailData>> {\n return this._core.run(\"linkedin.search_profiles_email\", input, options);\n }\n\n /**\n * LinkedIn Profile Search (basic)\n *\n * Cheap people search: name/handle, headline, VANITY profile URL, location. No full profile or email - for full profiles per hit use linkedin.search_profiles, add emails with linkedin.search_profiles_email.\n *\n * Price: $0.0325 per request.\n *\n * @example\n * const res = await client.linkedin.searchProfilesThin({ query: \"recruiter\" });\n */\n searchProfilesThin(\n input: LinkedinSearchProfilesThinInput,\n options?: RequestOptions,\n ): Promise<RunResult<LinkedinSearchProfilesThinData>> {\n return this._core.run(\"linkedin.search_profiles_thin\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Maps Contacts (maps.contacts).\n */\nexport interface MapsContactsInput {\n /**\n * Optional list of Google Maps place-category names to keep; results are limited to places whose category matches one of these. Use lowercase category names as shown on Google Maps (e.g. [\"dentist\", \"orthodontist\"]). Omit to include all categories.\n */\n categoryFilterWords?: string[];\n /**\n * Two-letter language code for the results (e.g. en).\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Free-text location to search in, ideally city plus country (e.g. Denver, USA).\n */\n location: string;\n /**\n * Only return places with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter.\n * One of: two, twoAndHalf, three, threeAndHalf, four, fourAndHalf.\n */\n placeMinimumStars?:\n \"two\" | \"twoAndHalf\" | \"three\" | \"threeAndHalf\" | \"four\" | \"fourAndHalf\";\n /**\n * What you would type in the Google Maps search bar (e.g. dentist).\n */\n query: string;\n /**\n * Filter places by whether they list a website: allPlaces (default), withWebsite (only places that have a website), or withoutWebsite (only places without one). Contact enrichment pulls emails and social profiles from a place's website, so withWebsite targets leads that can be enriched.\n * One of: allPlaces, withWebsite, withoutWebsite.\n */\n website?: \"allPlaces\" | \"withWebsite\" | \"withoutWebsite\";\n}\n\nexport interface MapsContactsItem {\n /**\n * Full formatted street address.\n */\n address?: string;\n /**\n * Primary business category.\n */\n category?: string;\n /**\n * Google customer/place id (cid).\n */\n cid?: string;\n /**\n * City the business is in.\n */\n city?: string;\n /**\n * Two-letter country code.\n */\n countryCode?: string;\n /**\n * Email addresses scraped from the business website.\n */\n emails?: string[];\n /**\n * Facebook profile URLs found on the business website.\n */\n facebooks?: string[];\n /**\n * Primary business photo URL.\n */\n image?: string;\n /**\n * Instagram profile URLs found on the business website.\n */\n instagrams?: string[];\n /**\n * Latitude of the business in decimal degrees.\n */\n latitude?: number;\n /**\n * LinkedIn profile URLs found on the business website.\n */\n linkedIns?: string[];\n /**\n * Longitude of the business in decimal degrees.\n */\n longitude?: number;\n /**\n * Business name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Business phone number in E.164 format, when listed on Google Maps.\n */\n phone?: string;\n /**\n * Additional phone numbers scraped from the business website.\n */\n phones?: string[];\n /**\n * Google Maps place id (stable identifier for the business). Populated whenever the provider has data for the entity.\n */\n placeId: string;\n /**\n * Postal code of the business.\n */\n postalCode?: string;\n /**\n * Average star rating out of 5.\n */\n rating?: number;\n /**\n * Total number of reviews.\n */\n reviewCount?: number;\n /**\n * State or region the business is in.\n */\n state?: string;\n /**\n * TikTok profile URLs found on the business website.\n */\n tiktoks?: string[];\n /**\n * X/Twitter profile URLs found on the business website.\n */\n twitters?: string[];\n /**\n * Canonical Google Maps URL for the business. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The business website URL, when listed.\n */\n website?: string;\n /**\n * YouTube channel URLs found on the business website.\n */\n youtubes?: string[];\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Maps Contacts (maps.contacts).\n */\nexport interface MapsContactsData {\n /**\n * Matching business records, each enriched with contact details scraped from the business website. Populated whenever the provider has data for the entity.\n */\n items: MapsContactsItem[];\n}\n\n/**\n * Input for Google Maps Place Lookup (maps.place).\n */\nexport interface MapsPlaceInput {\n /**\n * Optional list of Google Maps place-category names to keep; the match is limited to a place whose category is one of these. Use lowercase category names as shown on Google Maps (e.g. [\"coffee shop\"]). Omit to allow any category.\n */\n categoryFilterWords?: string[];\n /**\n * Two-letter language code for the result details (e.g. en).\n * Default: en.\n */\n language?: string;\n /**\n * Optional free-text location to scope the search, ideally city plus state or country (e.g. San Francisco, CA). Narrows the query to the best match in that area.\n */\n location?: string;\n /**\n * Only match a place with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter.\n * One of: two, twoAndHalf, three, threeAndHalf, four, fourAndHalf.\n */\n placeMinimumStars?:\n \"two\" | \"twoAndHalf\" | \"three\" | \"threeAndHalf\" | \"four\" | \"fourAndHalf\";\n /**\n * The business name or search text to look up, as you would type it into the Google Maps search bar (e.g. Blue Bottle Coffee).\n */\n query: string;\n /**\n * Filter by whether the place lists a website: allPlaces (default), withWebsite (only if it has a website), or withoutWebsite (only if it has none).\n * One of: allPlaces, withWebsite, withoutWebsite.\n */\n website?: \"allPlaces\" | \"withWebsite\" | \"withoutWebsite\";\n}\n\nexport interface MapsPlaceItem {\n /**\n * Full formatted street address. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n address?: string;\n /**\n * Primary Google Maps category (e.g. Coffee shop). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n category?: string;\n city?: string;\n /**\n * Two-letter country code.\n */\n countryCode?: string;\n /**\n * Opening hours by day: each element is an object with the day name and its hours.\n */\n hours?: MapsPlaceHour[];\n /**\n * URL of the primary place photo.\n */\n image?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n latitude?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n longitude?: number;\n /**\n * Business or place name. Populated whenever the provider has data for the entity.\n */\n name: string;\n neighborhood?: string;\n /**\n * Whether the place is permanently closed.\n */\n permanentlyClosed?: boolean;\n /**\n * Formatted phone number.\n */\n phone?: string;\n /**\n * Google Maps place id. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n placeId?: string;\n /**\n * Google Plus Code for the location.\n */\n plusCode?: string;\n postalCode?: string;\n /**\n * Price level indicator (e.g. a price range).\n */\n priceLevel?: string;\n /**\n * Average star rating.\n */\n rating?: number;\n /**\n * Total number of reviews.\n */\n reviewsCount?: number;\n /**\n * State or region name.\n */\n state?: string;\n /**\n * Street portion of the address.\n */\n street?: string;\n /**\n * Google Maps URL for the place. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Business website URL.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\nexport interface MapsPlaceHour {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Maps Place Lookup (maps.place).\n */\nexport interface MapsPlaceData {\n /**\n * The best-matching place for the query, with full details: name, address, contact info, category, rating, opening hours, and coordinates. Up to one element (empty when nothing matched). Populated whenever the provider has data for the entity.\n */\n items: MapsPlaceItem[];\n}\n\n/**\n * Input for Google Maps Reviews (maps.reviews).\n */\nexport interface MapsReviewsInput {\n /**\n * Two-letter language code for the review details (e.g. en).\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n /**\n * The Google Maps place ID to fetch reviews for (e.g. ChIJj61dQgK6j4AR4GeTYWZsKWw).\n */\n placeId: string;\n /**\n * Only return reviews posted within this window: 24h (past 24 hours), week (past 7 days), month (past month), or year (past year). Omit for no recency filter.\n * One of: 24h, week, month, year.\n */\n postedLimit?: \"24h\" | \"week\" | \"month\" | \"year\";\n /**\n * Only return reviews whose text contains this keyword or phrase (case-insensitive). Omit to return all reviews (e.g. parking).\n */\n reviewsFilterString?: string;\n /**\n * Order in which reviews are returned (e.g. newest).\n * One of: newest, mostRelevant, highestRanking, lowestRanking.\n * Default: newest.\n */\n sort?: \"newest\" | \"mostRelevant\" | \"highestRanking\" | \"lowestRanking\";\n}\n\nexport interface MapsReviewsItem {\n /**\n * Reviewer display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n author?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Whether the reviewer is a Google Local Guide.\n */\n isLocalGuide?: boolean;\n /**\n * Number of likes on the review.\n */\n likes?: number;\n /**\n * Source of the review (e.g. Google).\n */\n origin?: string;\n /**\n * Owner's reply text; empty when there is none.\n */\n ownerResponse?: string;\n /**\n * ISO 8601 timestamp of the owner's reply; empty when there is none.\n */\n ownerResponseAt?: string;\n /**\n * Google Maps place id the review belongs to. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n placeId?: string;\n /**\n * Human-relative publish time (e.g. '7 hours ago').\n */\n publishedAgo?: string;\n /**\n * Star rating the reviewer gave (1-5).\n */\n rating?: number;\n /**\n * Stable Google review id. Populated whenever the provider has data for the entity.\n */\n reviewId: string;\n /**\n * Stable Google id of the reviewer.\n */\n reviewerId?: string;\n /**\n * Total number of reviews the reviewer has written.\n */\n reviewerReviewsCount?: number;\n /**\n * Review text; empty string when the reviewer left only a star rating.\n */\n text?: string;\n /**\n * Direct URL to the review on Google Maps. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Maps Reviews (maps.reviews).\n */\nexport interface MapsReviewsData {\n /**\n * Review records: reviewer, star rating, review text (empty when the reviewer left only a rating), publish date, likes, and owner response where present. Populated whenever the provider has data for the entity.\n */\n items: MapsReviewsItem[];\n}\n\n/**\n * Input for Google Maps Search (maps.search).\n */\nexport interface MapsSearchInput {\n /**\n * Optional list of Google Maps place-category names to keep; results are limited to places whose category matches one of these. Use lowercase category names as shown on Google Maps (e.g. [\"coffee shop\", \"restaurant\"]). Omit to include all categories.\n */\n categoryFilterWords?: string[];\n /**\n * Two-letter language code for the results (e.g. en).\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Free-text location to search in, ideally city plus country (e.g. Austin, USA).\n */\n location: string;\n /**\n * Only return places with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter.\n * One of: two, twoAndHalf, three, threeAndHalf, four, fourAndHalf.\n */\n placeMinimumStars?:\n \"two\" | \"twoAndHalf\" | \"three\" | \"threeAndHalf\" | \"four\" | \"fourAndHalf\";\n /**\n * What you would type in the Google Maps search bar (e.g. coffee shop).\n */\n query: string;\n /**\n * Filter places by whether they list a website: allPlaces (default), withWebsite (only places that have a website), or withoutWebsite (only places without one).\n * One of: allPlaces, withWebsite, withoutWebsite.\n */\n website?: \"allPlaces\" | \"withWebsite\" | \"withoutWebsite\";\n}\n\nexport interface MapsSearchItem {\n /**\n * Full formatted street address.\n */\n address?: string;\n /**\n * Primary place category (e.g. Coffee shop).\n */\n category?: string;\n /**\n * Google customer/place id (cid).\n */\n cid?: string;\n /**\n * City the place is in.\n */\n city?: string;\n /**\n * Two-letter country code.\n */\n countryCode?: string;\n /**\n * Primary place photo URL.\n */\n image?: string;\n /**\n * Latitude of the place in decimal degrees.\n */\n latitude?: number;\n /**\n * Longitude of the place in decimal degrees.\n */\n longitude?: number;\n /**\n * Place name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * True when the place is marked permanently closed.\n */\n permanentlyClosed?: boolean;\n /**\n * Business phone number in E.164 format, when listed.\n */\n phone?: string;\n /**\n * Google Maps place id (stable identifier for the place). Populated whenever the provider has data for the entity.\n */\n placeId: string;\n /**\n * Postal code of the place.\n */\n postalCode?: string;\n /**\n * Relative price level indicator (e.g. $, $10-20).\n */\n priceLevel?: string;\n /**\n * Average star rating out of 5.\n */\n rating?: number;\n /**\n * Total number of reviews.\n */\n reviewCount?: number;\n /**\n * State or region the place is in.\n */\n state?: string;\n /**\n * Street line of the address.\n */\n street?: string;\n /**\n * Canonical Google Maps URL for the place. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The place's own website URL, when listed.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Maps Search (maps.search).\n */\nexport interface MapsSearchData {\n /**\n * Matching Google Maps place records. Populated whenever the provider has data for the entity.\n */\n items: MapsSearchItem[];\n}\n\n/**\n * Typed methods for the maps platform. Attached to the AnyAPI client as\n * `client.maps`.\n */\nexport class MapsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Maps Contacts\n *\n * Search Google Maps for businesses and enrich each result with contact details (emails, phones, and social profiles from their websites), up to 20 records per request.\n *\n * Price: $0.00005 per request plus $0.003 per result (maximum $0.06005).\n *\n * @example\n * const res = await client.maps.contacts({ location: \"Austin, TX\", query: \"coffee shop\", limit: 3, placeMinimumStars: \"four\", website: \"withWebsite\" });\n */\n contacts(\n input: MapsContactsInput,\n options?: RequestOptions,\n ): Promise<RunResult<MapsContactsData>> {\n return this._core.run(\"maps.contacts\", input, options);\n }\n\n /**\n * Google Maps Place Lookup\n *\n * Look up a place on Google Maps by name or search query (optionally scoped to a location) and get the best-matching place with full details - address, phone, website, rating, hours, and coordinates - as normalized JSON.\n *\n * Price: $0.003 per request plus $0.005 per result (maximum $0.009).\n *\n * @example\n * const res = await client.maps.place({ query: \"Blue Bottle Coffee\", location: \"San Francisco, CA\", website: \"withWebsite\" });\n */\n place(\n input: MapsPlaceInput,\n options?: RequestOptions,\n ): Promise<RunResult<MapsPlaceData>> {\n return this._core.run(\"maps.place\", input, options);\n }\n\n /**\n * Google Maps Reviews\n *\n * Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response.\n *\n * Price: $0.00005 per request plus $0.0004 per result (maximum $0.04005).\n *\n * @example\n * const res = await client.maps.reviews({ placeId: \"ChIJN1t_tDeuEmsRUsoyG83frY4\", limit: 3, postedLimit: \"year\" });\n */\n reviews(\n input: MapsReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<MapsReviewsData>> {\n return this._core.run(\"maps.reviews\", input, options);\n }\n\n /**\n * Google Maps Search\n *\n * Search Google Maps for places matching a query and location: up to 20 normalized place records with ratings, addresses, and contact basics per request.\n *\n * Price: $0.00005 per request plus $0.003 per result (maximum $0.06005).\n *\n * @example\n * const res = await client.maps.search({ location: \"Austin, TX\", query: \"coffee\", limit: 3, placeMinimumStars: \"four\", website: \"withWebsite\" });\n */\n search(\n input: MapsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<MapsSearchData>> {\n return this._core.run(\"maps.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Panda Express Locations (pandaexpress.locations).\n */\nexport interface PandaexpressLocationsInput {\n /**\n * Latitude of the search center.\n * Range: minimum -90, maximum 90.\n */\n latitude: number;\n /**\n * Maximum number of restaurants to return (1-50, default 10).\n * Range: minimum 1, maximum 50.\n */\n limit?: number;\n /**\n * Longitude of the search center.\n * Range: minimum -180, maximum 180.\n */\n longitude: number;\n /**\n * Search radius in miles (default 10).\n * Range: minimum 1, maximum 100.\n */\n radius?: number;\n}\n\nexport interface PandaexpressLocationsRestaurant {\n /**\n * Populated whenever the provider has data for the entity.\n */\n address: string;\n canDeliver: boolean;\n canPickup: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n city: string;\n distanceMiles: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: number;\n isOpen: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n latitude: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n longitude: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n phone: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n state: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n zip: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Panda Express Locations (pandaexpress.locations).\n */\nexport interface PandaexpressLocationsData {\n /**\n * Nearby Panda Express restaurants, nearest first. Populated whenever the provider has data for the entity.\n */\n restaurants: PandaexpressLocationsRestaurant[];\n}\n\n/**\n * Input for Panda Express Menu (pandaexpress.menu).\n */\nexport interface PandaexpressMenuInput {\n /**\n * Panda Express restaurant id (the `id` from Panda Express Locations).\n */\n restaurantId: string;\n}\n\n/**\n * Populated whenever the provider has data for the entity.\n */\nexport interface PandaexpressMenuCategorie {\n items: PandaexpressMenuItem[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n [extra: string]: unknown;\n}\n\nexport interface PandaexpressMenuItem {\n /**\n * Base calories when published by the restaurant, else 0.\n */\n calories: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n name: string;\n /**\n * Item price in USD (0 for items priced only via size/option selection).\n */\n priceUsd: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Panda Express Menu (pandaexpress.menu).\n */\nexport interface PandaexpressMenuData {\n /**\n * Menu categories in display order. Populated whenever the provider has data for the entity.\n */\n categories: PandaexpressMenuCategorie[];\n}\n\n/**\n * Input for Panda Express Nutrition (pandaexpress.nutrition).\n */\nexport interface PandaexpressNutritionInput {\n /**\n * Menu item name (or substring) to look up, e.g. \"orange chicken\" or \"chow mein\".\n */\n query: string;\n}\n\nexport interface PandaexpressNutritionItem {\n calories: number;\n cholesterolMg: number;\n dietaryFiberG: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n proteinG: number;\n saturatedFatG: number;\n servingSizeOz: number;\n sodiumMg: number;\n sugarsG: number;\n totalCarbG: number;\n totalFatG: number;\n transFatG: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Panda Express Nutrition (pandaexpress.nutrition).\n */\nexport interface PandaexpressNutritionData {\n /**\n * Matching menu items with official nutrition facts. Populated whenever the provider has data for the entity.\n */\n items: PandaexpressNutritionItem[];\n}\n\n/**\n * Typed methods for the pandaexpress platform. Attached to the AnyAPI client as\n * `client.pandaexpress`.\n */\nexport class PandaexpressNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Panda Express Locations\n *\n * Find Panda Express restaurants near a latitude/longitude, sorted by distance, with address, phone, hours availability, and pickup/delivery support.\n *\n * Price: $0.0009 per request.\n *\n * @example\n * const res = await client.pandaexpress.locations({ latitude: 34.0522, longitude: -118.2437, limit: 5 });\n */\n locations(\n input: PandaexpressLocationsInput,\n options?: RequestOptions,\n ): Promise<RunResult<PandaexpressLocationsData>> {\n return this._core.run(\"pandaexpress.locations\", input, options);\n }\n\n /**\n * Panda Express Menu\n *\n * Get the live menu for a Panda Express restaurant by id: categories with item names, descriptions, and USD prices. Pair with Panda Express Locations to resolve a restaurant id.\n *\n * Price: $0.0009 per request.\n *\n * @example\n * const res = await client.pandaexpress.menu({ restaurantId: \"112551\" });\n */\n menu(\n input: PandaexpressMenuInput,\n options?: RequestOptions,\n ): Promise<RunResult<PandaexpressMenuData>> {\n return this._core.run(\"pandaexpress.menu\", input, options);\n }\n\n /**\n * Panda Express Nutrition\n *\n * Look up official Panda Express nutrition facts by item name: serving size, calories, fat, cholesterol, sodium, carbs, fiber, sugars, and protein.\n *\n * Price: $0.006 per request.\n *\n * @example\n * const res = await client.pandaexpress.nutrition({ query: \"orange chicken\" });\n */\n nutrition(\n input: PandaexpressNutritionInput,\n options?: RequestOptions,\n ): Promise<RunResult<PandaexpressNutritionData>> {\n return this._core.run(\"pandaexpress.nutrition\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Skip Trace (person.skip_trace).\n */\nexport interface PersonSkipTraceInput {\n /**\n * Street address with city/state/zip.\n */\n address?: string;\n /**\n * Email address to reverse-trace (e.g. john.smith@example.com).\n */\n email?: string;\n /**\n * Full name of the person to trace. Provide at least one of name, address, phone, or email.\n */\n name?: string;\n /**\n * Phone number to reverse-trace (e.g. 415-555-2671).\n */\n phone?: string;\n}\n\n/**\n * A skip-trace match: name, age, current and past addresses, phone numbers, email addresses, relatives, and associates.\n */\nexport interface PersonSkipTraceItem {\n /**\n * Current city.\n */\n addressLocality?: string;\n /**\n * Current state.\n */\n addressRegion?: string;\n /**\n * Reported age.\n */\n age?: string;\n /**\n * Reported associates. Each entry is an open object with name and age.\n */\n associates?: PersonSkipTraceAssociate[];\n /**\n * Reported birth month and year.\n */\n born?: string;\n /**\n * Current county.\n */\n county?: string;\n /**\n * Up to five known email addresses, most-recent first. Absent slots are empty strings.\n */\n emails?: {\n email1?: string;\n email2?: string;\n email3?: string;\n email4?: string;\n email5?: string;\n };\n /**\n * First name of the matched person.\n */\n firstName?: string;\n /**\n * Last name of the matched person.\n */\n lastName?: string;\n /**\n * Current city and state (e.g. Brook Park, OH).\n */\n location?: string;\n /**\n * Up to five known phone numbers with line type, most-recent first. Absent slots are empty strings.\n */\n phones?: {\n phone1?: string;\n phone1Type?: string;\n phone2?: string;\n phone2Type?: string;\n phone3?: string;\n phone3Type?: string;\n phone4?: string;\n phone4Type?: string;\n phone5?: string;\n phone5Type?: string;\n };\n /**\n * Current ZIP code.\n */\n postalCode?: string;\n /**\n * Prior addresses. Each entry is an open object with street, locality, region, postal code, county, and timespan.\n */\n previousAddresses?: PersonSkipTracePreviousAddresse[];\n /**\n * Reported relatives. Each entry is an open object with name and age.\n */\n relatives?: PersonSkipTraceRelative[];\n /**\n * Current street address.\n */\n streetAddress?: string;\n /**\n * Source record URL for the matched person. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\nexport interface PersonSkipTraceAssociate {\n [extra: string]: unknown;\n}\n\nexport interface PersonSkipTracePreviousAddresse {\n [extra: string]: unknown;\n}\n\nexport interface PersonSkipTraceRelative {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Skip Trace (person.skip_trace).\n */\nexport interface PersonSkipTraceData {\n /**\n * Matched person records with identity, address, and contact details. Populated whenever the provider has data for the entity.\n */\n items: PersonSkipTraceItem[];\n}\n\n/**\n * Typed methods for the person platform. Attached to the AnyAPI client as\n * `client.person`.\n */\nexport class PersonNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Skip Trace\n *\n * Skip-trace a person in the US by name, address, phone, or email and get back identity, address, and contact records in normalized JSON.\n *\n * Price: $0 per request plus $0.007 per result (maximum $0.007).\n *\n * @example\n * const res = await client.person.skipTrace({ address: \"123 Main St, Austin, TX 78701\", name: \"John Smith\" });\n */\n skipTrace(\n input: PersonSkipTraceInput,\n options?: RequestOptions,\n ): Promise<RunResult<PersonSkipTraceData>> {\n return this._core.run(\"person.skip_trace\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Pinterest Search (pinterest.search).\n */\nexport interface PinterestSearchInput {\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Keyword, topic, brand, or theme to search Pinterest for (e.g. mid-century living room).\n */\n query: string;\n /**\n * Kind of results to return: all pins, only video pins, boards, or profiles (e.g. videos).\n * One of: all-pins, videos, boards, profiles.\n * Default: all-pins.\n */\n type?: \"all-pins\" | \"videos\" | \"boards\" | \"profiles\";\n}\n\nexport interface PinterestSearchItem {\n id: string;\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Pinterest Search (pinterest.search).\n */\nexport interface PinterestSearchData {\n /**\n * Matching Pinterest records: pin or board title, description, image/video URL, creator, and link. Populated whenever the provider has data for the entity.\n */\n items: PinterestSearchItem[];\n}\n\n/**\n * Typed methods for the pinterest platform. Attached to the AnyAPI client as\n * `client.pinterest`.\n */\nexport class PinterestNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Pinterest Search\n *\n * Search Pinterest by keyword and get pin, video, board, or profile results with titles, images, and links.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.pinterest.search({ query: \"home decor\", limit: 3 });\n */\n search(\n input: PinterestSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<PinterestSearchData>> {\n return this._core.run(\"pinterest.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Google Play Reviews (playstore.reviews).\n */\nexport interface PlaystoreReviewsInput {\n /**\n * Android app package name or full Google Play store URL (e.g. com.supercell.brawlstars).\n */\n appId: string;\n /**\n * Only return reviews left on these app versions (e.g. [\"2.24.1\", \"2.24.2\"]).\n */\n appVersion?: string[];\n /**\n * Only return reviews from this device type (e.g. \"tablet\"); defaults to mobile.\n * One of: mobile, tablet, chromebook.\n * Default: mobile.\n */\n deviceType?: \"mobile\" | \"tablet\" | \"chromebook\";\n /**\n * Only return reviews on or before this date, inclusive, in YYYY-MM-DD format (e.g. 2026-06-30).\n */\n endDate?: string;\n /**\n * Only return reviews whose text contains one of these keywords (e.g. [\"crash\", \"login\"]).\n */\n keywords?: string[];\n /**\n * Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"es\"]).\n */\n languages?: string[];\n /**\n * Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n /**\n * Only return reviews with this exact star rating from 1 to 5 (e.g. 1); omit for all ratings.\n */\n rating?: number;\n /**\n * Only return reviews from the last N days (e.g. 30); omit for no time limit.\n * Range: minimum 1.\n */\n recentDays?: number;\n /**\n * Review ordering: mostRelevant, newest, or rating (e.g. newest).\n * Default: mostRelevant.\n */\n sortBy?: string;\n}\n\nexport interface PlaystoreReviewsItem {\n /**\n * Reviewer display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n author?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the review was posted. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Number of helpful votes on the review.\n */\n helpfulVotes?: number;\n /**\n * Review identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n id?: string;\n /**\n * Star rating, 1 to 5. Populated whenever the provider has data for the entity.\n */\n rating: number;\n /**\n * Review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review title, when the store provides one.\n */\n title?: string;\n /**\n * App version the review was left on.\n */\n version?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Google Play Reviews (playstore.reviews).\n */\nexport interface PlaystoreReviewsData {\n /**\n * Review records: star rating, review text, reviewer name, app version, helpfulness votes, and review date. Populated whenever the provider has data for the entity.\n */\n items: PlaystoreReviewsItem[];\n}\n\n/**\n * Typed methods for the playstore platform. Attached to the AnyAPI client as\n * `client.playstore`.\n */\nexport class PlaystoreNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Google Play Reviews\n *\n * Fetch Google Play reviews for any Android app by package name or store URL: ratings, review text, dates, and helpfulness votes.\n *\n * Price: $0 per request plus $0.00011 per result (maximum $0.011).\n *\n * @example\n * const res = await client.playstore.reviews({ appId: \"com.whatsapp\", limit: 3 });\n */\n reviews(\n input: PlaystoreReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<PlaystoreReviewsData>> {\n return this._core.run(\"playstore.reviews\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Polymarket Markets (polymarket.markets).\n */\nexport interface PolymarketMarketsInput {\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Search term for markets (e.g. election, bitcoin, super bowl).\n */\n query: string;\n /**\n * How discovered markets are ordered before results are returned (e.g. volume_24hr for recent momentum).\n * One of: volume_24hr, volume, liquidity, start_date, ending_soon, competitive.\n * Default: volume_24hr.\n */\n sortBy?:\n | \"volume_24hr\"\n | \"volume\"\n | \"liquidity\"\n | \"start_date\"\n | \"ending_soon\"\n | \"competitive\";\n /**\n * Return \"active\" markets for current prices and volume, or \"resolved\" markets for historical outcomes.\n * One of: active, resolved.\n * Default: active.\n */\n status?: \"active\" | \"resolved\";\n}\n\nexport interface PolymarketMarketsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the market resolves/ends.\n */\n endsUtc?: number;\n /**\n * Title of the parent event grouping this market.\n */\n eventTitle?: string;\n /**\n * Polymarket market identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Event image URL.\n */\n image?: string;\n /**\n * Available liquidity in USD.\n */\n liquidityUsd?: number;\n /**\n * Market outcomes with their current implied prices.\n */\n outcomes?: PolymarketMarketsOutcome[];\n /**\n * Market status, e.g. active or closed.\n */\n status?: string;\n /**\n * The market question. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Polymarket URL for the market event. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Traded volume in USD over the past 24 hours.\n */\n volume24hUsd?: number;\n /**\n * Total traded volume in USD.\n */\n volumeUsd?: number;\n [extra: string]: unknown;\n}\n\nexport interface PolymarketMarketsOutcome {\n /**\n * Outcome label, e.g. Yes or No.\n */\n name?: string;\n /**\n * Current implied probability price for the outcome (0 to 1).\n */\n price?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Polymarket Markets (polymarket.markets).\n */\nexport interface PolymarketMarketsData {\n /**\n * Prediction-market records: market question, outcomes with current prices, volume, liquidity, and end date. Populated whenever the provider has data for the entity.\n */\n items: PolymarketMarketsItem[];\n}\n\n/**\n * Typed methods for the polymarket platform. Attached to the AnyAPI client as\n * `client.polymarket`.\n */\nexport class PolymarketNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Polymarket Markets\n *\n * Discover Polymarket prediction markets (question, outcome prices, volume, liquidity, and end dates) by keyword or sorted by activity, as normalized JSON.\n *\n * Price: $0.105 per request plus $0.0006 per result (maximum $0.12).\n *\n * @example\n * const res = await client.polymarket.markets({ query: \"election\", limit: 10 });\n */\n markets(\n input: PolymarketMarketsInput,\n options?: RequestOptions,\n ): Promise<RunResult<PolymarketMarketsData>> {\n return this._core.run(\"polymarket.markets\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Realtor.com Search (realtor.search).\n */\nexport interface RealtorSearchInput {\n /**\n * Minimum number of bathrooms (e.g. 2).\n * Range: minimum 0.\n */\n bathsMin?: number;\n /**\n * Minimum number of bedrooms (e.g. 3).\n * Range: minimum 0.\n */\n bedsMin?: number;\n /**\n * Free-text keyword that must appear in the listing description (e.g. 'pool').\n */\n keyword?: string;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * City, ZIP code, neighborhood or state to search (e.g. Las Vegas, NV).\n */\n location: string;\n /**\n * Maximum listing price in USD (e.g. 750000).\n * Range: minimum 0.\n */\n priceMax?: number;\n /**\n * Minimum listing price in USD (e.g. 250000).\n * Range: minimum 0.\n */\n priceMin?: number;\n /**\n * Filter by one or more property types; omit for all types (e.g. [\"single_family\", \"townhomes\"]).\n */\n propertyTypes?: (\n | \"single_family\"\n | \"townhomes\"\n | \"condo_townhome\"\n | \"multi_family\"\n | \"land\"\n | \"farm\"\n | \"manufactured\"\n | \"mobile\"\n | \"apartment\"\n | \"coop\"\n | \"duplex_triplex\"\n )[];\n /**\n * Listing type to search: for_sale or sold (e.g. for_sale).\n * One of: for_sale, sold.\n * Default: for_sale.\n */\n searchMode?: \"for_sale\" | \"sold\";\n /**\n * Listing statuses to include in for_sale mode; omit for active For Sale + Ready to Build. Ignored in sold mode (e.g. [\"for_sale\", \"pending\"]).\n */\n searchStatuses?: (\n \"for_sale\" | \"ready_to_build\" | \"pending\" | \"coming_soon\" | \"contingent\"\n )[];\n}\n\nexport interface RealtorSearchItem {\n /**\n * Street address line of the property.\n */\n addressLine?: string;\n /**\n * Consolidated bathroom count (e.g. \"3.5\" for three full and one half bath).\n */\n baths?: string;\n /**\n * Number of bedrooms.\n */\n beds?: number;\n /**\n * City the property is in.\n */\n city?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Number of days the listing has been on the market.\n */\n daysOnMarket?: number;\n /**\n * Primary listing photo URL.\n */\n image?: string;\n /**\n * Latitude of the property in decimal degrees.\n */\n latitude?: number;\n /**\n * Realtor.com listing id for this specific listing of the property.\n */\n listingId?: string;\n /**\n * Longitude of the property in decimal degrees.\n */\n longitude?: number;\n /**\n * Lot size in square feet.\n */\n lotSqft?: number;\n /**\n * Postal (ZIP) code of the property.\n */\n postalCode?: string;\n /**\n * Current list price in US dollars.\n */\n price?: number;\n /**\n * List price per square foot in US dollars.\n */\n pricePerSqft?: number;\n /**\n * Realtor.com property id (stable identifier for the listing). Populated whenever the provider has data for the entity.\n */\n propertyId: string;\n /**\n * Property type (e.g. single_family, condos, townhomes).\n */\n propertyType?: string;\n /**\n * Interior living area in square feet.\n */\n sqft?: number;\n /**\n * Two-letter state code the property is in.\n */\n state?: string;\n /**\n * Display listing status, including ready-to-build, pending, contingent, and coming-soon sub-statuses when present.\n * One of: for_sale, ready_to_build, sold, pending, contingent, coming_soon.\n */\n status?:\n | \"for_sale\"\n | \"ready_to_build\"\n | \"sold\"\n | \"pending\"\n | \"contingent\"\n | \"coming_soon\";\n /**\n * Human-readable street address line used as the listing title.\n */\n title?: string;\n /**\n * Canonical Realtor.com listing detail page URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Year the property was built.\n */\n yearBuilt?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Realtor.com Search (realtor.search).\n */\nexport interface RealtorSearchData {\n /**\n * Matching Realtor.com property listing records. Populated whenever the provider has data for the entity.\n */\n items: RealtorSearchItem[];\n}\n\n/**\n * Typed methods for the realtor platform. Attached to the AnyAPI client as\n * `client.realtor`.\n */\nexport class RealtorNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Realtor.com Search\n *\n * Search Realtor.com listings by location with optional price, property-type, beds/baths, listing-status, and keyword filters and get property records (price, address, beds, baths) as normalized JSON.\n *\n * Price: $0.005 per request plus $0.0015 per result (maximum $0.0425).\n *\n * @example\n * const res = await client.realtor.search({ location: \"Austin, TX\", bedsMin: 4, limit: 3, propertyTypes: [\"single_family\"], searchStatuses: [\"pending\"] });\n */\n search(\n input: RealtorSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RealtorSearchData>> {\n return this._core.run(\"realtor.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Reddit Post Comments (reddit.post_comments).\n */\nexport interface RedditPostCommentsInput {\n /**\n * Cursor from a previous response for more comments.\n */\n cursor?: string;\n /**\n * Full Reddit post URL.\n */\n url: string;\n}\n\nexport interface RedditPostCommentsComment {\n /**\n * Commenter username, without the u/ prefix. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Comment text, as Markdown. Populated whenever the provider has data for the entity.\n */\n body: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Reddit comment ID (base-36, without the t1_ prefix). Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Permalink to the comment on reddit.com. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Reddit Post Comments (reddit.post_comments).\n */\nexport interface RedditPostCommentsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n comments: RedditPostCommentsComment[];\n}\n\n/**\n * Input for Reddit Post Transcript (reddit.post_transcript).\n */\nexport interface RedditPostTranscriptInput {\n /**\n * Optional two-letter language code (defaults to en).\n */\n language?: string;\n /**\n * Reddit post URL or direct v.redd.it video URL to transcribe.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Reddit Post Transcript (reddit.post_transcript).\n */\nexport interface RedditPostTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n postId: string;\n transcript: string;\n transcriptNotAvailable: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Reddit Search (reddit.search).\n */\nexport interface RedditSearchInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of results.\n */\n cursor?: string;\n /**\n * Free-text search across all of Reddit. Reddit's field operators are supported inside the string: subreddit:<name> to scope to one subreddit, author:<user>, title:<text>, selftext:<text>, self:yes|no, nsfw:yes|no, and boolean AND/OR/NOT. To restrict to a single subreddit you can use subreddit:<name> here, or use the reddit.subreddit_posts SKU for a plain subreddit listing.\n */\n query: string;\n /**\n * Result sort order.\n * One of: relevance, hot, top, new, comments.\n */\n sort?: \"relevance\" | \"hot\" | \"top\" | \"new\" | \"comments\";\n /**\n * Time window for results.\n * One of: hour, day, week, month, year, all.\n */\n timeframe?: \"hour\" | \"day\" | \"week\" | \"month\" | \"year\" | \"all\";\n}\n\nexport interface RedditSearchPost {\n /**\n * Author username, without the u/ prefix. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Total number of comments on the post.\n */\n numComments: number;\n /**\n * Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Empty if the upstream omits it. Populated whenever the provider has data for the entity.\n */\n permalink: string;\n /**\n * Net score (upvotes minus downvotes) at fetch time.\n */\n score: number;\n /**\n * Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.\n */\n subreddit: string;\n /**\n * Post title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Reddit Search (reddit.search).\n */\nexport interface RedditSearchData {\n /**\n * Cursor for the next page of results; pass it back as the `cursor` input to fetch the following page. Empty string when there are no more results.\n */\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: RedditSearchPost[];\n}\n\n/**\n * Input for Reddit Subreddit Details (reddit.subreddit_details).\n */\nexport interface RedditSubredditDetailsInput {\n /**\n * Subreddit name without the r/ prefix. Case-sensitive (e.g. \"AskReddit\", not \"askreddit\").\n */\n subreddit: string;\n}\n\n/**\n * The `data` payload of Reddit Subreddit Details (reddit.subreddit_details).\n */\nexport interface RedditSubredditDetailsData {\n /**\n * Reddit advertiser category for the subreddit.\n */\n advertiserCategory: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Subreddit description text. Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * URL of the subreddit icon. Populated whenever the provider has data for the entity.\n */\n iconUrl: string;\n /**\n * Reddit fullname, e.g. \"t5_2qh1i\". Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Subreddit name (without the r/ prefix). Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Number of users active in the past week.\n */\n weeklyActiveUsers: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Reddit Subreddit Posts (reddit.subreddit_posts).\n */\nexport interface RedditSubredditPostsInput {\n /**\n * Pagination cursor from a previous response (its `nextCursor`). Fetches the page that follows; omit for the first page.\n */\n after?: string;\n /**\n * Requested number of posts. Note: the upstream returns one page (about 25 posts) per call; values larger than a page are not delivered in a single response. To fetch more, page with the `after` cursor returned as `nextCursor`.\n * Range: minimum 1, maximum 100.\n * Default: 25.\n */\n limit?: number;\n /**\n * Listing sort order.\n * One of: hot, new, top.\n * Default: hot.\n */\n sort?: \"hot\" | \"new\" | \"top\";\n /**\n * Subreddit name without the leading r/ (e.g. \"golang\").\n */\n subreddit: string;\n /**\n * Time window, applied when sort is \"top\" (e.g. \"year\" for the year's top posts). Ignored for hot/new. Omit to default to the current day for top.\n * One of: all, year, month, week, day, hour.\n */\n timeframe?: \"all\" | \"year\" | \"month\" | \"week\" | \"day\" | \"hour\";\n}\n\nexport interface RedditSubredditPostsPost {\n /**\n * Author username, without the u/ prefix. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Total number of comments on the post.\n */\n numComments: number;\n /**\n * Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Empty if the upstream omits it. Populated whenever the provider has data for the entity.\n */\n permalink: string;\n /**\n * Net score (upvotes minus downvotes) at fetch time.\n */\n score: number;\n /**\n * Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.\n */\n subreddit: string;\n /**\n * Post title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Reddit Subreddit Posts (reddit.subreddit_posts).\n */\nexport interface RedditSubredditPostsData {\n /**\n * Cursor for the next page of results; pass it back as the `after` input to fetch the following page. Empty string when there are no more results.\n */\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: RedditSubredditPostsPost[];\n}\n\n/**\n * Input for Reddit Subreddit Search (reddit.subreddit_search).\n */\nexport interface RedditSubredditSearchInput {\n /**\n * Optional pagination token from a previous response.\n */\n cursor?: string;\n /**\n * Optional search query to match posts (e.g. 'push ups').\n */\n query?: string;\n /**\n * Optional sort order: relevance, hot, top, new, comments.\n */\n sort?: string;\n /**\n * Subreddit name without the r/ prefix (e.g. 'Fitness').\n */\n subreddit: string;\n /**\n * Optional time filter: all, year, month, week, day, hour.\n */\n timeframe?: string;\n}\n\nexport interface RedditSubredditSearchPost {\n /**\n * Author username, without the u/ prefix. Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Post creation time as a UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Whether the post is marked NSFW (over 18).\n */\n nsfw: boolean;\n /**\n * Total number of comments on the post.\n */\n numComments: number;\n /**\n * Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Populated whenever the provider has data for the entity.\n */\n permalink: string;\n /**\n * Net score (upvotes minus downvotes) at fetch time.\n */\n score: number;\n /**\n * Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.\n */\n subreddit: string;\n /**\n * Post title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Reddit Subreddit Search (reddit.subreddit_search).\n */\nexport interface RedditSubredditSearchData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: RedditSubredditSearchPost[];\n}\n\n/**\n * Typed methods for the reddit platform. Attached to the AnyAPI client as\n * `client.reddit`.\n */\nexport class RedditNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Reddit Post Comments\n *\n * List the top-level comments on a Reddit post by URL (author, body, score, timestamp), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.reddit.postComments({ url: \"https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/\" });\n */\n postComments(\n input: RedditPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditPostCommentsData>> {\n return this._core.run(\"reddit.post_comments\", input, options);\n }\n\n /**\n * Reddit Post Transcript\n *\n * Extract the spoken transcript from a Reddit video post by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.reddit.postTranscript({ url: \"https://www.reddit.com/r/youseeingthisshit/comments/1oiu9xm/\" });\n */\n postTranscript(\n input: RedditPostTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditPostTranscriptData>> {\n return this._core.run(\"reddit.post_transcript\", input, options);\n }\n\n /**\n * Reddit Search\n *\n * Search Reddit posts across all subreddits by query, normalized across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.reddit.search({ query: \"mechanical keyboard\" });\n */\n search(\n input: RedditSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditSearchData>> {\n return this._core.run(\"reddit.search\", input, options);\n }\n\n /**\n * Iterate every result of Reddit Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearch(\n input: RedditSearchInput,\n options?: RequestOptions,\n ): Paginator<RedditSearchPost, RunResult<RedditSearchData>> {\n return paginate<RedditSearchPost, RunResult<RedditSearchData>>(\n this._core,\n \"reddit.search\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n\n /**\n * Reddit Subreddit Details\n *\n * Fetch a subreddit's metadata (weekly active users, description, and category), normalized across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.reddit.subredditDetails({ subreddit: \"programming\" });\n */\n subredditDetails(\n input: RedditSubredditDetailsInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditSubredditDetailsData>> {\n return this._core.run(\"reddit.subreddit_details\", input, options);\n }\n\n /**\n * Reddit Subreddit Posts\n *\n * Fetch posts from a subreddit listing (hot, new, or top), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.reddit.subredditPosts({ subreddit: \"programming\", limit: 5 });\n */\n subredditPosts(\n input: RedditSubredditPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditSubredditPostsData>> {\n return this._core.run(\"reddit.subreddit_posts\", input, options);\n }\n\n /**\n * Reddit Subreddit Search\n *\n * Search posts within a single subreddit by query, sort, and timeframe, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.reddit.subredditSearch({ subreddit: \"Fitness\", query: \"push ups\" });\n */\n subredditSearch(\n input: RedditSubredditSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedditSubredditSearchData>> {\n return this._core.run(\"reddit.subreddit_search\", input, options);\n }\n\n /**\n * Iterate every result of Reddit Subreddit Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSubredditSearch(\n input: RedditSubredditSearchInput,\n options?: RequestOptions,\n ): Paginator<\n RedditSubredditSearchPost,\n RunResult<RedditSubredditSearchData>\n > {\n return paginate<\n RedditSubredditSearchPost,\n RunResult<RedditSubredditSearchData>\n >(\n this._core,\n \"reddit.subreddit_search\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Redfin Search (redfin.search).\n */\nexport interface RedfinSearchInput {\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Redfin search results URL for a city, ZIP or map area (e.g. https://www.redfin.com/city/30772/CA/San-Francisco).\n */\n url: string;\n}\n\nexport interface RedfinSearchItem {\n /**\n * Street address line of the home.\n */\n addressLine?: string;\n /**\n * Number of bathrooms (fractional for half baths).\n */\n baths?: number;\n /**\n * Number of bedrooms.\n */\n beds?: number;\n /**\n * City the home is in.\n */\n city?: string;\n /**\n * Latitude of the home in decimal degrees.\n */\n latitude?: number;\n /**\n * Redfin listing id for this specific listing.\n */\n listingId?: string;\n /**\n * Longitude of the home in decimal degrees.\n */\n longitude?: number;\n /**\n * Lot size in square feet.\n */\n lotSize?: number;\n /**\n * MLS number for the listing.\n */\n mlsId?: string;\n /**\n * Postal (ZIP) code of the home.\n */\n postalCode?: string;\n /**\n * List (or last sale) price in US dollars.\n */\n price?: number;\n /**\n * Price per square foot in US dollars.\n */\n pricePerSqft?: number;\n /**\n * Redfin property id (stable identifier for the home). Populated whenever the provider has data for the entity.\n */\n propertyId: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n soldUtc?: number;\n /**\n * Interior living area in square feet.\n */\n sqft?: number;\n /**\n * Two-letter state code the home is in.\n */\n state?: string;\n /**\n * MLS listing status (e.g. Active, Coming Soon, Sold).\n */\n status?: string;\n /**\n * Street address line used as the listing title.\n */\n title?: string;\n /**\n * Canonical Redfin listing detail page URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Year the home was built.\n */\n yearBuilt?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Redfin Search (redfin.search).\n */\nexport interface RedfinSearchData {\n /**\n * Matching Redfin home listing records. Populated whenever the provider has data for the entity.\n */\n items: RedfinSearchItem[];\n}\n\n/**\n * Typed methods for the redfin platform. Attached to the AnyAPI client as\n * `client.redfin`.\n */\nexport class RedfinNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Redfin Search\n *\n * Run a Redfin map search by URL and get matching home listings (price, address, beds, baths, status) as normalized JSON.\n *\n * Price: $0.0027 per request plus $0.00043 per result (maximum $0.01345).\n *\n * @example\n * const res = await client.redfin.search({ url: \"https://www.redfin.com/city/30818/TX/Austin\", limit: 3 });\n */\n search(\n input: RedfinSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RedfinSearchData>> {\n return this._core.run(\"redfin.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for RedNote (Xiaohongshu) Note (rednote.note).\n */\nexport interface RednoteNoteInput {\n /**\n * RedNote (Xiaohongshu) note ID.\n */\n noteId: string;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) Note (rednote.note).\n */\nexport interface RednoteNoteData {\n /**\n * URL of the author's avatar. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorImage?: string;\n /**\n * Display name of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author's public RedNote ID. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorRedId?: string;\n /**\n * Identifier of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Number of times the note was collected.\n */\n collectCount?: number;\n /**\n * Number of comments on the note.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Note body text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * URL of the note cover image. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Detected language of the note. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n language?: string;\n /**\n * Number of likes on the note.\n */\n likeCount?: number;\n /**\n * Note identifier. Populated whenever the provider has data for the entity.\n */\n noteId: string;\n /**\n * Number of times the note was shared.\n */\n shareCount?: number;\n /**\n * Note title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Note type, e.g. \"normal\" or \"video\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n type?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n updatedUtc?: number;\n /**\n * Canonical URL of the note. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) Note Comments (rednote.note_comments).\n */\nexport interface RednoteNoteCommentsInput {\n /**\n * Pagination cursor from the previous response.\n */\n cursor?: string;\n /**\n * RedNote (Xiaohongshu) note ID.\n */\n noteId: string;\n}\n\nexport interface RednoteNoteCommentsComment {\n /**\n * Comment identifier. Populated whenever the provider has data for the entity.\n */\n commentId: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * URL of the author's avatar. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * IP-based location shown for the commenter. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n ipLocation?: string;\n /**\n * Number of likes on the comment.\n */\n likeCount?: number;\n /**\n * Display name of the comment author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n nickname?: string;\n /**\n * Identifier of the note the comment belongs to. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n noteId?: string;\n /**\n * Author's public RedNote ID. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n redId?: string;\n /**\n * Number of replies to the comment.\n */\n replyCount?: number;\n /**\n * Comment text content. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n /**\n * Identifier of the comment author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n userId?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) Note Comments (rednote.note_comments).\n */\nexport interface RednoteNoteCommentsData {\n /**\n * Comments on the note. Populated whenever the provider has data for the entity.\n */\n comments: RednoteNoteCommentsComment[];\n /**\n * Cursor for the next page of comments; empty when there are no more.\n */\n nextCursor: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) Profile (rednote.profile).\n */\nexport interface RednoteProfileInput {\n /**\n * RedNote (Xiaohongshu) user ID.\n */\n userId: string;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) Profile (rednote.profile).\n */\nexport interface RednoteProfileData {\n collectedCount?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n followers?: number;\n following?: number;\n gender?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n likedCount?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n location?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n nickname?: string;\n postedNotes?: number;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n redId?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n shareUrl?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n verified?: boolean;\n verifyType?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) Search (rednote.search).\n */\nexport interface RednoteSearchInput {\n /**\n * Pagination cursor from the previous response.\n */\n cursor?: string;\n /**\n * Keyword to search for on RedNote (Xiaohongshu).\n */\n query: string;\n /**\n * Sort order for matching notes.\n * One of: general, hot, time.\n * Default: general.\n */\n sort?: \"general\" | \"hot\" | \"time\";\n}\n\nexport interface RednoteSearchNote {\n /**\n * URL of the author's avatar. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorImage?: string;\n /**\n * Display name of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Author's public RedNote ID. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorRedId?: string;\n /**\n * Identifier of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Number of times the note was collected.\n */\n collectCount?: number;\n /**\n * Number of comments on the note.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Note body text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * URL of the note cover image. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Number of likes on the note.\n */\n likeCount?: number;\n /**\n * Note identifier. Populated whenever the provider has data for the entity.\n */\n noteId: string;\n /**\n * Number of times the note was shared.\n */\n shareCount?: number;\n /**\n * Note title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Note type, e.g. \"normal\" or \"video\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n type?: string;\n /**\n * Security token required to fetch the note's full detail. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n xsecToken?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) Search (rednote.search).\n */\nexport interface RednoteSearchData {\n /**\n * Cursor for the next page of results; empty when there are no more.\n */\n nextCursor: string;\n /**\n * Notes matching the search. Populated whenever the provider has data for the entity.\n */\n notes: RednoteSearchNote[];\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) User Search (rednote.search_users).\n */\nexport interface RednoteSearchUsersInput {\n /**\n * Pagination cursor from the previous response.\n */\n cursor?: string;\n /**\n * Keyword to search for on RedNote (Xiaohongshu).\n */\n query: string;\n}\n\nexport interface RednoteSearchUsersUser {\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n link?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n redId?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n subtitle?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n verified?: boolean;\n verifyType?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) User Search (rednote.search_users).\n */\nexport interface RednoteSearchUsersData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n users: RednoteSearchUsersUser[];\n [extra: string]: unknown;\n}\n\n/**\n * Input for RedNote (Xiaohongshu) User Notes (rednote.user_notes).\n */\nexport interface RednoteUserNotesInput {\n /**\n * Pagination cursor from the previous response.\n */\n cursor?: string;\n /**\n * RedNote (Xiaohongshu) user ID.\n */\n userId: string;\n}\n\nexport interface RednoteUserNotesNote {\n /**\n * URL of the author's avatar. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorImage?: string;\n /**\n * Display name of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorNickname?: string;\n /**\n * Identifier of the note author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Number of times the note was collected.\n */\n collectCount?: number;\n /**\n * Number of comments on the note.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Note body text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * URL of the note cover image. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Number of likes on the note.\n */\n likeCount?: number;\n /**\n * Note identifier. Populated whenever the provider has data for the entity.\n */\n noteId: string;\n /**\n * Number of times the note was shared.\n */\n shareCount?: number;\n /**\n * Note title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Note type, e.g. \"normal\" or \"video\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n type?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of RedNote (Xiaohongshu) User Notes (rednote.user_notes).\n */\nexport interface RednoteUserNotesData {\n /**\n * Cursor for the next page of results; empty when there are no more.\n */\n nextCursor: string;\n /**\n * The user's notes. Populated whenever the provider has data for the entity.\n */\n notes: RednoteUserNotesNote[];\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the rednote platform. Attached to the AnyAPI client as\n * `client.rednote`.\n */\nexport class RednoteNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * RedNote (Xiaohongshu) Note\n *\n * Look up a RedNote (Xiaohongshu) note by note ID and return normalized note details.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.note({ noteId: \"66f2a24f000000002c02cf57\" });\n */\n note(\n input: RednoteNoteInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteNoteData>> {\n return this._core.run(\"rednote.note\", input, options);\n }\n\n /**\n * RedNote (Xiaohongshu) Note Comments\n *\n * List comments on a RedNote (Xiaohongshu) note and return normalized comment records with pagination.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.noteComments({ noteId: \"68dd422c0000000203019829\" });\n */\n noteComments(\n input: RednoteNoteCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteNoteCommentsData>> {\n return this._core.run(\"rednote.note_comments\", input, options);\n }\n\n /**\n * Iterate every result of RedNote (Xiaohongshu) Note Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterNoteComments(\n input: RednoteNoteCommentsInput,\n options?: RequestOptions,\n ): Paginator<RednoteNoteCommentsComment, RunResult<RednoteNoteCommentsData>> {\n return paginate<\n RednoteNoteCommentsComment,\n RunResult<RednoteNoteCommentsData>\n >(\n this._core,\n \"rednote.note_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * RedNote (Xiaohongshu) Profile\n *\n * Look up a RedNote (Xiaohongshu) profile by user ID and return normalized profile details.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.profile({ userId: \"56b0a4491c07df6365277af7\" });\n */\n profile(\n input: RednoteProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteProfileData>> {\n return this._core.run(\"rednote.profile\", input, options);\n }\n\n /**\n * RedNote (Xiaohongshu) Search\n *\n * Search RedNote (Xiaohongshu) notes by keyword and return normalized note records with pagination.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.search({ query: \"coffee\", sort: \"general\" });\n */\n search(\n input: RednoteSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteSearchData>> {\n return this._core.run(\"rednote.search\", input, options);\n }\n\n /**\n * Iterate every result of RedNote (Xiaohongshu) Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearch(\n input: RednoteSearchInput,\n options?: RequestOptions,\n ): Paginator<RednoteSearchNote, RunResult<RednoteSearchData>> {\n return paginate<RednoteSearchNote, RunResult<RednoteSearchData>>(\n this._core,\n \"rednote.search\",\n input as unknown as Record<string, unknown>,\n \"notes\",\n false,\n options,\n );\n }\n\n /**\n * RedNote (Xiaohongshu) User Search\n *\n * Search RedNote (Xiaohongshu) users by keyword and return normalized user records with pagination.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.searchUsers({ query: \"coffee\" });\n */\n searchUsers(\n input: RednoteSearchUsersInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteSearchUsersData>> {\n return this._core.run(\"rednote.search_users\", input, options);\n }\n\n /**\n * Iterate every result of RedNote (Xiaohongshu) User Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchUsers(\n input: RednoteSearchUsersInput,\n options?: RequestOptions,\n ): Paginator<RednoteSearchUsersUser, RunResult<RednoteSearchUsersData>> {\n return paginate<RednoteSearchUsersUser, RunResult<RednoteSearchUsersData>>(\n this._core,\n \"rednote.search_users\",\n input as unknown as Record<string, unknown>,\n \"users\",\n false,\n options,\n );\n }\n\n /**\n * RedNote (Xiaohongshu) User Notes\n *\n * List notes posted by a RedNote (Xiaohongshu) user and return normalized note records with pagination.\n *\n * Price: $0.01 per request.\n *\n * @example\n * const res = await client.rednote.userNotes({ userId: \"56b0a4491c07df6365277af7\" });\n */\n userNotes(\n input: RednoteUserNotesInput,\n options?: RequestOptions,\n ): Promise<RunResult<RednoteUserNotesData>> {\n return this._core.run(\"rednote.user_notes\", input, options);\n }\n\n /**\n * Iterate every result of RedNote (Xiaohongshu) User Notes across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserNotes(\n input: RednoteUserNotesInput,\n options?: RequestOptions,\n ): Paginator<RednoteUserNotesNote, RunResult<RednoteUserNotesData>> {\n return paginate<RednoteUserNotesNote, RunResult<RednoteUserNotesData>>(\n this._core,\n \"rednote.user_notes\",\n input as unknown as Record<string, unknown>,\n \"notes\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for SEC EDGAR Filings (sec.filings).\n */\nexport interface SecFilingsInput {\n /**\n * Company name to search for (partial match supported, e.g. 'Tesla' or 'Berkshire'). Use this when you do not have the ticker symbol. If both ticker and companyName are given, ticker takes precedence.\n */\n companyName?: string;\n /**\n * Only return filings filed on or after this date, in YYYY-MM-DD format (e.g. 2025-01-01).\n */\n dateFrom?: string;\n /**\n * Only return filings filed on or before this date, in YYYY-MM-DD format (e.g. 2026-06-01).\n */\n dateTo?: string;\n /**\n * Filter filings by SEC form type (e.g. 10-K, 10-Q, 8-K, 4, DEF 14A, S-1, 13F-HR); omit for all forms.\n */\n form?: string;\n /**\n * Maximum number of filings to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Company stock ticker symbol, e.g. AAPL, MSFT, or TSLA. Provide either ticker or companyName; ticker is the more precise lookup.\n */\n ticker?: string;\n}\n\nexport interface SecFilingsItem {\n /**\n * SEC accession number uniquely identifying the filing. Populated whenever the provider has data for the entity.\n */\n accessionNumber: string;\n /**\n * SEC Central Index Key for the filer. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cik?: string;\n /**\n * Filer company name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n companyName?: string;\n /**\n * Primary document description, e.g. the form label.\n */\n description?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Date the filing was filed. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n filedUtc?: number;\n /**\n * Link to the filing index/folder on sec.gov.\n */\n filingUrl?: string;\n /**\n * SEC form type, e.g. 10-K, 10-Q, 8-K. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n form?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Period-of-report date for the filing.\n */\n reportedUtc?: number;\n /**\n * Stock ticker symbol of the filer, when known.\n */\n ticker?: string;\n /**\n * Direct link to the primary filing document on sec.gov. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEC EDGAR Filings (sec.filings).\n */\nexport interface SecFilingsData {\n /**\n * Filing records: company and CIK, form type, filing date, accession number, and document links. Populated whenever the provider has data for the entity.\n */\n items: SecFilingsItem[];\n}\n\n/**\n * Typed methods for the sec platform. Attached to the AnyAPI client as\n * `client.sec`.\n */\nexport class SecNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * SEC EDGAR Filings\n *\n * List a public company's SEC EDGAR filings - form type, filing date, accession number, and document links - by ticker, company name, or CIK, with optional form-type and date filters.\n *\n * Price: $0.002 per request plus $0.0004 per result (maximum $0.012).\n *\n * @example\n * const res = await client.sec.filings({ limit: 3, ticker: \"AAPL\" });\n */\n filings(\n input: SecFilingsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SecFilingsData>> {\n return this._core.run(\"sec.filings\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Semrush Keyword Research (semrush.keywords).\n */\nexport interface SemrushKeywordsInput {\n /**\n * Two-letter Semrush regional database that scopes the metrics (e.g. us, uk, de).\n * Default: us.\n */\n database?: string;\n /**\n * The search term to research (e.g. \"best running shoes\").\n */\n keyword: string;\n}\n\nexport interface SemrushKeywordsItem {\n /**\n * Paid-search competition density, 0 to 1.\n */\n competition?: number;\n /**\n * Average cost per click in USD.\n */\n cpcUsd?: number;\n /**\n * Two-letter Semrush regional database the metrics are scoped to.\n */\n database?: string;\n /**\n * Search-intent labels for the keyword (e.g. commercial, informational). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n intents?: string[];\n /**\n * The researched search term. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Semrush Keyword Difficulty, 0 to 100.\n */\n keywordDifficulty?: number;\n /**\n * Number of organic results Google returns for the keyword.\n */\n organicResultsCount?: number;\n /**\n * Question-phrased keyword variations with their own volume and difficulty. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n questions?: SemrushKeywordsQuestion[];\n /**\n * Median number of referring domains across the ranking pages.\n */\n referringDomainsMedian?: number;\n /**\n * Related keyword suggestions with their own volume and difficulty. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n relatedKeywords?: SemrushKeywordsRelatedKeyword[];\n /**\n * Average monthly search volume in the selected database.\n */\n searchVolume?: number;\n [extra: string]: unknown;\n}\n\nexport interface SemrushKeywordsQuestion {\n /**\n * The question keyword.\n */\n keyword: string;\n /**\n * Semrush Keyword Difficulty for the question keyword, 0 to 100.\n */\n keywordDifficulty?: number;\n /**\n * Average monthly search volume for the question keyword.\n */\n searchVolume?: number;\n [extra: string]: unknown;\n}\n\nexport interface SemrushKeywordsRelatedKeyword {\n /**\n * The related keyword.\n */\n keyword: string;\n /**\n * Semrush Keyword Difficulty for the related keyword, 0 to 100.\n */\n keywordDifficulty?: number;\n /**\n * Average monthly search volume for the related keyword.\n */\n searchVolume?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Semrush Keyword Research (semrush.keywords).\n */\nexport interface SemrushKeywordsData {\n /**\n * Keyword-research records: search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords for the researched term. Populated whenever the provider has data for the entity.\n */\n items: SemrushKeywordsItem[];\n}\n\n/**\n * Input for Semrush Domain Overview (semrush.overview).\n */\nexport interface SemrushOverviewInput {\n /**\n * Two-letter Semrush regional database that scopes the metrics (e.g. us, uk, de).\n * Default: us.\n */\n database?: string;\n /**\n * The domain to analyze (e.g. ahrefs.com).\n */\n domain: string;\n /**\n * Add Moz Domain Authority and Spam Score to the response.\n * Default: false.\n */\n includeMoz?: boolean;\n}\n\nexport interface SemrushOverviewItem {\n /**\n * Semrush AI visibility metric for the domain.\n */\n aiVisibility?: number;\n /**\n * Semrush Authority Score, 0-100.\n */\n authorityScore?: number;\n /**\n * Total number of backlinks pointing at the domain.\n */\n backlinks?: number;\n /**\n * Two-letter Semrush regional database the metrics are scoped to.\n */\n database?: string;\n /**\n * The analyzed domain. Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Number of dofollow backlinks.\n */\n followBacklinks?: number;\n /**\n * Moz Domain Authority, 0-100 (only when includeMoz is true).\n */\n mozDomainAuthority?: number;\n /**\n * Moz Spam Score as a percentage string (only when includeMoz is true).\n */\n mozSpamScore?: string;\n /**\n * Number of nofollow backlinks.\n */\n nofollowBacklinks?: number;\n /**\n * Number of keywords the domain ranks for organically.\n */\n organicKeywords?: number;\n /**\n * Estimated monthly organic search traffic.\n */\n organicTraffic?: number;\n /**\n * Estimated USD value of the organic traffic.\n */\n organicTrafficCostUsd?: number;\n /**\n * Number of keywords the domain bids on.\n */\n paidKeywords?: number;\n /**\n * Estimated monthly paid search traffic.\n */\n paidTraffic?: number;\n /**\n * Estimated USD value of the paid traffic.\n */\n paidTrafficCostUsd?: number;\n /**\n * Number of unique domains linking to the domain.\n */\n referringDomains?: number;\n /**\n * Two-letter code of the country sending the most traffic.\n */\n topCountry?: string;\n /**\n * Estimated monthly traffic from the top country.\n */\n topCountryTraffic?: number;\n /**\n * The domain's top organic keywords with position, volume, and value. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n topKeywords?: SemrushOverviewTopKeyword[];\n /**\n * Estimated total monthly traffic across organic and paid.\n */\n totalTraffic?: number;\n [extra: string]: unknown;\n}\n\nexport interface SemrushOverviewTopKeyword {\n /**\n * Average cost per click in USD.\n */\n cpcUsd?: number;\n /**\n * Search intents associated with the keyword.\n */\n intents?: string[];\n /**\n * The organic keyword.\n */\n keyword: string;\n /**\n * Semrush Keyword Difficulty, 0-100.\n */\n keywordDifficulty?: number;\n /**\n * Current SERP position for this keyword.\n */\n position?: number;\n /**\n * Monthly search volume for this keyword.\n */\n searchVolume?: number;\n /**\n * Estimated monthly traffic this keyword drives to the domain.\n */\n traffic?: number;\n /**\n * The ranking URL on the domain.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Semrush Domain Overview (semrush.overview).\n */\nexport interface SemrushOverviewData {\n /**\n * Domain overview records: Authority Score, organic and paid traffic, keyword and backlink counts, top country, and the domain's top organic keywords. Populated whenever the provider has data for the entity.\n */\n items: SemrushOverviewItem[];\n}\n\n/**\n * Typed methods for the semrush platform. Attached to the AnyAPI client as\n * `client.semrush`.\n */\nexport class SemrushNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Semrush Keyword Research\n *\n * Semrush keyword research for any term: monthly search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords.\n *\n * Price: $0 per request plus $0.015 per result (maximum $0.015).\n *\n * @example\n * const res = await client.semrush.keywords({ keyword: \"best running shoes\", database: \"us\" });\n */\n keywords(\n input: SemrushKeywordsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SemrushKeywordsData>> {\n return this._core.run(\"semrush.keywords\", input, options);\n }\n\n /**\n * Semrush Domain Overview\n *\n * a Semrush SEO overview for any domain: Authority Score, organic and paid traffic, keyword and backlink counts, top country, and the domain's top organic keywords.\n *\n * Price: $0 per request plus $0.015 per result (maximum $0.015).\n *\n * @example\n * const res = await client.semrush.overview({ domain: \"ahrefs.com\", database: \"us\" });\n */\n overview(\n input: SemrushOverviewInput,\n options?: RequestOptions,\n ): Promise<RunResult<SemrushOverviewData>> {\n return this._core.run(\"semrush.overview\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for SEO Competitor Domains (seo.competitors_domain).\n */\nexport interface SeoCompetitorsDomainInput {\n /**\n * Language code for SEO competitor metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of competitor domains to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 10.\n */\n limit?: number;\n /**\n * Location code for SEO competitor metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned competitors: by shared keyword count (intersections), organic keyword count, organic traffic value (etv), or average position. Omit for the default order.\n * One of: intersections_desc, organic_keywords_desc, organic_etv_desc, avg_position_asc.\n */\n orderBy?:\n | \"intersections_desc\"\n | \"organic_keywords_desc\"\n | \"organic_etv_desc\"\n | \"avg_position_asc\";\n /**\n * Domain to analyze, without a protocol or leading www.\n */\n target: string;\n}\n\nexport interface SeoCompetitorsDomainCompetitor {\n /**\n * Average ranking position across shared keywords. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n avgPosition?: number;\n /**\n * Competing domain. Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Number of keywords shared with the target domain. Populated whenever the provider has data for the entity.\n */\n intersections: number;\n /**\n * Estimated monthly organic search traffic for the competitor domain.\n */\n organicEtv?: number;\n /**\n * Number of organic search results where the competitor domain appears.\n */\n organicKeywords?: number;\n /**\n * Sum of ranking positions across shared keywords. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n sumPosition?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Competitor Domains (seo.competitors_domain).\n */\nexport interface SeoCompetitorsDomainData {\n /**\n * SEO competitor domain records. Populated whenever the provider has data for the entity.\n */\n competitors: SeoCompetitorsDomainCompetitor[];\n}\n\n/**\n * Input for SEO Domain Intersection (seo.domain_intersection).\n */\nexport interface SeoDomainIntersectionInput {\n /**\n * When true (the default), return keywords both domains rank for (overlap). When false, return keywords the first domain ranks for that the second domain does NOT (the content-gap query); in that mode secondRank and secondUrl are absent.\n */\n intersections?: boolean;\n /**\n * Language code for SEO overlap metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of keywords to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 10.\n */\n limit?: number;\n /**\n * Location code for SEO overlap metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned keywords: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.\n * One of: volume_desc, volume_asc, cpc_desc, difficulty_asc, difficulty_desc.\n */\n orderBy?:\n | \"volume_desc\"\n | \"volume_asc\"\n | \"cpc_desc\"\n | \"difficulty_asc\"\n | \"difficulty_desc\";\n /**\n * First domain to compare, without a protocol or leading www.\n */\n target1: string;\n /**\n * Second domain to compare, without a protocol or leading www.\n */\n target2: string;\n}\n\nexport interface SeoDomainIntersectionKeyword {\n /**\n * Average paid-search cost per click in USD.\n */\n cpc?: number;\n /**\n * Absolute organic ranking position for the first domain. Populated whenever the provider has data for the entity.\n */\n firstRank: number;\n /**\n * Ranking URL for the first domain.\n */\n firstUrl?: string;\n /**\n * Keyword phrase both domains rank for. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale.\n */\n keywordDifficulty?: number;\n /**\n * Average monthly search volume for the keyword.\n */\n searchVolume?: number;\n /**\n * Absolute organic ranking position for the second domain. Absent when intersections is false (the second domain does not rank for this keyword).\n */\n secondRank?: number;\n /**\n * Ranking URL for the second domain. Absent when intersections is false.\n */\n secondUrl?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Domain Intersection (seo.domain_intersection).\n */\nexport interface SeoDomainIntersectionData {\n /**\n * SEO keyword records both domains rank for. Populated whenever the provider has data for the entity.\n */\n keywords: SeoDomainIntersectionKeyword[];\n}\n\n/**\n * Input for SEO Domain Rank Overview (seo.domain_rank_overview).\n */\nexport interface SeoDomainRankOverviewInput {\n /**\n * Language code for SEO domain metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Location code for SEO domain metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Domain to analyze, without a protocol or leading www.\n */\n target: string;\n}\n\n/**\n * The `data` payload of SEO Domain Rank Overview (seo.domain_rank_overview).\n */\nexport interface SeoDomainRankOverviewData {\n /**\n * Analyzed domain. Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Language code the metrics are scoped to.\n */\n language?: string;\n /**\n * Location code the metrics are scoped to.\n */\n location?: number;\n /**\n * Number of organic search results where the domain appears. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicKeywords?: number;\n /**\n * Number of organic search results where the domain ranks first. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicPos1?: number;\n /**\n * Number of organic search results where the domain ranks second or third. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicPos2To3?: number;\n /**\n * Number of organic search results where the domain ranks fourth through tenth. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicPos4To10?: number;\n /**\n * Estimated monthly organic search traffic. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicTraffic?: number;\n /**\n * Estimated USD value of the organic search traffic. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n organicTrafficCostUsd?: number;\n /**\n * Number of paid search results where the domain appears.\n */\n paidKeywords?: number;\n /**\n * Number of paid search results where the domain ranks first.\n */\n paidPos1?: number;\n /**\n * Number of paid search results where the domain ranks second or third.\n */\n paidPos2To3?: number;\n /**\n * Number of paid search results where the domain ranks fourth through tenth.\n */\n paidPos4To10?: number;\n /**\n * Estimated monthly paid search traffic.\n */\n paidTraffic?: number;\n /**\n * Estimated USD value of the paid search traffic.\n */\n paidTrafficCostUsd?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for SEO Keyword Difficulty (seo.keyword_difficulty).\n */\nexport interface SeoKeywordDifficultyInput {\n /**\n * SEO keywords to score for organic ranking difficulty.\n */\n keywords: string[];\n /**\n * Language code for SEO keyword difficulty metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Location code for SEO keyword difficulty metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n}\n\nexport interface SeoKeywordDifficultyDifficultie {\n /**\n * Keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Omitted when the upstream has no difficulty for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Keyword Difficulty (seo.keyword_difficulty).\n */\nexport interface SeoKeywordDifficultyData {\n /**\n * SEO keyword difficulty records. Populated whenever the provider has data for the entity.\n */\n difficulties: SeoKeywordDifficultyDifficultie[];\n}\n\n/**\n * Input for SEO Keyword Ideas (seo.keyword_ideas).\n */\nexport interface SeoKeywordIdeasInput {\n /**\n * When true, generate only close variants of the seed keywords; when false (the default), generate a broader set of related ideas.\n */\n closelyVariants?: boolean;\n /**\n * Seed SEO keywords used to generate related keyword ideas.\n */\n keywords: string[];\n /**\n * Language code for SEO metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of keyword ideas to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 5.\n */\n limit?: number;\n /**\n * Location code for SEO metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned ideas: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.\n * One of: volume_desc, volume_asc, cpc_desc, difficulty_asc, difficulty_desc.\n */\n orderBy?:\n | \"volume_desc\"\n | \"volume_asc\"\n | \"cpc_desc\"\n | \"difficulty_asc\"\n | \"difficulty_desc\";\n}\n\nexport interface SeoKeywordIdeasIdea {\n /**\n * Paid-search competition level for the keyword idea. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Keyword idea phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n /**\n * Primary SEO search intent for the keyword idea. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the keyword idea. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Keyword Ideas (seo.keyword_ideas).\n */\nexport interface SeoKeywordIdeasData {\n /**\n * SEO keyword idea records. Populated whenever the provider has data for the entity.\n */\n ideas: SeoKeywordIdeasIdea[];\n}\n\n/**\n * Input for SEO Keyword Overview (seo.keyword_overview).\n */\nexport interface SeoKeywordOverviewInput {\n /**\n * SEO keywords to analyze.\n */\n keywords: string[];\n /**\n * Language code for SEO metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Location code for SEO metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n}\n\nexport interface SeoKeywordOverviewKeyword {\n /**\n * Upper bound of the estimated paid-search top-of-page bid in USD.\n */\n bidHigh?: number;\n /**\n * Lower bound of the estimated paid-search top-of-page bid in USD.\n */\n bidLow?: number;\n /**\n * Paid-search competition level for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n /**\n * Monthly search-volume history for the keyword.\n */\n monthlySearches?: SeoKeywordOverviewMonthlySearche[];\n /**\n * Primary SEO search intent for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\nexport interface SeoKeywordOverviewMonthlySearche {\n /**\n * Calendar month number for the monthly search-volume record.\n */\n month?: number;\n /**\n * Search volume for the month.\n */\n searchVolume?: number;\n /**\n * Calendar year for the monthly search-volume record.\n */\n year?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Keyword Overview (seo.keyword_overview).\n */\nexport interface SeoKeywordOverviewData {\n /**\n * SEO keyword metric records. Populated whenever the provider has data for the entity.\n */\n keywords: SeoKeywordOverviewKeyword[];\n}\n\n/**\n * Input for SEO Keyword Suggestions (seo.keyword_suggestions).\n */\nexport interface SeoKeywordSuggestionsInput {\n /**\n * When true, only return suggestions that contain the exact seed phrase; when false (the default), allow reordered and partial-match suggestions.\n */\n exactMatch?: boolean;\n /**\n * Seed SEO keyword used to generate keyword suggestions.\n */\n keyword: string;\n /**\n * Language code for SEO metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of keyword suggestions to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 5.\n */\n limit?: number;\n /**\n * Location code for SEO metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned suggestions: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.\n * One of: volume_desc, volume_asc, cpc_desc, difficulty_asc, difficulty_desc.\n */\n orderBy?:\n | \"volume_desc\"\n | \"volume_asc\"\n | \"cpc_desc\"\n | \"difficulty_asc\"\n | \"difficulty_desc\";\n}\n\nexport interface SeoKeywordSuggestionsSuggestion {\n /**\n * Paid-search competition level for the keyword suggestion. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Keyword suggestion phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n /**\n * Primary SEO search intent for the keyword suggestion. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the keyword suggestion. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Keyword Suggestions (seo.keyword_suggestions).\n */\nexport interface SeoKeywordSuggestionsData {\n /**\n * SEO keyword suggestion records. Populated whenever the provider has data for the entity.\n */\n suggestions: SeoKeywordSuggestionsSuggestion[];\n}\n\n/**\n * Input for SEO Local Pack (seo.local_pack).\n */\nexport interface SeoLocalPackInput {\n /**\n * SEO local pack search keyword.\n */\n keyword: string;\n /**\n * Language code for SEO local pack results.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of local pack places to return. Billing is flat per request.\n * Range: minimum 1, maximum 100.\n * Default: 20.\n */\n limit?: number;\n /**\n * Local pack search location name, formatted like City,Region,Country; for example, New York,New York,United States. Supply either location or locationCoordinate, not both.\n */\n location?: string;\n /**\n * Precise geo target as latitude,longitude or latitude,longitude,radius (radius in meters); for example, 40.7580,-73.9855 or 40.7580,-73.9855,1000. Supply either location or locationCoordinate, not both.\n */\n locationCoordinate?: string;\n}\n\nexport interface SeoLocalPackPlace {\n /**\n * Full formatted street address. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n address?: string;\n /**\n * Primary place category.\n */\n category?: string;\n /**\n * True when the place listing is claimed.\n */\n claimed?: boolean;\n /**\n * Latitude of the place in decimal degrees.\n */\n latitude?: number;\n /**\n * Longitude of the place in decimal degrees.\n */\n longitude?: number;\n /**\n * Place name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Business phone number, when listed.\n */\n phone?: string;\n /**\n * Place identifier.\n */\n placeId?: string;\n /**\n * Absolute ranking position in the local pack results. Populated whenever the provider has data for the entity.\n */\n rankAbsolute: number;\n /**\n * Average star rating out of 5. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n rating?: number;\n /**\n * Total number of reviews.\n */\n reviewsCount?: number;\n /**\n * Canonical place URL.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Local Pack (seo.local_pack).\n */\nexport interface SeoLocalPackData {\n /**\n * SEO local pack place records. Populated whenever the provider has data for the entity.\n */\n places: SeoLocalPackPlace[];\n}\n\n/**\n * Input for SEO Ranked Keywords (seo.ranked_keywords).\n */\nexport interface SeoRankedKeywordsInput {\n /**\n * Language code for SEO ranking metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of ranked keywords to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 10.\n */\n limit?: number;\n /**\n * Location code for SEO ranking metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned ranked keywords: by SERP position (ascending for best rankings first), search volume, or estimated traffic value (etv). Omit for the default order.\n * One of: position_asc, position_desc, volume_desc, etv_desc.\n */\n orderBy?: \"position_asc\" | \"position_desc\" | \"volume_desc\" | \"etv_desc\";\n /**\n * Domain to analyze, without a protocol or leading www.\n */\n target: string;\n}\n\nexport interface SeoRankedKeywordsRankedKeyword {\n /**\n * Average paid-search cost per click in USD.\n */\n cpc?: number;\n /**\n * Estimated organic search traffic for the ranking URL.\n */\n etv?: number;\n /**\n * Keyword phrase the domain ranks for. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale.\n */\n keywordDifficulty?: number;\n /**\n * Absolute organic ranking position for the keyword. Populated whenever the provider has data for the entity.\n */\n rankAbsolute: number;\n /**\n * Grouped organic ranking position for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n rankGroup?: number;\n /**\n * Primary SEO search intent for the keyword.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Ranking URL for the domain.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Ranked Keywords (seo.ranked_keywords).\n */\nexport interface SeoRankedKeywordsData {\n /**\n * SEO ranked keyword records for the domain. Populated whenever the provider has data for the entity.\n */\n rankedKeywords: SeoRankedKeywordsRankedKeyword[];\n}\n\n/**\n * Input for SEO Related Keywords (seo.related_keywords).\n */\nexport interface SeoRelatedKeywordsInput {\n /**\n * Depth of the related-keyword expansion (0-4). Higher depth explores a broader keyword tree; the number of returned results, and therefore the price, is still capped by limit.\n * Range: minimum 0, maximum 4.\n */\n depth?: number;\n /**\n * Seed SEO keyword used to find related keywords.\n */\n keyword: string;\n /**\n * Language code for SEO metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Maximum number of related keywords to return. You are billed per returned result, so a lower limit costs less.\n * Range: minimum 1, maximum 1000.\n * Default: 5.\n */\n limit?: number;\n /**\n * Location code for SEO metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * Sort order for the returned related keywords: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.\n * One of: volume_desc, volume_asc, cpc_desc, difficulty_asc, difficulty_desc.\n */\n orderBy?:\n | \"volume_desc\"\n | \"volume_asc\"\n | \"cpc_desc\"\n | \"difficulty_asc\"\n | \"difficulty_desc\";\n}\n\nexport interface SeoRelatedKeywordsRelatedKeyword {\n /**\n * Paid-search competition level for the related keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Related-keyword graph depth from the seed keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n depth?: number;\n /**\n * Related keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n keywordDifficulty?: number;\n /**\n * Primary SEO search intent for the related keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchIntent?: string;\n /**\n * Average monthly search volume for the related keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Related Keywords (seo.related_keywords).\n */\nexport interface SeoRelatedKeywordsData {\n /**\n * SEO related keyword records. Populated whenever the provider has data for the entity.\n */\n relatedKeywords: SeoRelatedKeywordsRelatedKeyword[];\n}\n\n/**\n * Input for SEO Search Intent (seo.search_intent).\n */\nexport interface SeoSearchIntentInput {\n /**\n * SEO keywords to classify by search intent.\n */\n keywords: string[];\n /**\n * Language code for search intent classification.\n * Default: en.\n */\n language?: string;\n}\n\nexport interface SeoSearchIntentIntent {\n /**\n * Primary SEO search intent for the keyword. Populated whenever the provider has data for the entity.\n */\n intent: string;\n /**\n * Keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Search Intent (seo.search_intent).\n */\nexport interface SeoSearchIntentData {\n /**\n * SEO keyword search intent records. Populated whenever the provider has data for the entity.\n */\n intents: SeoSearchIntentIntent[];\n}\n\n/**\n * Input for SEO Search Volume (seo.search_volume).\n */\nexport interface SeoSearchVolumeInput {\n /**\n * Start of the historical monthly-searches window, formatted YYYY-MM-DD. Cannot be more than four years before today. Omit for the default trailing window.\n */\n dateFrom?: string;\n /**\n * End of the historical monthly-searches window, formatted YYYY-MM-DD. Omit for the default trailing window.\n */\n dateTo?: string;\n /**\n * SEO keyword phrases to retrieve search-volume metrics for.\n */\n keywords: string[];\n /**\n * Language code for SEO search-volume metrics.\n * Default: en.\n */\n language?: string;\n /**\n * Location code for SEO search-volume metrics. The default is the United States.\n * Default: 2840.\n */\n location?: number;\n /**\n * When true, include Google search-partner network volume in the reported numbers; when false (the default), count Google search only.\n */\n searchPartners?: boolean;\n}\n\nexport interface SeoSearchVolumeKeyword {\n /**\n * Upper bound of the estimated paid-search top-of-page bid in USD.\n */\n bidHigh?: number;\n /**\n * Lower bound of the estimated paid-search top-of-page bid in USD.\n */\n bidLow?: number;\n /**\n * Paid-search competition level for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n competition?: string;\n /**\n * Paid-search competition index for the keyword.\n */\n competitionIndex?: number;\n /**\n * Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n cpc?: number;\n /**\n * Keyword phrase. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Monthly search-volume history for the keyword.\n */\n monthlySearches?: SeoSearchVolumeMonthlySearche[];\n /**\n * Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n searchVolume?: number;\n [extra: string]: unknown;\n}\n\nexport interface SeoSearchVolumeMonthlySearche {\n /**\n * Calendar month number for the monthly search-volume record.\n */\n month?: number;\n /**\n * Search volume for the month.\n */\n searchVolume?: number;\n /**\n * Calendar year for the monthly search-volume record.\n */\n year?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of SEO Search Volume (seo.search_volume).\n */\nexport interface SeoSearchVolumeData {\n /**\n * SEO keyword search-volume records. Populated whenever the provider has data for the entity.\n */\n keywords: SeoSearchVolumeKeyword[];\n}\n\n/**\n * Typed methods for the seo platform. Attached to the AnyAPI client as\n * `client.seo`.\n */\nexport class SeoNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * SEO Competitor Domains\n *\n * Get AnyAPI SEO competitor domains for a target domain with shared keyword counts and organic metrics as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.competitorsDomain({ target: \"github.com\", language: \"en\", limit: 10, location: 2840 });\n */\n competitorsDomain(\n input: SeoCompetitorsDomainInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoCompetitorsDomainData>> {\n return this._core.run(\"seo.competitors_domain\", input, options);\n }\n\n /**\n * SEO Domain Intersection\n *\n * Get AnyAPI SEO keyword overlap for two domains with each domain's rankings, URLs, volume, CPC, and difficulty as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.domainIntersection({ target1: \"github.com\", target2: \"gitlab.com\", language: \"en\", limit: 10, location: 2840 });\n */\n domainIntersection(\n input: SeoDomainIntersectionInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoDomainIntersectionData>> {\n return this._core.run(\"seo.domain_intersection\", input, options);\n }\n\n /**\n * SEO Domain Rank Overview\n *\n * Get AnyAPI SEO domain ranking, organic traffic, and paid traffic metrics as normalized JSON.\n *\n * Price: $0.0156 per request plus $0 per result (maximum $0.0156).\n *\n * @example\n * const res = await client.seo.domainRankOverview({ target: \"ahrefs.com\", language: \"en\", location: 2840 });\n */\n domainRankOverview(\n input: SeoDomainRankOverviewInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoDomainRankOverviewData>> {\n return this._core.run(\"seo.domain_rank_overview\", input, options);\n }\n\n /**\n * SEO Keyword Difficulty\n *\n * Get AnyAPI SEO keyword difficulty scores for one or more keywords as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per keyword (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.keywordDifficulty({ keywords: [\"seo tools\"], language: \"en\", location: 2840 });\n */\n keywordDifficulty(\n input: SeoKeywordDifficultyInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoKeywordDifficultyData>> {\n return this._core.run(\"seo.keyword_difficulty\", input, options);\n }\n\n /**\n * SEO Keyword Ideas\n *\n * Find AnyAPI SEO keyword ideas from seed terms with volume, CPC, competition, difficulty, and intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.keywordIdeas({ keywords: [\"project management software\"], language: \"en\", limit: 5, location: 2840 });\n */\n keywordIdeas(\n input: SeoKeywordIdeasInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoKeywordIdeasData>> {\n return this._core.run(\"seo.keyword_ideas\", input, options);\n }\n\n /**\n * SEO Keyword Overview\n *\n * Get AnyAPI SEO keyword metrics including search volume, CPC, competition, difficulty, and search intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per keyword (maximum $0.1276).\n *\n * @example\n * const res = await client.seo.keywordOverview({ keywords: [\"project management software\"], language: \"en\", location: 2840 });\n */\n keywordOverview(\n input: SeoKeywordOverviewInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoKeywordOverviewData>> {\n return this._core.run(\"seo.keyword_overview\", input, options);\n }\n\n /**\n * SEO Keyword Suggestions\n *\n * Find AnyAPI SEO keyword suggestions from a seed term with volume, CPC, competition, difficulty, and intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.keywordSuggestions({ keyword: \"project management software\", language: \"en\", limit: 5, location: 2840 });\n */\n keywordSuggestions(\n input: SeoKeywordSuggestionsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoKeywordSuggestionsData>> {\n return this._core.run(\"seo.keyword_suggestions\", input, options);\n }\n\n /**\n * SEO Local Pack\n *\n * Search AnyAPI SEO local pack results with rankings, ratings, addresses, and contact basics as normalized JSON.\n *\n * Price: $0.0026 per request plus $0 per result (maximum $0.0026).\n *\n * @example\n * const res = await client.seo.localPack({ keyword: \"coffee shop\", language: \"en\", limit: 5, location: \"New York,New York,United States\" });\n */\n localPack(\n input: SeoLocalPackInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoLocalPackData>> {\n return this._core.run(\"seo.local_pack\", input, options);\n }\n\n /**\n * SEO Ranked Keywords\n *\n * Get AnyAPI SEO ranked keywords for a domain with rankings, traffic estimates, volume, CPC, difficulty, and intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.rankedKeywords({ target: \"github.com\", language: \"en\", limit: 10, location: 2840 });\n */\n rankedKeywords(\n input: SeoRankedKeywordsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoRankedKeywordsData>> {\n return this._core.run(\"seo.ranked_keywords\", input, options);\n }\n\n /**\n * SEO Related Keywords\n *\n * Find AnyAPI SEO related keywords from a seed term with volume, CPC, competition, difficulty, and intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per result (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.relatedKeywords({ keyword: \"project management software\", language: \"en\", limit: 5, location: 2840 });\n */\n relatedKeywords(\n input: SeoRelatedKeywordsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoRelatedKeywordsData>> {\n return this._core.run(\"seo.related_keywords\", input, options);\n }\n\n /**\n * SEO Search Intent\n *\n * Classify AnyAPI SEO keyword search intent as normalized JSON.\n *\n * Price: $0.0156 per request plus $0.00016 per keyword (maximum $0.1756).\n *\n * @example\n * const res = await client.seo.searchIntent({ keywords: [\"seo tools\"], language: \"en\" });\n */\n searchIntent(\n input: SeoSearchIntentInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoSearchIntentData>> {\n return this._core.run(\"seo.search_intent\", input, options);\n }\n\n /**\n * SEO Search Volume\n *\n * Get AnyAPI SEO keyword search volume, CPC, competition, bid estimates, and monthly history as normalized JSON.\n *\n * Price: $0.117 per request plus $0 per result (maximum $0.117).\n *\n * @example\n * const res = await client.seo.searchVolume({ keywords: [\"seo tools\"], language: \"en\", location: 2840 });\n */\n searchVolume(\n input: SeoSearchVolumeInput,\n options?: RequestOptions,\n ): Promise<RunResult<SeoSearchVolumeData>> {\n return this._core.run(\"seo.search_volume\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Snapchat Profile (snapchat.profile).\n */\nexport interface SnapchatProfileInput {\n /**\n * The Snapchat username or profile URL to look up (e.g. fcbarcelona or https://www.snapchat.com/add/fcbarcelona).\n */\n username: string;\n}\n\nexport interface SnapchatProfileItem {\n /**\n * The profile's public bio / description text. Empty when the profile has none.\n */\n bio?: string;\n /**\n * The profile's category (e.g. \"Government Org\"). Empty when the upstream omits it.\n */\n category?: string;\n /**\n * The profile's public display name. Populated whenever the provider has data for the entity.\n */\n displayName: string;\n /**\n * The profile's Snapchat username (add-me handle). Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * URL of the profile avatar image, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * Recent public stories on the profile.\n */\n stories?: SnapchatProfileStorie[];\n /**\n * Public subscriber count.\n */\n subscribers?: number;\n /**\n * Canonical public profile URL, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The profile's linked website URL. Empty when the profile has none.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\nexport interface SnapchatProfileStorie {\n /**\n * Story identifier.\n */\n id?: string;\n /**\n * Story title. Empty when the story has no title.\n */\n storyTitle?: string;\n /**\n * Story thumbnail image URL, with tracking query params stripped.\n */\n thumbnailUrl?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Snapchat Profile (snapchat.profile).\n */\nexport interface SnapchatProfileData {\n /**\n * Profile record for the requested Snapchat username (one item). Populated whenever the provider has data for the entity.\n */\n items: SnapchatProfileItem[];\n}\n\n/**\n * Typed methods for the snapchat platform. Attached to the AnyAPI client as\n * `client.snapchat`.\n */\nexport class SnapchatNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Snapchat Profile\n *\n * Fetch a Snapchat user's public profile by username: display name, bio, subscriber count, and recent public content.\n *\n * Price: $0.001 per request plus $0.002 per result (maximum $0.003).\n *\n * @example\n * const res = await client.snapchat.profile({ username: \"nasa\" });\n */\n profile(\n input: SnapchatProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<SnapchatProfileData>> {\n return this._core.run(\"snapchat.profile\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Social Profile Finder (social.finder).\n */\nexport interface SocialFinderInput {\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * The profile name or handle to search for across social networks (e.g. johndoe).\n */\n name: string;\n /**\n * Limit the search to one network: askfm, discord, facebook, github, instagram, linkedin, medium, pinterest, steam, threads, tiktok, twitch, or youtube (e.g. instagram); all networks are searched when omitted.\n */\n platform?: string;\n}\n\nexport interface SocialFinderItem {\n /**\n * The name that was searched for. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n inputProfileName?: string;\n /**\n * The social network checked (e.g. discord, facebook, github). Populated whenever the provider has data for the entity.\n */\n social: string;\n /**\n * URL of the matching profile, or null when no account was found on that network.\n */\n socialProfileUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Social Profile Finder (social.finder).\n */\nexport interface SocialFinderData {\n /**\n * Profile match records: the queried profile name, the social network, and the matching profile URL when one was found. Populated whenever the provider has data for the entity.\n */\n items: SocialFinderItem[];\n}\n\n/**\n * Typed methods for the social platform. Attached to the AnyAPI client as\n * `client.social`.\n */\nexport class SocialNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Social Profile Finder\n *\n * Find a person's or brand's profiles across major social networks from a single name, returned as normalized JSON.\n *\n * Price: $0.001 per request plus $0.002 per result (maximum $0.021).\n *\n * @example\n * const res = await client.social.finder({ name: \"Elon Musk\", limit: 3 });\n */\n finder(\n input: SocialFinderInput,\n options?: RequestOptions,\n ): Promise<RunResult<SocialFinderData>> {\n return this._core.run(\"social.finder\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Spotify Album (spotify.album).\n */\nexport interface SpotifyAlbumInput {\n /**\n * Spotify album ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify album URL (e.g. https://open.spotify.com/album/0pgrg7phBbnwGJ2HBEl9EG).\n */\n url?: string;\n}\n\nexport interface SpotifyAlbumTrack {\n durationMs: number;\n name: string;\n playcount: number;\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Album (spotify.album).\n */\nexport interface SpotifyAlbumData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n label: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n popularity: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n releaseDate: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n tracks: SpotifyAlbumTrack[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n}\n\n/**\n * Input for Spotify Artist (spotify.artist).\n */\nexport interface SpotifyArtistInput {\n /**\n * Spotify artist ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify artist URL (e.g. https://open.spotify.com/artist/3DiDSECUqqY1AuBP8qtaIa).\n */\n url?: string;\n}\n\nexport interface SpotifyArtistAlbum {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n trackCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n year: number;\n [extra: string]: unknown;\n}\n\nexport interface SpotifyArtistTopTrack {\n id: string;\n name: string;\n playcount: number;\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Artist (spotify.artist).\n */\nexport interface SpotifyArtistData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n albums: SpotifyArtistAlbum[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n topTracks: SpotifyArtistTopTrack[];\n}\n\n/**\n * Input for Spotify Play Count (spotify.play_count).\n */\nexport interface SpotifyPlayCountInput {\n /**\n * Spotify track, album, or artist URL to fetch stream counts for (e.g. https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp).\n */\n url: string;\n}\n\nexport interface SpotifyPlayCountItem {\n /**\n * Name of the album the track belongs to. Empty when the upstream omits it.\n */\n albumName?: string;\n /**\n * Name of the primary artist. Empty when the upstream omits it.\n */\n artistName?: string;\n /**\n * Track duration in milliseconds.\n */\n durationMs?: number;\n /**\n * The Spotify entity ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * The track (or entity) name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Total number of streams/plays for the track. Populated whenever the provider has data for the entity.\n */\n playCount: number;\n /**\n * The Spotify entity type (e.g. \"track\").\n */\n type?: string;\n /**\n * Canonical open.spotify.com URL for the entity, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Play Count (spotify.play_count).\n */\nexport interface SpotifyPlayCountData {\n /**\n * Play-count records for the requested Spotify entity (one per track). Populated whenever the provider has data for the entity.\n */\n items: SpotifyPlayCountItem[];\n}\n\n/**\n * Input for Spotify Podcast (spotify.podcast).\n */\nexport interface SpotifyPodcastInput {\n /**\n * Spotify podcast show ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify podcast show URL (e.g. https://open.spotify.com/show/3mliji9352UAk3XnWElnDV).\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Spotify Podcast (spotify.podcast).\n */\nexport interface SpotifyPodcastData {\n averageRating: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publisher: string;\n totalRatings: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Spotify Podcast Episodes (spotify.podcast_episodes).\n */\nexport interface SpotifyPodcastEpisodesInput {\n /**\n * Pagination cursor from a previous response for subsequent pages.\n */\n cursor?: string;\n /**\n * Spotify podcast show ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify podcast show URL (e.g. https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk).\n */\n url?: string;\n}\n\nexport interface SpotifyPodcastEpisodesEpisode {\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n durationMs: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n releaseDate: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Podcast Episodes (spotify.podcast_episodes).\n */\nexport interface SpotifyPodcastEpisodesData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n episodes: SpotifyPodcastEpisodesEpisode[];\n nextCursor: string;\n totalCount: number;\n}\n\n/**\n * Input for Spotify Search (spotify.search).\n */\nexport interface SpotifySearchInput {\n /**\n * Search term (e.g. \"my first million\").\n */\n query: string;\n}\n\nexport interface SpotifySearchAlbum {\n id: string;\n name: string;\n uri: string;\n year: number;\n [extra: string]: unknown;\n}\n\nexport interface SpotifySearchArtist {\n id: string;\n name: string;\n uri: string;\n verified: boolean;\n [extra: string]: unknown;\n}\n\nexport interface SpotifySearchPodcast {\n id: string;\n name: string;\n publisher: string;\n [extra: string]: unknown;\n}\n\nexport interface SpotifySearchTrack {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Spotify Search (spotify.search).\n */\nexport interface SpotifySearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n albums: SpotifySearchAlbum[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n artists: SpotifySearchArtist[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n podcasts: SpotifySearchPodcast[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n tracks: SpotifySearchTrack[];\n}\n\n/**\n * Input for Spotify Track (spotify.track).\n */\nexport interface SpotifyTrackInput {\n /**\n * Spotify track ID (alternative to url).\n */\n id?: string;\n /**\n * Spotify track URL (e.g. https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT).\n */\n url?: string;\n}\n\n/**\n * The `data` payload of Spotify Track (spotify.track).\n */\nexport interface SpotifyTrackData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n durationMs: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n name: string;\n playcount: number;\n popularity: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shareUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n trackNumber: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n uri: string;\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the spotify platform. Attached to the AnyAPI client as\n * `client.spotify`.\n */\nexport class SpotifyNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Spotify Album\n *\n * Fetch a Spotify album's tracklist, play counts, label, and release details by album URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.album({ url: \"https://open.spotify.com/album/0pgrg7phBbnwGJ2HBEl9EG\" });\n */\n album(\n input: SpotifyAlbumInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyAlbumData>> {\n return this._core.run(\"spotify.album\", input, options);\n }\n\n /**\n * Spotify Artist\n *\n * Fetch a Spotify artist's discography (albums, singles, top tracks) and metadata by artist URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.artist({ url: \"https://open.spotify.com/artist/3DiDSECUqqY1AuBP8qtaIa\" });\n */\n artist(\n input: SpotifyArtistInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyArtistData>> {\n return this._core.run(\"spotify.artist\", input, options);\n }\n\n /**\n * Spotify Play Count\n *\n * Fetch stream counts and stats for a Spotify track, album, or artist URL.\n *\n * Price: $0 per request plus $0.003 per result (maximum $0.003).\n *\n * @example\n * const res = await client.spotify.playCount({ url: \"https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT\" });\n */\n playCount(\n input: SpotifyPlayCountInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyPlayCountData>> {\n return this._core.run(\"spotify.play_count\", input, options);\n }\n\n /**\n * Spotify Podcast\n *\n * Fetch a Spotify podcast show's name, publisher, description, rating, and topics by show URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.podcast({ url: \"https://open.spotify.com/show/3mliji9352UAk3XnWElnDV\" });\n */\n podcast(\n input: SpotifyPodcastInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyPodcastData>> {\n return this._core.run(\"spotify.podcast\", input, options);\n }\n\n /**\n * Spotify Podcast Episodes\n *\n * List a Spotify podcast show's episodes with titles, durations, descriptions, and release dates by show URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.podcastEpisodes({ url: \"https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk\" });\n */\n podcastEpisodes(\n input: SpotifyPodcastEpisodesInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyPodcastEpisodesData>> {\n return this._core.run(\"spotify.podcast_episodes\", input, options);\n }\n\n /**\n * Iterate every result of Spotify Podcast Episodes across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterPodcastEpisodes(\n input: SpotifyPodcastEpisodesInput,\n options?: RequestOptions,\n ): Paginator<\n SpotifyPodcastEpisodesEpisode,\n RunResult<SpotifyPodcastEpisodesData>\n > {\n return paginate<\n SpotifyPodcastEpisodesEpisode,\n RunResult<SpotifyPodcastEpisodesData>\n >(\n this._core,\n \"spotify.podcast_episodes\",\n input as unknown as Record<string, unknown>,\n \"episodes\",\n false,\n options,\n );\n }\n\n /**\n * Spotify Search\n *\n * Search Spotify for matching tracks, albums, artists, podcasts, and playlists by keyword.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.search({ query: \"my first million\" });\n */\n search(\n input: SpotifySearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifySearchData>> {\n return this._core.run(\"spotify.search\", input, options);\n }\n\n /**\n * Spotify Track\n *\n * Fetch a Spotify track's play count, popularity, duration, and album details by track URL or ID.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.spotify.track({ url: \"https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT\" });\n */\n track(\n input: SpotifyTrackInput,\n options?: RequestOptions,\n ): Promise<RunResult<SpotifyTrackData>> {\n return this._core.run(\"spotify.track\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Substack Posts (substack.posts).\n */\nexport interface SubstackPostsInput {\n /**\n * Restrict to a single post type, or 'all' (e.g. newsletter).\n * One of: all, newsletter, podcast, thread.\n * Default: all.\n */\n contentType?: \"all\" | \"newsletter\" | \"podcast\" | \"thread\";\n /**\n * Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2024-12-31). Applied within the most recent 'limit' posts scanned.\n */\n endDate?: string;\n /**\n * Include the full article body as HTML. Set false for metadata only (e.g. false).\n * Default: true.\n */\n includeContent?: boolean;\n /**\n * Maximum number of recent posts to return when given a publication URL (1-100, default 25); ignored for a single post URL, which always returns that one post. You are billed per post returned, so a lower limit costs less.\n * Range: minimum 1, maximum 100.\n */\n limit?: number;\n /**\n * Return only free (non-paywalled) posts (e.g. true).\n * Default: false.\n */\n onlyFree?: boolean;\n /**\n * Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2024-01-01). Applied within the most recent 'limit' posts scanned, so raise 'limit' to reach older date ranges.\n */\n startDate?: string;\n /**\n * Either a Substack publication URL / custom domain to fetch its recent posts (e.g. https://www.astralcodexten.com), OR a single post URL to fetch just that one article with full content (e.g. https://www.astralcodexten.com/p/your-book-review).\n */\n url: string;\n}\n\nexport interface SubstackPostsItem {\n /**\n * Handle of the post author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorHandle?: string;\n /**\n * Display name of the post author. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Number of comments on the post.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Post description or article HTML/summary. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * Cover image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Whether the post is behind a paywall.\n */\n isPaid?: boolean;\n /**\n * Substack post identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n postId?: string;\n /**\n * Post type (e.g. newsletter, podcast, thread). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n postType?: string;\n /**\n * Number of reactions on the post.\n */\n reactionCount?: number;\n /**\n * Post subtitle or deck. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n subtitle?: string;\n /**\n * Post title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical post URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Approximate word count of the article.\n */\n wordcount?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Substack Posts (substack.posts).\n */\nexport interface SubstackPostsData {\n /**\n * Post records: title, subtitle, URL, publish date, paywall status, word count, engagement (reactions, comments, restacks), author profile, publication info, and full article HTML when requested. Populated whenever the provider has data for the entity.\n */\n items: SubstackPostsItem[];\n}\n\n/**\n * Typed methods for the substack platform. Attached to the AnyAPI client as\n * `client.substack`.\n */\nexport class SubstackNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Substack Posts\n *\n * Pull posts from any Substack publication by its URL, or pass a single post URL (…/p/slug) to fetch just that one article. Returns title, subtitle, publish date, paywall status, word count, engagement (reactions, comments, restacks), author profile, and full article HTML.\n *\n * Price: $0.005 per request plus $0.00156 per result (maximum $0.161).\n *\n * @example\n * const res = await client.substack.posts({ url: \"https://www.astralcodexten.com\", limit: 3 });\n */\n posts(\n input: SubstackPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<SubstackPostsData>> {\n return this._core.run(\"substack.posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Threads Post (threads.post).\n */\nexport interface ThreadsPostInput {\n /**\n * The full URL of the Threads post to fetch (e.g. https://www.threads.com/@zuck/post/C8yKXdRxKqK).\n */\n url: string;\n}\n\n/**\n * The `data` payload of Threads Post (threads.post).\n */\nexport interface ThreadsPostData {\n /**\n * Threads post shortcode.\n */\n code: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Display name of the author. Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likeCount: number;\n /**\n * Number of quote posts.\n */\n quoteCount: number;\n /**\n * Number of replies to the post.\n */\n replyCount: number;\n /**\n * Number of reposts of the post.\n */\n repostCount: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Username of the author. Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Threads Profile (threads.profile).\n */\nexport interface ThreadsProfileInput {\n /**\n * The Threads username to look up, without the @ prefix (e.g. zuck).\n */\n username: string;\n}\n\n/**\n * The `data` payload of Threads Profile (threads.profile).\n */\nexport interface ThreadsProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n biography: string;\n followerCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isPrivate: boolean;\n isVerified: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n profilePicUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Threads Search (threads.search).\n */\nexport interface ThreadsSearchInput {\n /**\n * Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents).\n */\n query: string;\n}\n\nexport interface ThreadsSearchPost {\n /**\n * Threads post shortcode.\n */\n code: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Display name of the author. Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likeCount: number;\n /**\n * Number of replies to the post.\n */\n replyCount: number;\n /**\n * Number of reposts of the post.\n */\n repostCount: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Username of the author. Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Threads Search (threads.search).\n */\nexport interface ThreadsSearchData {\n /**\n * Matching public post records: text, author, engagement counts, timestamp, and URL. Populated whenever the provider has data for the entity.\n */\n posts: ThreadsSearchPost[];\n}\n\n/**\n * Input for Threads User Search (threads.search_users).\n */\nexport interface ThreadsSearchUsersInput {\n /**\n * The name or username to search Threads users for.\n */\n query: string;\n}\n\nexport interface ThreadsSearchUsersUser {\n /**\n * Populated whenever the provider has data for the entity.\n */\n fullName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isVerified: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n profilePicUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Threads User Search (threads.search_users).\n */\nexport interface ThreadsSearchUsersData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n users: ThreadsSearchUsersUser[];\n}\n\n/**\n * Input for Threads User Posts (threads.user_posts).\n */\nexport interface ThreadsUserPostsInput {\n /**\n * The Threads username to list posts for, without the @ prefix.\n */\n handle: string;\n}\n\nexport interface ThreadsUserPostsPost {\n /**\n * Threads post shortcode.\n */\n code: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likeCount: number;\n /**\n * Number of quote posts.\n */\n quoteCount: number;\n /**\n * Number of replies to the post.\n */\n replyCount: number;\n /**\n * Number of reposts of the post.\n */\n repostCount: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Username of the author. Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Threads User Posts (threads.user_posts).\n */\nexport interface ThreadsUserPostsData {\n /**\n * The user's recent posts. Populated whenever the provider has data for the entity.\n */\n posts: ThreadsUserPostsPost[];\n}\n\n/**\n * Typed methods for the threads platform. Attached to the AnyAPI client as\n * `client.threads`.\n */\nexport class ThreadsNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Threads Post\n *\n * Fetch a single Threads post by URL: text, author, engagement counts, and timestamp.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.post({ url: \"https://www.threads.com/@aaronparnas/post/DZxPYVFkYSq\" });\n */\n post(\n input: ThreadsPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsPostData>> {\n return this._core.run(\"threads.post\", input, options);\n }\n\n /**\n * Threads Profile\n *\n * Fetch a Threads user's public profile (bio, follower count, verification, profile picture) by username.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.profile({ username: \"zuck\" });\n */\n profile(\n input: ThreadsProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsProfileData>> {\n return this._core.run(\"threads.profile\", input, options);\n }\n\n /**\n * Threads Search\n *\n * Search public Threads posts by keyword or hashtag and get normalized post records: text, author, and engagement.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.search({ query: \"trump\" });\n */\n search(\n input: ThreadsSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsSearchData>> {\n return this._core.run(\"threads.search\", input, options);\n }\n\n /**\n * Threads User Search\n *\n * Search Threads users by name or username and get normalized profile records: username, full name, verification, and picture.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.searchUsers({ query: \"shams\" });\n */\n searchUsers(\n input: ThreadsSearchUsersInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsSearchUsersData>> {\n return this._core.run(\"threads.search_users\", input, options);\n }\n\n /**\n * Threads User Posts\n *\n * List a Threads user's recent public posts by username: text, engagement counts, and post URLs.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.threads.userPosts({ handle: \"trendspider\" });\n */\n userPosts(\n input: ThreadsUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<ThreadsUserPostsData>> {\n return this._core.run(\"threads.user_posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for TikTok Ad Library Ad (tiktok.ad_library_ad).\n */\nexport interface TiktokAdLibraryAdInput {\n /**\n * TikTok Top Ads material/ad ID, or a Top Ads detail URL (e.g. 7648493525660270600).\n */\n adId: string;\n}\n\n/**\n * The `data` payload of TikTok Ad Library Ad (tiktok.ad_library_ad).\n */\nexport interface TiktokAdLibraryAdData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n adTitle: string;\n brandName: string;\n comments: number;\n cost: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n ctr: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n industry: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n landingPage: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n objective: string;\n shares: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videoUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Ad Library Search (tiktok.ad_library_search).\n */\nexport interface TiktokAdLibrarySearchInput {\n /**\n * Ad format filter.\n * One of: spark_ads, non_spark_ads.\n */\n adFormat?: \"spark_ads\" | \"non_spark_ads\";\n /**\n * Ad language filter.\n * One of: en, es, ar, vi, th, de, id, pt, fr, ms, nl, ja, it, ro, zh-Hant, ko.\n */\n adLanguage?:\n | \"en\"\n | \"es\"\n | \"ar\"\n | \"vi\"\n | \"th\"\n | \"de\"\n | \"id\"\n | \"pt\"\n | \"fr\"\n | \"ms\"\n | \"nl\"\n | \"ja\"\n | \"it\"\n | \"ro\"\n | \"zh-Hant\"\n | \"ko\";\n /**\n * Filter to a specific advertiser by name (searches the public TikTok Ads Library by advertiser).\n */\n advertiserName?: string;\n /**\n * Page number for pagination (defaults to 1).\n */\n cursor?: string;\n /**\n * Video duration bucket filter.\n * One of: under_10s, 10_20s, 20_30s, 30_40s, 40_50s, over_50s.\n */\n duration?:\n \"under_10s\" | \"10_20s\" | \"20_30s\" | \"30_40s\" | \"40_50s\" | \"over_50s\";\n /**\n * Advertiser industry filter.\n * One of: apparel_accessories, appliances, apps, baby_kids_maternity, beauty_personal_care, business_services, ecommerce_non_app, education, financial_services, food_beverage, games, health, home_improvement, household_products, life_services, news_entertainment, pets, sports_outdoor, tech_electronics, travel, vehicle_transportation.\n */\n industry?:\n | \"apparel_accessories\"\n | \"appliances\"\n | \"apps\"\n | \"baby_kids_maternity\"\n | \"beauty_personal_care\"\n | \"business_services\"\n | \"ecommerce_non_app\"\n | \"education\"\n | \"financial_services\"\n | \"food_beverage\"\n | \"games\"\n | \"health\"\n | \"home_improvement\"\n | \"household_products\"\n | \"life_services\"\n | \"news_entertainment\"\n | \"pets\"\n | \"sports_outdoor\"\n | \"tech_electronics\"\n | \"travel\"\n | \"vehicle_transportation\";\n /**\n * Likes percentile bucket filter (top_1_20 is the top-performing 20 percent).\n * One of: top_1_20, top_21_40, top_41_60, top_61_80, top_81_100.\n */\n likes?: \"top_1_20\" | \"top_21_40\" | \"top_41_60\" | \"top_61_80\" | \"top_81_100\";\n /**\n * Results per page, max 50 (defaults to 20).\n */\n limit?: string;\n /**\n * Campaign objective filter.\n * One of: app_installs, conversions, lead_generation, product_sales, reach, traffic, video_views.\n */\n objective?:\n | \"app_installs\"\n | \"conversions\"\n | \"lead_generation\"\n | \"product_sales\"\n | \"reach\"\n | \"traffic\"\n | \"video_views\";\n /**\n * Sort metric: for_you, impression, play_2s_rate, play_6s_rate, cvr, ctr, or like.\n */\n orderBy?: string;\n /**\n * Time window for top ads: 7, 30, or 180 days.\n */\n period?: string;\n /**\n * Keyword to search ad titles and content (e.g. spotify).\n */\n query: string;\n /**\n * Country code (defaults to US).\n */\n region?: string;\n}\n\nexport interface TiktokAdLibrarySearchAd {\n /**\n * Populated whenever the provider has data for the entity.\n */\n adId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n adTitle: string;\n brandName: string;\n cost: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n ctr: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n industry: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n objective: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videoUrl: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Ad Library Search (tiktok.ad_library_search).\n */\nexport interface TiktokAdLibrarySearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n ads: TiktokAdLibrarySearchAd[];\n hasMore: boolean;\n nextCursor: string;\n total: number;\n}\n\n/**\n * Input for TikTok Audience Demographics (tiktok.audience_demographics).\n */\nexport interface TiktokAudienceDemographicsInput {\n /**\n * TikTok username without the leading @ (e.g. \"shakira\").\n */\n handle: string;\n}\n\nexport interface TiktokAudienceDemographicsAudienceLocation {\n count: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n country: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n countryCode: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n percentage: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Audience Demographics (tiktok.audience_demographics).\n */\nexport interface TiktokAudienceDemographicsData {\n audienceLocations: TiktokAudienceDemographicsAudienceLocation[];\n}\n\n/**\n * Input for TikTok Comment Replies (tiktok.comment_replies).\n */\nexport interface TiktokCommentRepliesInput {\n /**\n * TikTok comment ID (the comment's cid from the comments endpoint).\n */\n commentId: string;\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * TikTok video URL the comment belongs to.\n */\n url: string;\n}\n\nexport interface TiktokCommentRepliesComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Comment Replies (tiktok.comment_replies).\n */\nexport interface TiktokCommentRepliesData {\n comments: TiktokCommentRepliesComment[];\n nextCursor: string;\n}\n\n/**\n * Input for TikTok Followers (tiktok.followers).\n */\nexport interface TiktokFollowersInput {\n /**\n * Pagination cursor from a previous response's nextCursor, to fetch the next page of followers.\n */\n cursor?: string;\n /**\n * TikTok username whose followers to list, without the @ prefix (e.g. stoolpresidente).\n */\n handle: string;\n}\n\nexport interface TiktokFollowersFollower {\n avatarUrl: string;\n followerCount: number;\n followingCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n nickname: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Followers (tiktok.followers).\n */\nexport interface TiktokFollowersData {\n followers: TiktokFollowersFollower[];\n nextCursor: string;\n total: number;\n}\n\n/**\n * Input for TikTok Following (tiktok.following).\n */\nexport interface TiktokFollowingInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * TikTok username without the leading @ (e.g. \"stoolpresidente\").\n */\n handle: string;\n}\n\nexport interface TiktokFollowingFollowing {\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n videos: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Following (tiktok.following).\n */\nexport interface TiktokFollowingData {\n following: TiktokFollowingFollowing[];\n}\n\n/**\n * Input for TikTok Hashtag Videos (tiktok.hashtag_videos).\n */\nexport interface TiktokHashtagVideosInput {\n /**\n * TikTok hashtag to fetch videos for, without the # prefix (e.g. booktok).\n */\n hashtag: string;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n}\n\nexport interface TiktokHashtagVideosItem {\n /**\n * Username of the video's creator, without the @ prefix. Empty when the upstream omits it.\n */\n authorHandle?: string;\n /**\n * Number of comments on the video.\n */\n commentCount?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * The video's numeric TikTok ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the video's cover/thumbnail image, with tracking query params stripped. Empty when the upstream omits it.\n */\n image?: string;\n /**\n * Number of likes on the video.\n */\n likeCount?: number;\n /**\n * Number of views/plays of the video.\n */\n playCount?: number;\n /**\n * Number of shares of the video.\n */\n shareCount?: number;\n /**\n * The video caption text. Empty for videos with no caption.\n */\n text?: string;\n /**\n * Canonical tiktok.com URL of the video, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Hashtag Videos (tiktok.hashtag_videos).\n */\nexport interface TiktokHashtagVideosData {\n /**\n * Recent TikTok video records for the hashtag. Populated whenever the provider has data for the entity.\n */\n items: TiktokHashtagVideosItem[];\n}\n\n/**\n * Input for TikTok Live (tiktok.live).\n */\nexport interface TiktokLiveInput {\n /**\n * TikTok username without the leading @ (e.g. \"thejustalex\").\n */\n handle: string;\n}\n\n/**\n * The `data` payload of TikTok Live (tiktok.live).\n */\nexport interface TiktokLiveData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n enterCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n roomId: string;\n startTime: number;\n status: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n viewers: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Profile (tiktok.profile).\n */\nexport interface TiktokProfileInput {\n /**\n * TikTok username without the leading @ (e.g. \"stoolpresidente\").\n */\n handle: string;\n}\n\n/**\n * The `data` payload of TikTok Profile (tiktok.profile).\n */\nexport interface TiktokProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n likes: number;\n verified: boolean;\n videos: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Profile Region (tiktok.profile_region).\n */\nexport interface TiktokProfileRegionInput {\n /**\n * TikTok username without the leading @ (e.g. \"stoolpresidente\").\n */\n handle: string;\n}\n\n/**\n * The `data` payload of TikTok Profile Region (tiktok.profile_region).\n */\nexport interface TiktokProfileRegionData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n profileUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Profile Videos (tiktok.profile_videos).\n */\nexport interface TiktokProfileVideosInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * TikTok username without the leading @.\n */\n handle: string;\n}\n\nexport interface TiktokProfileVideosVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the video's cover/thumbnail image. A signed, short-lived TikTok CDN URL (typically expires within about a day; query params are load-bearing and kept intact), often served as HEIC rather than JPEG, so fetch it promptly and transcode if you need broad browser support. Absent when the upstream provides no cover.\n */\n image?: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Profile Videos (tiktok.profile_videos).\n */\nexport interface TiktokProfileVideosData {\n nextCursor: string;\n videos: TiktokProfileVideosVideo[];\n}\n\n/**\n * Input for TikTok Hashtag Search (tiktok.search_hashtag).\n */\nexport interface TiktokSearchHashtagInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Hashtag or keyword to search for (without the leading #).\n */\n query: string;\n}\n\nexport interface TiktokSearchHashtagVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n shares: number;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Hashtag Search (tiktok.search_hashtag).\n */\nexport interface TiktokSearchHashtagData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: TiktokSearchHashtagVideo[];\n}\n\n/**\n * Input for TikTok Keyword Search (tiktok.search_keyword).\n */\nexport interface TiktokSearchKeywordInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Time frame filter (e.g. 0=any, 1=past 24h, 7=past week).\n */\n datePosted?: string;\n /**\n * The keyword to search TikTok for.\n */\n query: string;\n /**\n * Sort order (e.g. 0=relevance, 1=most liked).\n */\n sortBy?: string;\n}\n\nexport interface TiktokSearchKeywordVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n region: string;\n shares: number;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Keyword Search (tiktok.search_keyword).\n */\nexport interface TiktokSearchKeywordData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: TiktokSearchKeywordVideo[];\n}\n\n/**\n * Input for TikTok Top Search (tiktok.search_top).\n */\nexport interface TiktokSearchTopInput {\n /**\n * Pagination cursor from a previous response.\n */\n cursor?: string;\n /**\n * Time-frame filter: yesterday, this-week, this-month, last-3-months, last-6-months, all-time.\n */\n publishTime?: string;\n /**\n * Keyword to search for (e.g. \"funny\").\n */\n query: string;\n /**\n * 2-letter country code for the proxy location (e.g. US, GB, FR).\n */\n region?: string;\n /**\n * Sort order: relevance, most-liked, date-posted.\n */\n sortBy?: string;\n}\n\nexport interface TiktokSearchTopItem {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n contentType: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n shares: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Top Search (tiktok.search_top).\n */\nexport interface TiktokSearchTopData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n items: TiktokSearchTopItem[];\n nextCursor: string;\n}\n\n/**\n * Input for TikTok User Search (tiktok.search_users).\n */\nexport interface TiktokSearchUsersInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * The keyword to search TikTok accounts for.\n */\n query: string;\n}\n\nexport interface TiktokSearchUsersUser {\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n nickname: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n userId: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok User Search (tiktok.search_users).\n */\nexport interface TiktokSearchUsersData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n users: TiktokSearchUsersUser[];\n}\n\n/**\n * Input for TikTok Song (tiktok.song).\n */\nexport interface TiktokSongInput {\n /**\n * The clip identifier for the song, found in TikTok music URLs (e.g. 7439295283975702544).\n */\n clipId: string;\n}\n\n/**\n * The `data` payload of TikTok Song (tiktok.song).\n */\nexport interface TiktokSongData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n album: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n coverUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n duration: number;\n isOriginal: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shareUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n songId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n videoCount: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Song Videos (tiktok.song_videos).\n */\nexport interface TiktokSongVideosInput {\n /**\n * The song ID found in TikTok music URLs (e.g. 7439295283975702544).\n */\n clipId: string;\n /**\n * Pagination cursor for retrieving the next page of results.\n */\n cursor?: string;\n}\n\nexport interface TiktokSongVideosVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorHandle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorName: string;\n commentCount: number;\n createTime: number;\n description: string;\n likeCount: number;\n playCount: number;\n shareCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videoId: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Song Videos (tiktok.song_videos).\n */\nexport interface TiktokSongVideosData {\n hasMore: number;\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: TiktokSongVideosVideo[];\n}\n\n/**\n * Input for TikTok Trending Feed (tiktok.trending_feed).\n */\nexport interface TiktokTrendingFeedInput {\n /**\n * 2-letter country code for the proxy location (e.g. \"US\").\n */\n region: string;\n /**\n * Set to true to return a simplified response.\n */\n trim?: string;\n}\n\nexport interface TiktokTrendingFeedVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n caption: string;\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n region: string;\n shares: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Trending Feed (tiktok.trending_feed).\n */\nexport interface TiktokTrendingFeedData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: TiktokTrendingFeedVideo[];\n}\n\n/**\n * Input for TikTok Video (tiktok.video).\n */\nexport interface TiktokVideoInput {\n /**\n * Full TikTok video URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of TikTok Video (tiktok.video).\n */\nexport interface TiktokVideoData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n caption: string;\n comments: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * URL of the video's cover/thumbnail image. A signed, short-lived TikTok CDN URL (typically expires within about a day; query params are load-bearing and kept intact), often served as HEIC rather than JPEG, so fetch it promptly and transcode if you need broad browser support. Absent when the upstream provides no cover.\n */\n image?: string;\n likes: number;\n region: string;\n saves: number;\n shares: number;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Video Comments (tiktok.video_comments).\n */\nexport interface TiktokVideoCommentsInput {\n /**\n * Pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Full TikTok video URL.\n */\n url: string;\n}\n\nexport interface TiktokVideoCommentsComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n replies: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Video Comments (tiktok.video_comments).\n */\nexport interface TiktokVideoCommentsData {\n comments: TiktokVideoCommentsComment[];\n nextCursor: string;\n}\n\n/**\n * Input for TikTok Video Transcript (tiktok.video_transcript).\n */\nexport interface TiktokVideoTranscriptInput {\n /**\n * Full TikTok video URL.\n */\n url: string;\n}\n\n/**\n * The `data` payload of TikTok Video Transcript (tiktok.video_transcript).\n */\nexport interface TiktokVideoTranscriptData {\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n transcript: string;\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the tiktok platform. Attached to the AnyAPI client as\n * `client.tiktok`.\n */\nexport class TiktokNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * TikTok Ad Library Ad\n *\n * Fetch full details for a single TikTok ad (brand, title, spend, CTR, objectives, landing page, and video info), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.adLibraryAd({ adId: \"7648493525660270600\" });\n */\n adLibraryAd(\n input: TiktokAdLibraryAdInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokAdLibraryAdData>> {\n return this._core.run(\"tiktok.ad_library_ad\", input, options);\n }\n\n /**\n * TikTok Ad Library Search\n *\n * Search TikTok's ad library by keyword (top ads with brand, title, spend, CTR, likes, and video info), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.adLibrarySearch({ query: \"spotify\", objective: \"conversions\" });\n */\n adLibrarySearch(\n input: TiktokAdLibrarySearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokAdLibrarySearchData>> {\n return this._core.run(\"tiktok.ad_library_search\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Ad Library Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterAdLibrarySearch(\n input: TiktokAdLibrarySearchInput,\n options?: RequestOptions,\n ): Paginator<TiktokAdLibrarySearchAd, RunResult<TiktokAdLibrarySearchData>> {\n return paginate<\n TiktokAdLibrarySearchAd,\n RunResult<TiktokAdLibrarySearchData>\n >(\n this._core,\n \"tiktok.ad_library_search\",\n input as unknown as Record<string, unknown>,\n \"ads\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Audience Demographics\n *\n * Get the audience country breakdown (follower count and share per country) for a TikTok creator by handle, normalized across providers.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.tiktok.audienceDemographics({ handle: \"shakira\" });\n */\n audienceDemographics(\n input: TiktokAudienceDemographicsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokAudienceDemographicsData>> {\n return this._core.run(\"tiktok.audience_demographics\", input, options);\n }\n\n /**\n * TikTok Comment Replies\n *\n * List the replies to a TikTok comment with cursor pagination (text, author, likes), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.commentReplies({ commentId: \"7623828115408274207\", url: \"https://www.tiktok.com/@stoolpresidente/video/7623818255903329566\" });\n */\n commentReplies(\n input: TiktokCommentRepliesInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokCommentRepliesData>> {\n return this._core.run(\"tiktok.comment_replies\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Comment Replies across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterCommentReplies(\n input: TiktokCommentRepliesInput,\n options?: RequestOptions,\n ): Paginator<\n TiktokCommentRepliesComment,\n RunResult<TiktokCommentRepliesData>\n > {\n return paginate<\n TiktokCommentRepliesComment,\n RunResult<TiktokCommentRepliesData>\n >(\n this._core,\n \"tiktok.comment_replies\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Followers\n *\n * List the followers of a TikTok account by username, returning each follower's profile basics.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.followers({ handle: \"stoolpresidente\" });\n */\n followers(\n input: TiktokFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokFollowersData>> {\n return this._core.run(\"tiktok.followers\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Followers across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowers(\n input: TiktokFollowersInput,\n options?: RequestOptions,\n ): Paginator<TiktokFollowersFollower, RunResult<TiktokFollowersData>> {\n return paginate<TiktokFollowersFollower, RunResult<TiktokFollowersData>>(\n this._core,\n \"tiktok.followers\",\n input as unknown as Record<string, unknown>,\n \"followers\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Following\n *\n * List the accounts a TikTok user follows (handle, display name, follower count, bio) by username, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.following({ handle: \"stoolpresidente\" });\n */\n following(\n input: TiktokFollowingInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokFollowingData>> {\n return this._core.run(\"tiktok.following\", input, options);\n }\n\n /**\n * TikTok Hashtag Videos\n *\n * List recent TikTok videos for a hashtag (creator, caption, views, likes, shares), normalized output.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.tiktok.hashtagVideos({ hashtag: \"cooking\", limit: 3 });\n */\n hashtagVideos(\n input: TiktokHashtagVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokHashtagVideosData>> {\n return this._core.run(\"tiktok.hashtag_videos\", input, options);\n }\n\n /**\n * TikTok Live\n *\n * Check whether a TikTok creator is live and get the current live room (title, viewers, start time) by handle, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.live({ handle: \"thejustalex\" });\n */\n live(\n input: TiktokLiveInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokLiveData>> {\n return this._core.run(\"tiktok.live\", input, options);\n }\n\n /**\n * TikTok Profile\n *\n * Fetch a TikTok creator's public profile (followers, likes, bio, verification) by handle, normalized across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.profile({ handle: \"zachking\" });\n */\n profile(\n input: TiktokProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokProfileData>> {\n return this._core.run(\"tiktok.profile\", input, options);\n }\n\n /**\n * TikTok Profile Region\n *\n * Resolve the home region (country) of a TikTok creator by handle, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.profileRegion({ handle: \"stoolpresidente\" });\n */\n profileRegion(\n input: TiktokProfileRegionInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokProfileRegionData>> {\n return this._core.run(\"tiktok.profile_region\", input, options);\n }\n\n /**\n * TikTok Profile Videos\n *\n * List a TikTok creator's recent videos (views, likes, comments) by handle with cursor pagination, normalized across providers.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.profileVideos({ handle: \"zachking\" });\n */\n profileVideos(\n input: TiktokProfileVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokProfileVideosData>> {\n return this._core.run(\"tiktok.profile_videos\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Profile Videos across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterProfileVideos(\n input: TiktokProfileVideosInput,\n options?: RequestOptions,\n ): Paginator<TiktokProfileVideosVideo, RunResult<TiktokProfileVideosData>> {\n return paginate<\n TiktokProfileVideosVideo,\n RunResult<TiktokProfileVideosData>\n >(\n this._core,\n \"tiktok.profile_videos\",\n input as unknown as Record<string, unknown>,\n \"videos\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Hashtag Search\n *\n * Search TikTok by hashtag and get matching videos (caption, views, likes, comments, shares) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.searchHashtag({ query: \"recipe\" });\n */\n searchHashtag(\n input: TiktokSearchHashtagInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSearchHashtagData>> {\n return this._core.run(\"tiktok.search_hashtag\", input, options);\n }\n\n /**\n * TikTok Keyword Search\n *\n * Search TikTok by keyword and get matching videos (caption, views, likes, comments, shares) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.searchKeyword({ query: \"cooking\" });\n */\n searchKeyword(\n input: TiktokSearchKeywordInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSearchKeywordData>> {\n return this._core.run(\"tiktok.search_keyword\", input, options);\n }\n\n /**\n * TikTok Top Search\n *\n * Search TikTok's top results for a keyword (caption, views, likes, comments, shares) with cursor pagination, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.searchTop({ query: \"funny\" });\n */\n searchTop(\n input: TiktokSearchTopInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSearchTopData>> {\n return this._core.run(\"tiktok.search_top\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Top Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchTop(\n input: TiktokSearchTopInput,\n options?: RequestOptions,\n ): Paginator<TiktokSearchTopItem, RunResult<TiktokSearchTopData>> {\n return paginate<TiktokSearchTopItem, RunResult<TiktokSearchTopData>>(\n this._core,\n \"tiktok.search_top\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * TikTok User Search\n *\n * Search TikTok accounts by keyword (handle, nickname, follower count) with cursor pagination, normalized across providers.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.searchUsers({ query: \"chef\" });\n */\n searchUsers(\n input: TiktokSearchUsersInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSearchUsersData>> {\n return this._core.run(\"tiktok.search_users\", input, options);\n }\n\n /**\n * Iterate every result of TikTok User Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchUsers(\n input: TiktokSearchUsersInput,\n options?: RequestOptions,\n ): Paginator<TiktokSearchUsersUser, RunResult<TiktokSearchUsersData>> {\n return paginate<TiktokSearchUsersUser, RunResult<TiktokSearchUsersData>>(\n this._core,\n \"tiktok.search_users\",\n input as unknown as Record<string, unknown>,\n \"users\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Song\n *\n * Fetch details for a TikTok song or sound (title, author, duration, cover art, and how many videos use it), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.song({ clipId: \"7439295283975702544\" });\n */\n song(\n input: TiktokSongInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSongData>> {\n return this._core.run(\"tiktok.song\", input, options);\n }\n\n /**\n * TikTok Song Videos\n *\n * List TikTok videos that use a given song or sound (with descriptions, authors, and engagement stats), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.songVideos({ clipId: \"7439295283975702544\" });\n */\n songVideos(\n input: TiktokSongVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokSongVideosData>> {\n return this._core.run(\"tiktok.song_videos\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Song Videos across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSongVideos(\n input: TiktokSongVideosInput,\n options?: RequestOptions,\n ): Paginator<TiktokSongVideosVideo, RunResult<TiktokSongVideosData>> {\n return paginate<TiktokSongVideosVideo, RunResult<TiktokSongVideosData>>(\n this._core,\n \"tiktok.song_videos\",\n input as unknown as Record<string, unknown>,\n \"videos\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Trending Feed\n *\n * Get TikTok's trending feed for a region (caption, views, likes, comments, author) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.trendingFeed({ region: \"US\" });\n */\n trendingFeed(\n input: TiktokTrendingFeedInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokTrendingFeedData>> {\n return this._core.run(\"tiktok.trending_feed\", input, options);\n }\n\n /**\n * TikTok Video\n *\n * Fetch a single TikTok video by URL with its caption and engagement counts (views, likes, comments, shares, saves), normalized across providers with transparent failover.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.tiktok.video({ url: \"https://www.tiktok.com/@mrbeast/video/7654638524729216287?_r=1&u_code=elgjf3ff8cajhk&preview_pb=0&sharer_language=en&_d=elh6737j6kjl71&share_item_id=7654638524729216287&source=h5_m\" });\n */\n video(\n input: TiktokVideoInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokVideoData>> {\n return this._core.run(\"tiktok.video\", input, options);\n }\n\n /**\n * TikTok Video Comments\n *\n * List the comments on a TikTok video by URL with cursor pagination (text, author, likes, reply count), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.videoComments({ url: \"https://www.tiktok.com/@zachking/video/7650468599424945422?_r=1&u_code=f0hj7d780760m9&preview_pb=0&sharer_language=en&_d=f0hj7blh067h71&share_item_id=7650468599424945422&source=h5_m\" });\n */\n videoComments(\n input: TiktokVideoCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokVideoCommentsData>> {\n return this._core.run(\"tiktok.video_comments\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Video Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterVideoComments(\n input: TiktokVideoCommentsInput,\n options?: RequestOptions,\n ): Paginator<TiktokVideoCommentsComment, RunResult<TiktokVideoCommentsData>> {\n return paginate<\n TiktokVideoCommentsComment,\n RunResult<TiktokVideoCommentsData>\n >(\n this._core,\n \"tiktok.video_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Video Transcript\n *\n * Fetch the spoken-word transcript of a TikTok video by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktok.videoTranscript({ url: \"https://www.tiktok.com/@washingtonpost/video/7609177768793787679\" });\n */\n videoTranscript(\n input: TiktokVideoTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokVideoTranscriptData>> {\n return this._core.run(\"tiktok.video_transcript\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for TikTok Shop Product (tiktok_shop.product).\n */\nexport interface TiktokShopProductInput {\n /**\n * Two-letter country code for the proxy location used to access region-specific products (e.g. US, GB, FR). Defaults to US.\n */\n region?: string;\n /**\n * TikTok Shop product detail page URL (e.g. https://www.tiktok.com/shop/pdp/.../1729587769570529799).\n */\n url: string;\n}\n\n/**\n * The `data` payload of TikTok Shop Product (tiktok_shop.product).\n */\nexport interface TiktokShopProductData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n currency: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n originalPrice: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n price: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n productId: string;\n rating: number;\n reviewCount: number;\n sellerLocation: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n sellerName: string;\n soldCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for TikTok Shop Product Reviews (tiktok_shop.product_reviews).\n */\nexport interface TiktokShopProductReviewsInput {\n /**\n * 1-based results page. Use with hasMore in the output to paginate.\n * Range: minimum 1.\n * Default: 1.\n */\n page?: number;\n /**\n * Two-letter country code of the product's shop region (e.g. US). Strongly recommended for correct results.\n */\n region?: string;\n /**\n * TikTok Shop product URL (e.g. https://www.tiktok.com/shop/pdp/.../1729385633899532161).\n */\n url: string;\n}\n\nexport interface TiktokShopProductReviewsReview {\n /**\n * Reviewer's country code.\n */\n country: string;\n /**\n * Review time as epoch milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Review identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Star rating for this review (1-5).\n */\n rating: number;\n /**\n * Display name of the reviewer. Populated whenever the provider has data for the entity.\n */\n reviewerName: string;\n /**\n * Variant bought, e.g. \"Color: Black\". Populated whenever the provider has data for the entity.\n */\n sku: string;\n /**\n * Review text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * True when the review is from a verified purchase.\n */\n verifiedPurchase: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Shop Product Reviews (tiktok_shop.product_reviews).\n */\nexport interface TiktokShopProductReviewsData {\n /**\n * True when more reviews are available beyond this page.\n */\n hasMore: boolean;\n /**\n * Overall product score (1-5).\n */\n rating: number;\n /**\n * Product reviews. Populated whenever the provider has data for the entity.\n */\n reviews: TiktokShopProductReviewsReview[];\n /**\n * Total number of reviews for the product.\n */\n totalReviews: number;\n}\n\n/**\n * Input for TikTok Shop Search (tiktok_shop.search).\n */\nexport interface TiktokShopSearchInput {\n /**\n * Country code of the TikTok Shop market to search (e.g. US).\n * One of: US, VN, TH, PH, MY, ID, GB, SG, ES, MX, DE, IT, FR, BR, JP.\n * Default: US.\n */\n country?:\n | \"US\"\n | \"VN\"\n | \"TH\"\n | \"PH\"\n | \"MY\"\n | \"ID\"\n | \"GB\"\n | \"SG\"\n | \"ES\"\n | \"MX\"\n | \"DE\"\n | \"IT\"\n | \"FR\"\n | \"BR\"\n | \"JP\";\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * Search keyword for TikTok Shop products (e.g. wireless earbuds).\n */\n query: string;\n}\n\nexport interface TiktokShopSearchItem {\n /**\n * ISO currency name, e.g. USD.\n */\n currency?: string;\n /**\n * Pre-discount list price (0 when not on sale).\n */\n originalPrice?: number;\n /**\n * Current sale price.\n */\n price?: number;\n /**\n * TikTok Shop product id. Populated whenever the provider has data for the entity.\n */\n productId: string;\n /**\n * Average review score.\n */\n rating?: number;\n /**\n * Seller shop name.\n */\n shopName?: string;\n /**\n * Units sold.\n */\n soldCount?: number;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Canonical product detail page URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Shop Search (tiktok_shop.search).\n */\nexport interface TiktokShopSearchData {\n /**\n * Product records matching the search query: id, title, price, sales count, rating, seller, and product URL. Populated whenever the provider has data for the entity.\n */\n items: TiktokShopSearchItem[];\n}\n\n/**\n * Input for TikTok Shop Store Products (tiktok_shop.shop_products).\n */\nexport interface TiktokShopShopProductsInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor.\n */\n cursor?: string;\n /**\n * Two-letter country code of the store's market (e.g. US).\n */\n region?: string;\n /**\n * Product ordering within the store.\n * One of: top, new_releases.\n * Default: top.\n */\n sortBy?: \"top\" | \"new_releases\";\n /**\n * TikTok Shop store URL (e.g. https://www.tiktok.com/shop/store/...).\n */\n url: string;\n}\n\nexport interface TiktokShopShopProductsProduct {\n currency: string;\n originalPrice: number;\n price: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n productId: string;\n rating: number;\n reviewCount: number;\n soldCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Shop Store Products (tiktok_shop.shop_products).\n */\nexport interface TiktokShopShopProductsData {\n hasMore: boolean;\n nextCursor: string;\n productCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n products: TiktokShopShopProductsProduct[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n shopName: string;\n shopRating: number;\n soldCount: number;\n}\n\n/**\n * Input for TikTok Shop User Showcase (tiktok_shop.user_showcase).\n */\nexport interface TiktokShopUserShowcaseInput {\n /**\n * Pagination token for retrieving subsequent product pages.\n */\n cursor?: string;\n /**\n * The handle of the TikTok user (e.g. mrtiktokreviews).\n */\n handle: string;\n /**\n * Geographical region for proxy placement (defaults to US).\n */\n region?: string;\n}\n\nexport interface TiktokShopUserShowcaseProduct {\n currency: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n imageUrl: string;\n originalPrice: string;\n price: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n productId: string;\n rating: number;\n reviewCount: number;\n soldCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of TikTok Shop User Showcase (tiktok_shop.user_showcase).\n */\nexport interface TiktokShopUserShowcaseData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n products: TiktokShopUserShowcaseProduct[];\n}\n\n/**\n * Typed methods for the tiktok_shop platform. Attached to the AnyAPI client as\n * `client.tiktokShop`.\n */\nexport class TiktokShopNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * TikTok Shop Product\n *\n * Fetch TikTok Shop product details (title, price, sales, seller, and ratings) from a product URL.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.product({ url: \"https://www.tiktok.com/shop/pdp/goli-ashwagandha-gummies-with-vitamin-d-ksm-66-vegan-non-gmo/1729587769570529799\" });\n */\n product(\n input: TiktokShopProductInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopProductData>> {\n return this._core.run(\"tiktok_shop.product\", input, options);\n }\n\n /**\n * TikTok Shop Product Reviews\n *\n * Fetch customer reviews for a TikTok Shop product by URL (rating, text, reviewer, country, and verified-purchase flag), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.productReviews({ url: \"https://www.tiktok.com/shop/pdp/cat-nail-clipper-by-potaroma-adjustable-sizes-built-in-file-safe-for-kittens-cats/1731578642912612516\" });\n */\n productReviews(\n input: TiktokShopProductReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopProductReviewsData>> {\n return this._core.run(\"tiktok_shop.product_reviews\", input, options);\n }\n\n /**\n * TikTok Shop Search\n *\n * Search TikTok Shop products by keyword across 15 countries: price, sales, rating, and seller info per product, in one normalized response.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.search({ query: \"phone case\", limit: 3 });\n */\n search(\n input: TiktokShopSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopSearchData>> {\n return this._core.run(\"tiktok_shop.search\", input, options);\n }\n\n /**\n * TikTok Shop Store Products\n *\n * List every product of a TikTok Shop store by URL (title, price, sales, and rating per product plus shop-level stats) with cursor pagination and transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.shopProducts({ url: \"https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079\" });\n */\n shopProducts(\n input: TiktokShopShopProductsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopShopProductsData>> {\n return this._core.run(\"tiktok_shop.shop_products\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Shop Store Products across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterShopProducts(\n input: TiktokShopShopProductsInput,\n options?: RequestOptions,\n ): Paginator<\n TiktokShopShopProductsProduct,\n RunResult<TiktokShopShopProductsData>\n > {\n return paginate<\n TiktokShopShopProductsProduct,\n RunResult<TiktokShopShopProductsData>\n >(\n this._core,\n \"tiktok_shop.shop_products\",\n input as unknown as Record<string, unknown>,\n \"products\",\n false,\n options,\n );\n }\n\n /**\n * TikTok Shop User Showcase\n *\n * List the TikTok Shop products a creator showcases (title, price, rating, and sales per product), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.tiktokShop.userShowcase({ handle: \"mrtiktokreviews\" });\n */\n userShowcase(\n input: TiktokShopUserShowcaseInput,\n options?: RequestOptions,\n ): Promise<RunResult<TiktokShopUserShowcaseData>> {\n return this._core.run(\"tiktok_shop.user_showcase\", input, options);\n }\n\n /**\n * Iterate every result of TikTok Shop User Showcase across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserShowcase(\n input: TiktokShopUserShowcaseInput,\n options?: RequestOptions,\n ): Paginator<\n TiktokShopUserShowcaseProduct,\n RunResult<TiktokShopUserShowcaseData>\n > {\n return paginate<\n TiktokShopUserShowcaseProduct,\n RunResult<TiktokShopUserShowcaseData>\n >(\n this._core,\n \"tiktok_shop.user_showcase\",\n input as unknown as Record<string, unknown>,\n \"products\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Tripadvisor Reviews (tripadvisor.reviews).\n */\nexport interface TripadvisorReviewsInput {\n /**\n * Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"es\"]); omit for all languages.\n */\n languages?: string[];\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Only return reviews whose bubble rating is in this set (e.g. [\"5\", \"4\"] for 4 and 5 star reviews); omit for all ratings.\n */\n ratings?: (\"1\" | \"2\" | \"3\" | \"4\" | \"5\")[];\n /**\n * Only return reviews newer than this date, YYYY-MM-DD or a relative window like '3 months' (e.g. 2026-01-01).\n */\n since?: string;\n /**\n * Tripadvisor page URL of the hotel, restaurant, or attraction.\n */\n url: string;\n}\n\nexport interface TripadvisorReviewsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Star rating (typically 1-5).\n */\n rating: number;\n /**\n * Review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review title or headline. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Canonical review URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Tripadvisor Reviews (tripadvisor.reviews).\n */\nexport interface TripadvisorReviewsData {\n /**\n * Review records for the place: rating, title, review text, publish date, trip type, and reviewer details. Populated whenever the provider has data for the entity.\n */\n items: TripadvisorReviewsItem[];\n}\n\n/**\n * Input for Tripadvisor Search (tripadvisor.search).\n */\nexport interface TripadvisorSearchInput {\n /**\n * ISO currency code for prices (e.g. USD, EUR).\n * Default: USD.\n */\n currency?: string;\n /**\n * Include attractions and things to do in the results; set false to exclude them (e.g. false). Defaults to true.\n * Default: true.\n */\n includeAttractions?: boolean;\n /**\n * Include hotels in the results; set false to exclude them (e.g. false). Defaults to true.\n * Default: true.\n */\n includeHotels?: boolean;\n /**\n * Include restaurants in the results; set false to exclude them (e.g. false). Defaults to true.\n * Default: true.\n */\n includeRestaurants?: boolean;\n /**\n * Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * Destination or keyword to search for (e.g. Barcelona).\n */\n query: string;\n}\n\nexport interface TripadvisorSearchItem {\n /**\n * Full formatted street address.\n */\n address?: string;\n /**\n * High-level category (e.g. hotel, restaurant, attraction).\n */\n category?: string;\n /**\n * City the place is in.\n */\n city?: string;\n /**\n * Country the place is in.\n */\n country?: string;\n /**\n * Business contact email, when listed.\n */\n email?: string;\n /**\n * Star rating / hotel class, when applicable.\n */\n hotelClass?: string;\n /**\n * Tripadvisor location id (stable identifier for the place).\n */\n id?: string;\n /**\n * Primary place photo URL.\n */\n image?: string;\n /**\n * Latitude of the place in decimal degrees.\n */\n latitude?: number;\n /**\n * Longitude of the place in decimal degrees.\n */\n longitude?: number;\n /**\n * Business phone number, when listed.\n */\n phone?: string;\n /**\n * Postal code of the place.\n */\n postalCode?: string;\n /**\n * Relative price level indicator (e.g. $$, $$$$).\n */\n priceLevel?: string;\n /**\n * Nightly or per-visit price range in the requested currency.\n */\n priceRange?: string;\n /**\n * Ranking string within its location (e.g. \"#2 of 1,885 hotels in Paris\").\n */\n ranking?: string;\n /**\n * Average traveler rating out of 5. Populated whenever the provider has data for the entity.\n */\n rating: number;\n /**\n * Total number of traveler reviews.\n */\n reviewCount?: number;\n /**\n * Place name. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Tripadvisor place type (e.g. HOTEL, RESTAURANT, ATTRACTION).\n */\n type?: string;\n /**\n * Canonical Tripadvisor listing page URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * The place's own website URL, when listed.\n */\n website?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Tripadvisor Search (tripadvisor.search).\n */\nexport interface TripadvisorSearchData {\n /**\n * Matching Tripadvisor place records (hotels, restaurants, attractions). Populated whenever the provider has data for the entity.\n */\n items: TripadvisorSearchItem[];\n}\n\n/**\n * Typed methods for the tripadvisor platform. Attached to the AnyAPI client as\n * `client.tripadvisor`.\n */\nexport class TripadvisorNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Tripadvisor Reviews\n *\n * Fetch the latest reviews for any Tripadvisor hotel, restaurant, or attraction by its page URL: rating, text, date, and trip details as normalized JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.tripadvisor.reviews({ url: \"https://www.tripadvisor.com/Hotel_Review-g60763-d93450-Reviews-The_Plaza-New_York_City_New_York.html\", limit: 3 });\n */\n reviews(\n input: TripadvisorReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TripadvisorReviewsData>> {\n return this._core.run(\"tripadvisor.reviews\", input, options);\n }\n\n /**\n * Tripadvisor Search\n *\n * Search Tripadvisor for hotels, restaurants, and attractions in any destination and get rich place records (ratings, review counts, contact details, pricing) as normalized JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.tripadvisor.search({ query: \"Paris\", limit: 3 });\n */\n search(\n input: TripadvisorSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<TripadvisorSearchData>> {\n return this._core.run(\"tripadvisor.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Trustpilot Reviews (trustpilot.reviews).\n */\nexport interface TrustpilotReviewsInput {\n /**\n * Brand name or Trustpilot review-page URL to fetch reviews for (e.g. nike or https://www.trustpilot.com/review/nike.com).\n */\n company: string;\n /**\n * Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. [\"US\", \"GB\"]); omit for all countries.\n */\n countries?: string[];\n /**\n * Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"de\"]); omit for all languages.\n */\n languages?: string[];\n /**\n * Maximum number of results to return (1-50, default 50). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 50.\n */\n limit?: number;\n /**\n * Review ordering: auto, relevancy, or recent (e.g. recent).\n * Default: auto.\n */\n sortBy?: string;\n /**\n * Limit reviews to a single star rating from 1 to 5 (e.g. 5); omit for all ratings.\n */\n stars?: string;\n /**\n * Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).\n */\n startDate?: string;\n /**\n * Set true to return only verified reviews (e.g. true).\n * Default: false.\n */\n verifiedOnly?: boolean;\n}\n\nexport interface TrustpilotReviewsItem {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Star rating (1-5).\n */\n rating: number;\n /**\n * Review body text. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Review title or headline. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Canonical review URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n /**\n * Whether the reviewer is verified.\n */\n verified?: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Trustpilot Reviews (trustpilot.reviews).\n */\nexport interface TrustpilotReviewsData {\n /**\n * Review records: star rating, review title and text, date, reviewer name and country, and company reply when present. Populated whenever the provider has data for the entity.\n */\n items: TrustpilotReviewsItem[];\n}\n\n/**\n * Typed methods for the trustpilot platform. Attached to the AnyAPI client as\n * `client.trustpilot`.\n */\nexport class TrustpilotNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Trustpilot Reviews\n *\n * Pull Trustpilot reviews for any company by brand name: star ratings, review text, dates, and reviewer details as clean JSON.\n *\n * Price: $0.01625 per request.\n *\n * @example\n * const res = await client.trustpilot.reviews({ company: \"stripe.com\", limit: 3 });\n */\n reviews(\n input: TrustpilotReviewsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TrustpilotReviewsData>> {\n return this._core.run(\"trustpilot.reviews\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Truth Social Post (truthsocial.post).\n */\nexport interface TruthsocialPostInput {\n /**\n * Full Truth Social post URL, e.g. \"https://truthsocial.com/@realDonaldTrump/posts/116824551176646175\".\n */\n url: string;\n}\n\n/**\n * The `data` payload of Truth Social Post (truthsocial.post).\n */\nexport interface TruthsocialPostData {\n /**\n * Number of comments on the post.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Display name of the author. Populated whenever the provider has data for the entity.\n */\n displayName: string;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Number of reblogs of the post.\n */\n shares: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Username of the author. Populated whenever the provider has data for the entity.\n */\n username: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Truth Social Profile (truthsocial.profile).\n */\nexport interface TruthsocialProfileInput {\n /**\n * Truth Social handle without the @, e.g. \"realDonaldTrump\".\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Truth Social Profile (truthsocial.profile).\n */\nexport interface TruthsocialProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n joinedAt: string;\n postsCount: number;\n private: boolean;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n username: string;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Truth Social User Posts (truthsocial.user_posts).\n */\nexport interface TruthsocialUserPostsInput {\n /**\n * Truth Social handle without the @, e.g. \"realDonaldTrump\".\n */\n handle: string;\n}\n\nexport interface TruthsocialUserPostsPost {\n /**\n * Number of comments on the post.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on the post.\n */\n likes: number;\n /**\n * Number of reblogs of the post.\n */\n shares: number;\n /**\n * Post text content. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical URL of the post. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Truth Social User Posts (truthsocial.user_posts).\n */\nexport interface TruthsocialUserPostsData {\n /**\n * The user's recent posts. Populated whenever the provider has data for the entity.\n */\n posts: TruthsocialUserPostsPost[];\n}\n\n/**\n * Typed methods for the truthsocial platform. Attached to the AnyAPI client as\n * `client.truthsocial`.\n */\nexport class TruthsocialNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Truth Social Post\n *\n * Get a single Truth Social post by its URL - text, author, engagement (likes, comments, shares), and timestamp as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.truthsocial.post({ url: \"https://truthsocial.com/@realDonaldTrump/posts/116824551176646175\" });\n */\n post(\n input: TruthsocialPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<TruthsocialPostData>> {\n return this._core.run(\"truthsocial.post\", input, options);\n }\n\n /**\n * Truth Social Profile\n *\n * Get a Truth Social account's public profile by handle - display name, bio, follower/following counts, and post count as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.truthsocial.profile({ handle: \"realDonaldTrump\" });\n */\n profile(\n input: TruthsocialProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<TruthsocialProfileData>> {\n return this._core.run(\"truthsocial.profile\", input, options);\n }\n\n /**\n * Truth Social User Posts\n *\n * List a Truth Social account's recent posts by handle - text, engagement (likes, comments, shares), and timestamps as clean JSON.\n *\n * Price: $0.00325 per request.\n *\n * @example\n * const res = await client.truthsocial.userPosts({ handle: \"realDonaldTrump\" });\n */\n userPosts(\n input: TruthsocialUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TruthsocialUserPostsData>> {\n return this._core.run(\"truthsocial.user_posts\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for X / Twitter Article (twitter.article).\n */\nexport interface TwitterArticleInput {\n /**\n * Canonical x.com or twitter.com URL of the public wrapper post for an X Article.\n */\n url: string;\n}\n\nexport interface TwitterArticleContentBlock {\n /**\n * Entity references within the block text.\n */\n entities?: TwitterArticleEntitie[];\n /**\n * Image height in pixels when supplied.\n * Range: minimum 0.\n */\n height?: number;\n /**\n * Canonical image URL for an image block.\n * Format: uri.\n */\n image?: string;\n /**\n * Formatting ranges within the block text.\n */\n inlineStyles?: TwitterArticleInlineStyle[];\n /**\n * Text content for a text-bearing block.\n */\n text?: string;\n /**\n * Block type reported by X, such as unstyled, header-two, image, divider, blockquote, or list item. Populated whenever the provider has data for the entity.\n */\n type: string;\n /**\n * Image width in pixels when supplied.\n * Range: minimum 0.\n */\n width?: number;\n [extra: string]: unknown;\n}\n\nexport interface TwitterArticleEntitie {\n /**\n * Upstream entity table key.\n * Range: minimum 0.\n */\n key: number;\n /**\n * Entity character length.\n * Range: minimum 0.\n */\n length: number;\n /**\n * Zero-based character offset.\n * Range: minimum 0.\n */\n offset: number;\n [extra: string]: unknown;\n}\n\nexport interface TwitterArticleInlineStyle {\n /**\n * Formatted character length.\n * Range: minimum 0.\n */\n length: number;\n /**\n * Zero-based character offset.\n * Range: minimum 0.\n */\n offset: number;\n /**\n * Inline style name reported by X.\n */\n style: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Article (twitter.article).\n */\nexport interface TwitterArticleData {\n /**\n * Article author profile at retrieval time. Populated whenever the provider has data for the entity.\n */\n author: {\n /**\n * Profile avatar image URL.\n * Format: uri.\n */\n avatarUrl?: string;\n /**\n * Profile biography.\n */\n bio?: string;\n /**\n * Whether the account has X blue verification.\n */\n blueVerified?: boolean;\n /**\n * Profile cover image URL when available.\n * Format: uri.\n */\n coverUrl?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Follower count at retrieval time.\n * Range: minimum 0.\n */\n followers?: number;\n /**\n * Following count at retrieval time.\n * Range: minimum 0.\n */\n following?: number;\n /**\n * Current X handle without @. Populated whenever the provider has data for the entity.\n */\n handle: string;\n /**\n * Stable numeric X user ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Self-reported profile location.\n */\n location?: string;\n /**\n * Profile display name.\n */\n name?: string;\n /**\n * Canonical public X profile URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * Whether the account has legacy verification.\n */\n verified?: boolean;\n };\n /**\n * Ordered, explicitly normalized article blocks. Unknown future block types remain representable through type and optional fields. Populated whenever the provider has data for the entity.\n */\n contentBlocks: TwitterArticleContentBlock[];\n /**\n * Canonical article cover image URL when available.\n * Format: uri.\n */\n coverImage?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Stable X Article entity ID. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Wrapper post like count at retrieval time.\n * Range: minimum 0.\n */\n likes?: number;\n /**\n * Preview text supplied by X.\n */\n previewText?: string;\n /**\n * Wrapper post quote count at retrieval time.\n * Range: minimum 0.\n */\n quotes?: number;\n /**\n * Wrapper post reply count at retrieval time.\n * Range: minimum 0.\n */\n replies?: number;\n /**\n * Article title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Wrapper post view count at retrieval time.\n * Range: minimum 0.\n */\n views?: number;\n}\n\n/**\n * Input for Twitter Community (twitter.community).\n */\nexport interface TwitterCommunityInput {\n /**\n * Community URL (e.g. https://x.com/i/communities/1926186499399139650).\n */\n url: string;\n}\n\n/**\n * The `data` payload of Twitter Community (twitter.community).\n */\nexport interface TwitterCommunityData {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * Handle of the account that created the community. Populated whenever the provider has data for the entity.\n */\n creatorHandle: string;\n /**\n * Community description text. Populated whenever the provider has data for the entity.\n */\n description: string;\n /**\n * Community identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * How members join, e.g. \"open\" or \"restricted\". Populated whenever the provider has data for the entity.\n */\n joinPolicy: string;\n /**\n * Number of members in the community.\n */\n memberCount: number;\n /**\n * Community name. Populated whenever the provider has data for the entity.\n */\n name: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Twitter Community Tweets (twitter.community_tweets).\n */\nexport interface TwitterCommunityTweetsInput {\n /**\n * Community URL (e.g. https://x.com/i/communities/1926186499399139650).\n */\n url: string;\n}\n\nexport interface TwitterCommunityTweetsTweet {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorHandle: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n favoriteCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n quoteCount: number;\n replyCount: number;\n retweetCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Twitter Community Tweets (twitter.community_tweets).\n */\nexport interface TwitterCommunityTweetsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n tweets: TwitterCommunityTweetsTweet[];\n}\n\n/**\n * Input for X / Twitter Followers (twitter.followers).\n */\nexport interface TwitterFollowersInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of followers.\n */\n cursor?: string;\n /**\n * Per-page maximum number of followers to return (1-100000, default 200). A provider may return a smaller native page; follow nextCursor for more.\n * Range: minimum 1, maximum 100000.\n * Default: 200.\n */\n limit?: number;\n /**\n * Set true to get up to limit followers in one response instead of provider-native pages, served by a bulk provider when needed.\n */\n requireSinglePage?: boolean;\n /**\n * The X (Twitter) username to fetch followers for, without the @ prefix (e.g. elonmusk).\n */\n username: string;\n}\n\nexport interface TwitterFollowersItem {\n /**\n * URL of the account's profile image (may be empty). Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * The account's profile bio/description.\n */\n bio: string;\n /**\n * How many followers this account has.\n */\n followers: number;\n /**\n * How many accounts this account follows.\n */\n following: number;\n /**\n * The account's self-reported location (may be empty).\n */\n location: string;\n /**\n * The account's display name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * The account's @ handle, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n username: string;\n /**\n * Whether the account is verified.\n */\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Followers (twitter.followers).\n */\nexport interface TwitterFollowersData {\n /**\n * Follower records, normalized to a compact shape. Populated whenever the provider has data for the entity.\n */\n items: TwitterFollowersItem[];\n /**\n * Opaque cursor for the next page of followers, or null when there are no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for X / Twitter Following (twitter.following).\n */\nexport interface TwitterFollowingInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of followed accounts.\n */\n cursor?: string;\n /**\n * Per-page maximum number of followed accounts to return (1-100000, default 200). A provider may return a smaller native page; follow nextCursor for more.\n * Range: minimum 1, maximum 100000.\n * Default: 200.\n */\n limit?: number;\n /**\n * Set true to get up to limit accounts in one response instead of provider-native pages, served by a bulk provider when needed.\n */\n requireSinglePage?: boolean;\n /**\n * The X (Twitter) username to fetch the following list for, without the @ prefix (e.g. elonmusk).\n */\n username: string;\n}\n\nexport interface TwitterFollowingItem {\n /**\n * URL of the account's profile image (may be empty). Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * The account's profile bio/description.\n */\n bio: string;\n /**\n * How many followers this account has.\n */\n followers: number;\n /**\n * How many accounts this account follows.\n */\n following: number;\n /**\n * The account's self-reported location (may be empty).\n */\n location: string;\n /**\n * The account's display name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * The account's @ handle, without the @ prefix. Populated whenever the provider has data for the entity.\n */\n username: string;\n /**\n * Whether the account is verified.\n */\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Following (twitter.following).\n */\nexport interface TwitterFollowingData {\n /**\n * Followed-account records, normalized to a compact shape. Populated whenever the provider has data for the entity.\n */\n items: TwitterFollowingItem[];\n /**\n * Opaque cursor for the next page of followed accounts, or null when there are no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for Twitter Profile (twitter.profile).\n */\nexport interface TwitterProfileInput {\n /**\n * Twitter/X handle without the leading @.\n */\n handle: string;\n}\n\n/**\n * The `data` payload of Twitter Profile (twitter.profile).\n */\nexport interface TwitterProfileData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n bio: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n displayName: string;\n followers: number;\n following: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n handle: string;\n tweets: number;\n verified: boolean;\n [extra: string]: unknown;\n}\n\n/**\n * Input for X / Twitter Post Replies (twitter.replies).\n */\nexport interface TwitterRepliesInput {\n /**\n * Maximum number of results to return (1-40, default 40). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 40.\n */\n limit?: number;\n /**\n * Full URL of the X (Twitter) post to fetch replies for (e.g. https://x.com/nasa/status/1846987139428634858).\n */\n url: string;\n}\n\nexport interface TwitterRepliesItem {\n /**\n * Screen name / handle of the reply's author, without the @ prefix.\n */\n authorHandle?: string;\n /**\n * Display name of the reply's author. Empty when the upstream omits it.\n */\n authorName?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc: number;\n /**\n * The reply's numeric tweet ID, as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes on this reply.\n */\n likeCount?: number;\n /**\n * Number of quote tweets of this reply.\n */\n quoteCount?: number;\n /**\n * Number of replies to this reply.\n */\n replyCount?: number;\n /**\n * Number of reposts/retweets of this reply.\n */\n repostCount?: number;\n /**\n * The reply's text. Empty for media-only replies with no text.\n */\n text: string;\n /**\n * Canonical x.com URL of the reply, with tracking query params stripped. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Number of views of this reply.\n */\n viewCount?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Post Replies (twitter.replies).\n */\nexport interface TwitterRepliesData {\n /**\n * Reply records for the requested post. Populated whenever the provider has data for the entity.\n */\n items: TwitterRepliesItem[];\n}\n\n/**\n * Input for X / Twitter Search (twitter.search).\n */\nexport interface TwitterSearchInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of search results.\n */\n cursor?: string;\n /**\n * Optional ISO 639-1 language code to restrict tweets to (e.g. en).\n */\n lang?: string;\n /**\n * Per-page maximum number of results to return (1-50, default 20). A provider may return a smaller native page; follow nextCursor for more.\n * Range: minimum 1, maximum 50.\n * Default: 20.\n */\n limit?: number;\n /**\n * Search query using X (Twitter) advanced-search syntax. IMPORTANT: bare terms are ANDed - a tweet must contain EVERY word, so a list of loosely related keywords matches nothing; use one short phrase or OR between alternatives (e.g. 'anyapi OR getanyapi'). You can embed X advanced-search operators directly in the query to filter results: from:username and to:username (author or recipient), since:YYYY-MM-DD and until:YYYY-MM-DD (date range), min_faves:N, min_retweets:N, min_replies:N (engagement floors), \"exact phrase\", -term to exclude, filter:media and filter:links and -filter:replies (content filters), lang:en, near:city, and geocode:lat,long,radius. Examples: 'from:OpenAI', 'AI agents min_faves:500 -filter:replies', 'nvidia since:2026-01-01 until:2026-03-01'. A query with no matches returns an empty items array; prefer the fewest words that identify the topic.\n */\n query: string;\n /**\n * Result ranking: 'Latest', 'Top', 'Photos', or 'Videos' (e.g. Latest).\n * Default: Latest.\n */\n queryType?: string;\n /**\n * Set true to get up to limit results in one response instead of provider-native pages, served by a bulk provider when needed.\n */\n requireSinglePage?: boolean;\n}\n\nexport interface TwitterSearchItem {\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUsername?: string;\n authorVerified?: boolean;\n bookmarkCount?: number;\n conversationId?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isReply?: boolean;\n lang?: string;\n likeCount?: number;\n quoteCount?: number;\n replyCount?: number;\n retweetCount?: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n viewCount?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Search (twitter.search).\n */\nexport interface TwitterSearchData {\n /**\n * Tweet records: text, author profile, timestamp, and engagement metrics (likes, retweets, replies, views). Populated whenever the provider has data for the entity.\n */\n items: TwitterSearchItem[];\n /**\n * Opaque cursor for the next page of search results, or null when there are no more. Pass it back as cursor to continue.\n */\n nextCursor?: string;\n}\n\n/**\n * Input for X / Twitter Trends (twitter.trends).\n */\nexport interface TwitterTrendsInput {\n /**\n * Maximum number of ranked trends to return (1-50, default 50).\n * Range: minimum 1, maximum 50.\n * Default: 50.\n */\n limit?: number;\n /**\n * Country name, city name, or ISO country code. Omit for worldwide trends.\n */\n location?: string;\n}\n\nexport interface TwitterTrendsItem {\n /**\n * Whether the trend text is a hashtag.\n */\n isHashtag?: boolean;\n /**\n * Trend text displayed by X. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Whether X marks the trend as promoted.\n */\n promoted?: boolean;\n /**\n * Search query corresponding to the trend. Populated whenever the provider has data for the entity.\n */\n query: string;\n /**\n * One-based position in X's trend ranking. Populated whenever the provider has data for the entity.\n * Range: minimum 1.\n */\n rank: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter Trends (twitter.trends).\n */\nexport interface TwitterTrendsData {\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n asOfUtc: number;\n /**\n * Current trends in X's own ranking order. Distinct ranks may carry the same trend name. Populated whenever the provider has data for the entity.\n */\n items: TwitterTrendsItem[];\n /**\n * Resolved X trend-location name. Populated whenever the provider has data for the entity.\n */\n location: string;\n /**\n * Resolved Yahoo WOEID used by X, exposed as a stable location identifier. Populated whenever the provider has data for the entity.\n */\n locationId: string;\n}\n\n/**\n * Input for Twitter Tweet (twitter.tweet).\n */\nexport interface TwitterTweetInput {\n /**\n * Canonical x.com or twitter.com status URL with a numeric tweet ID, including /i/web/status and media-share variants.\n */\n url: string;\n}\n\n/**\n * The `data` payload of Twitter Tweet (twitter.tweet).\n */\nexport interface TwitterTweetData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorId: string;\n bookmarks: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n quotes: number;\n replies: number;\n retweets: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Twitter Tweet Transcript (twitter.tweet_transcript).\n */\nexport interface TwitterTweetTranscriptInput {\n /**\n * Tweet URL of the video to transcribe (e.g. https://x.com/TheoVon/status/1916982720317821050).\n */\n url: string;\n}\n\n/**\n * The `data` payload of Twitter Tweet Transcript (twitter.tweet_transcript).\n */\nexport interface TwitterTweetTranscriptData {\n transcript: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for X / Twitter User Posts (twitter.user_posts).\n */\nexport interface TwitterUserPostsInput {\n /**\n * Opaque pagination cursor from a previous response's nextCursor. Omit for the first page.\n */\n cursor?: string;\n /**\n * Twitter/X handle without the leading @.\n */\n handle: string;\n}\n\nexport interface TwitterUserPostsTweet {\n /**\n * Number of bookmarks.\n */\n bookmarks: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * The post's numeric tweet ID, represented as a string. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Whether X marks the post as pinned on the profile.\n */\n isPinned: boolean;\n /**\n * Whether X marks the record as a reply. Certified Posts-tab captures use this for self-thread continuations.\n */\n isReply?: boolean;\n /**\n * Language code reported for the post, when available.\n */\n lang?: string;\n /**\n * Number of likes.\n */\n likes: number;\n /**\n * Number of quote posts.\n */\n quotes?: number;\n /**\n * Number of replies.\n */\n replies: number;\n /**\n * Number of reposts or retweets.\n */\n retweets: number;\n /**\n * The post text. Empty for media-only posts. Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Canonical x.com URL of the post. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * Number of views.\n */\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter User Posts (twitter.user_posts).\n */\nexport interface TwitterUserPostsData {\n /**\n * Opaque cursor for the next native Posts-tab page, or null when no more pages are available.\n */\n nextCursor: string;\n /**\n * Posts in profile order. A pinned post may appear before otherwise reverse-chronological results. Populated whenever the provider has data for the entity.\n */\n tweets: TwitterUserPostsTweet[];\n}\n\n/**\n * Input for X / Twitter User Tweets and Replies (twitter.user_tweets).\n */\nexport interface TwitterUserTweetsInput {\n /**\n * Reserved for cursor-capable lanes. The current bulk lane returns nextCursor as null, so omit this field.\n */\n cursor?: string;\n /**\n * Twitter/X handle without the leading @.\n */\n handle: string;\n /**\n * Maximum number of authored tweets and replies to return in the current bulk call (1-1000). The provider may return fewer results.\n * Range: minimum 1, maximum 1000.\n * Default: 20.\n */\n limit?: number;\n /**\n * Compatibility flag for requiring one response. The current lane already returns up to limit results in one bulk call, whether this is omitted or true.\n */\n requireSinglePage?: boolean;\n}\n\nexport interface TwitterUserTweetsTweet {\n bookmarks: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n isPinned: boolean;\n isReply?: boolean;\n lang?: string;\n likes: number;\n quotes?: number;\n replies: number;\n retweets: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of X / Twitter User Tweets and Replies (twitter.user_tweets).\n */\nexport interface TwitterUserTweetsData {\n /**\n * Reserved pagination cursor. The current bulk lane returns null; cursor-capable lanes may return an opaque continuation value in the future.\n */\n nextCursor?: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n tweets: TwitterUserTweetsTweet[];\n}\n\n/**\n * Typed methods for the twitter platform. Attached to the AnyAPI client as\n * `client.twitter`.\n */\nexport class TwitterNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * X / Twitter Article\n *\n * Get a public X long-form article from its wrapper post URL, including its author, engagement, cover image, and structured content blocks.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.article({ url: \"https://x.com/Decentralisedco/status/1905545699552375179\" });\n */\n article(\n input: TwitterArticleInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterArticleData>> {\n return this._core.run(\"twitter.article\", input, options);\n }\n\n /**\n * Twitter Community\n *\n * Fetch a Twitter/X community's public details (name, description, member count, join policy) by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.twitter.community({ url: \"https://x.com/i/communities/1926186499399139650\" });\n */\n community(\n input: TwitterCommunityInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterCommunityData>> {\n return this._core.run(\"twitter.community\", input, options);\n }\n\n /**\n * Twitter Community Tweets\n *\n * List recent tweets posted in a Twitter/X community by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.twitter.communityTweets({ url: \"https://x.com/i/communities/1926186499399139650\" });\n */\n communityTweets(\n input: TwitterCommunityTweetsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterCommunityTweetsData>> {\n return this._core.run(\"twitter.community_tweets\", input, options);\n }\n\n /**\n * X / Twitter Followers\n *\n * Fetch the follower list of any public X (Twitter) account by username with cursor pagination. Limit is a per-page maximum; native pages contain up to 200 accounts unless requireSinglePage selects a bulk lane.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.followers({ username: \"nasa\", limit: 200 });\n */\n followers(\n input: TwitterFollowersInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterFollowersData>> {\n return this._core.run(\"twitter.followers\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter Followers across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowers(\n input: TwitterFollowersInput,\n options?: RequestOptions,\n ): Paginator<TwitterFollowersItem, RunResult<TwitterFollowersData>> {\n return paginate<TwitterFollowersItem, RunResult<TwitterFollowersData>>(\n this._core,\n \"twitter.followers\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * X / Twitter Following\n *\n * List the accounts a public X (Twitter) account follows by username with cursor pagination. Limit is a per-page maximum; native pages contain up to 200 accounts unless requireSinglePage selects a bulk lane.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.following({ username: \"nasa\", limit: 200 });\n */\n following(\n input: TwitterFollowingInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterFollowingData>> {\n return this._core.run(\"twitter.following\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter Following across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterFollowing(\n input: TwitterFollowingInput,\n options?: RequestOptions,\n ): Paginator<TwitterFollowingItem, RunResult<TwitterFollowingData>> {\n return paginate<TwitterFollowingItem, RunResult<TwitterFollowingData>>(\n this._core,\n \"twitter.following\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * Twitter Profile\n *\n * Fetch a Twitter/X account's public profile (followers, tweets, bio, verification) by handle, normalized across providers with transparent failover.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.profile({ handle: \"nasa\" });\n */\n profile(\n input: TwitterProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterProfileData>> {\n return this._core.run(\"twitter.profile\", input, options);\n }\n\n /**\n * X / Twitter Post Replies\n *\n * Fetch the replies to any X (Twitter) post URL as structured records: author, text, and engagement.\n *\n * Price: $0.0025 per request plus $0.00025 per result (maximum $0.0125).\n *\n * @example\n * const res = await client.twitter.replies({ url: \"https://x.com/jack/status/20\", limit: 3 });\n */\n replies(\n input: TwitterRepliesInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterRepliesData>> {\n return this._core.run(\"twitter.replies\", input, options);\n }\n\n /**\n * X / Twitter Search\n *\n * Search X (Twitter) with full advanced-search syntax (operators like from:, since:, until:, min_faves: work inline in the query) and get structured tweets with text, author, engagement, and cursor pagination. Limit is a per-page maximum; native pages contain approximately 20 tweets unless requireSinglePage selects a bulk lane.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.search({ query: \"openai\" });\n */\n search(\n input: TwitterSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterSearchData>> {\n return this._core.run(\"twitter.search\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearch(\n input: TwitterSearchInput,\n options?: RequestOptions,\n ): Paginator<TwitterSearchItem, RunResult<TwitterSearchData>> {\n return paginate<TwitterSearchItem, RunResult<TwitterSearchData>>(\n this._core,\n \"twitter.search\",\n input as unknown as Record<string, unknown>,\n \"items\",\n false,\n options,\n );\n }\n\n /**\n * X / Twitter Trends\n *\n * Get current X (Twitter) trends for worldwide, a country, or a city in X ranking order, including the resolved location.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.trends({ limit: 10, location: \"US\" });\n */\n trends(\n input: TwitterTrendsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterTrendsData>> {\n return this._core.run(\"twitter.trends\", input, options);\n }\n\n /**\n * Twitter Tweet\n *\n * Fetch a single Twitter/X tweet by URL with its full text and engagement counts (likes, retweets, replies, quotes, bookmarks, views), normalized across providers.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.tweet({ url: \"https://x.com/SpaceX/status/1732824684683784516\" });\n */\n tweet(\n input: TwitterTweetInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterTweetData>> {\n return this._core.run(\"twitter.tweet\", input, options);\n }\n\n /**\n * Twitter Tweet Transcript\n *\n * Extract the spoken transcript from a Twitter/X video tweet by URL, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.twitter.tweetTranscript({ url: \"https://x.com/TheoVon/status/1916982720317821050\" });\n */\n tweetTranscript(\n input: TwitterTweetTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterTweetTranscriptData>> {\n return this._core.run(\"twitter.tweet_transcript\", input, options);\n }\n\n /**\n * X / Twitter User Posts\n *\n * Get an X (Twitter) account's profile Posts-tab timeline by handle. Results follow profile order: a pinned post may appear first, followed by otherwise reverse-chronological authored posts, reposts, quotes, and self-thread continuations.\n *\n * Price: $0.00075 per request.\n *\n * @example\n * const res = await client.twitter.userPosts({ handle: \"levelsio\" });\n */\n userPosts(\n input: TwitterUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterUserPostsData>> {\n return this._core.run(\"twitter.user_posts\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter User Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserPosts(\n input: TwitterUserPostsInput,\n options?: RequestOptions,\n ): Paginator<TwitterUserPostsTweet, RunResult<TwitterUserPostsData>> {\n return paginate<TwitterUserPostsTweet, RunResult<TwitterUserPostsData>>(\n this._core,\n \"twitter.user_posts\",\n input as unknown as Record<string, unknown>,\n \"tweets\",\n false,\n options,\n );\n }\n\n /**\n * X / Twitter User Tweets and Replies\n *\n * Get up to the requested limit of tweets and replies authored by an X (Twitter) account in one bulk call, with engagement, views, and language. The current lane returns nextCursor as null; cursor is reserved for future cursor-capable lanes.\n *\n * Price: $0 per request plus $0.0002 per result (maximum $0.2).\n *\n * @example\n * const res = await client.twitter.userTweets({ handle: \"levelsio\", limit: 20 });\n */\n userTweets(\n input: TwitterUserTweetsInput,\n options?: RequestOptions,\n ): Promise<RunResult<TwitterUserTweetsData>> {\n return this._core.run(\"twitter.user_tweets\", input, options);\n }\n\n /**\n * Iterate every result of X / Twitter User Tweets and Replies across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserTweets(\n input: TwitterUserTweetsInput,\n options?: RequestOptions,\n ): Paginator<TwitterUserTweetsTweet, RunResult<TwitterUserTweetsData>> {\n return paginate<TwitterUserTweetsTweet, RunResult<TwitterUserTweetsData>>(\n this._core,\n \"twitter.user_tweets\",\n input as unknown as Record<string, unknown>,\n \"tweets\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Upwork Jobs (upwork.jobs).\n */\nexport interface UpworkJobsInput {\n /**\n * Filter by required experience level.\n * One of: entry, intermediate, expert.\n */\n experienceLevel?: \"entry\" | \"intermediate\" | \"expert\";\n /**\n * Budget range [min, max] in USD for fixed-price jobs (e.g. [500, 5000]).\n */\n fixedPriceRange?: number[];\n /**\n * Hourly rate range [min, max] in USD/hour for hourly jobs (e.g. [20, 50]).\n */\n hourlyRateRange?: number[];\n /**\n * Filter by payment type: fixed-price or hourly jobs.\n * One of: fixed, hourly.\n */\n jobType?: \"fixed\" | \"hourly\";\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Filter by client location - a region, subregion, or country (e.g. United States, Europe).\n */\n location?: string;\n /**\n * When true, only return jobs from clients with a verified payment method.\n */\n paymentVerified?: boolean;\n /**\n * Keywords to search Upwork jobs for (e.g. react developer).\n */\n query: string;\n /**\n * Sort order for listings: newest or relevance (e.g. newest).\n * One of: newest, relevance.\n * Default: newest.\n */\n sort?: \"newest\" | \"relevance\";\n}\n\nexport interface UpworkJobsItem {\n /**\n * Fixed budget or hourly range.\n */\n budget?: string;\n /**\n * Client country or location.\n */\n clientLocation?: string;\n /**\n * Client average rating.\n */\n clientRating?: number;\n /**\n * Client lifetime spend (USD).\n */\n clientTotalSpent?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Full job posting description text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * Required experience level (e.g. Entry, Intermediate, Expert).\n */\n experienceLevel?: string;\n /**\n * Upwork job identifier. Populated whenever the provider has data for the entity.\n */\n jobId: string;\n /**\n * Fixed or Hourly.\n */\n jobType?: string;\n /**\n * Whether the client's payment method is verified; null when Upwork reports it as unknown.\n */\n paymentVerified?: boolean;\n /**\n * Number of proposals submitted.\n */\n proposals?: number;\n /**\n * Skill tags.\n */\n tags?: string[];\n /**\n * Job posting title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Upwork job posting URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Upwork Jobs (upwork.jobs).\n */\nexport interface UpworkJobsData {\n /**\n * Job records: title, description, budget or hourly rate, required skills, posted date, and client details. Populated whenever the provider has data for the entity.\n */\n items: UpworkJobsItem[];\n}\n\n/**\n * Typed methods for the upwork platform. Attached to the AnyAPI client as\n * `client.upwork`.\n */\nexport class UpworkNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Upwork Jobs\n *\n * Search Upwork job postings by keyword, with up to 25 fresh listings per request.\n *\n * Price: $0 per request plus $0.0033 per result (maximum $0.0825).\n *\n * @example\n * const res = await client.upwork.jobs({ query: \"web developer\", jobType: \"fixed\", limit: 10 });\n */\n jobs(\n input: UpworkJobsInput,\n options?: RequestOptions,\n ): Promise<RunResult<UpworkJobsData>> {\n return this._core.run(\"upwork.jobs\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Walmart Product (walmart.product).\n */\nexport interface WalmartProductInput {\n /**\n * Walmart product page URL.\n */\n url: string;\n}\n\nexport interface WalmartProductItem {\n /**\n * Stock status, e.g. \"IN_STOCK\".\n */\n availability?: string;\n /**\n * Brand name; empty when not reported.\n */\n brand?: string;\n /**\n * Short product description; empty when the listing has none.\n */\n description?: string;\n /**\n * Primary product image URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * All product image URLs.\n */\n images?: string[];\n /**\n * Walmart US item id (usItemId). Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n itemId?: string;\n /**\n * Manufacturer model number; empty when not reported.\n */\n model?: string;\n /**\n * Current price as displayed, e.g. \"$125.00\"; empty when unavailable (Walmart returns a formatted string, not a numeric value).\n */\n priceText?: string;\n /**\n * Walmart internal product id.\n */\n productId?: string;\n /**\n * Average customer rating, 0-5; 0 when unrated.\n */\n rating?: number;\n /**\n * Number of customer reviews; 0 when none.\n */\n reviewsCount?: number;\n /**\n * Name of the seller fulfilling the offer.\n */\n sellerName?: string;\n /**\n * Product title. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Universal Product Code; empty when not reported.\n */\n upc?: string;\n /**\n * Canonical Walmart product page URL (condition query param retained, as it selects the offer). Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Walmart Product (walmart.product).\n */\nexport interface WalmartProductData {\n /**\n * Product detail records (one per requested product URL). Populated whenever the provider has data for the entity.\n */\n items: WalmartProductItem[];\n}\n\n/**\n * Typed methods for the walmart platform. Attached to the AnyAPI client as\n * `client.walmart`.\n */\nexport class WalmartNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Walmart Product\n *\n * Fetch a Walmart product page by URL and get full product details (title, price, availability, ratings, images, and specs) in one normalized response.\n *\n * Price: $0 per request plus $0.00368 per result (maximum $0.00368).\n *\n * @example\n * const res = await client.walmart.product({ url: \"https://www.walmart.com/ip/Apple-AirPods-Pro-2/5689919121\" });\n */\n product(\n input: WalmartProductInput,\n options?: RequestOptions,\n ): Promise<RunResult<WalmartProductData>> {\n return this._core.run(\"walmart.product\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Website Crawl (web.crawl).\n */\nexport interface WebCrawlInput {\n /**\n * Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 10.\n */\n limit?: number;\n /**\n * The website URL or domain to crawl.\n */\n url: string;\n}\n\nexport interface WebCrawlItem {\n /**\n * Populated whenever the provider has data for the entity.\n */\n domain: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Website Crawl (web.crawl).\n */\nexport interface WebCrawlData {\n /**\n * Crawled page records: URL, page title, and extracted text content for each page. Populated whenever the provider has data for the entity.\n */\n items: WebCrawlItem[];\n}\n\n/**\n * Input for Web Map (web.map).\n */\nexport interface WebMapInput {\n /**\n * When true (upstream default), include URLs on subdomains of the target (for example docs.example.com when mapping example.com). Set false to return only URLs on the exact host.\n */\n includeSubdomains?: boolean;\n /**\n * Maximum number of links to return.\n * Default: 100.\n */\n limit?: number;\n /**\n * Optional term that orders the returned links by relevance.\n */\n search?: string;\n /**\n * How to use the site's sitemap.xml when discovering URLs. 'include' (upstream default) merges sitemap URLs with links found by crawling; 'only' returns just the URLs listed in the sitemap (fastest and most authoritative); 'skip' ignores the sitemap and discovers URLs by crawling links. Omit to use 'include'.\n * One of: include, skip, only.\n */\n sitemap?: \"include\" | \"skip\" | \"only\";\n /**\n * The base URL of the site to map into a list of links.\n * Format: uri.\n */\n url: string;\n}\n\nexport interface WebMapResult {\n description: string;\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Web Map (web.map).\n */\nexport interface WebMapData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n results: WebMapResult[];\n}\n\n/**\n * Input for Web Scrape (web.scrape).\n */\nexport interface WebScrapeInput {\n /**\n * When true (upstream default), strip ad and cookie-consent elements before capture. Set false to keep them.\n */\n blockAds?: boolean;\n /**\n * CSS selectors to drop before capture (for example [\"nav\", \"footer\", \".ads\"]). Applied after includeTags.\n */\n excludeTags?: string[];\n /**\n * Which representations of the page to return. Any combination of: markdown (clean main content), html (cleaned HTML), rawHtml (verbatim page HTML). Each requested format is returned under the matching output field. Defaults to markdown only.\n */\n formats?: (\"markdown\" | \"html\" | \"rawHtml\")[];\n /**\n * CSS selectors to keep. When set, only content matching these selectors is captured (for example [\"article\", \"main\"] or [\"#content\"]).\n */\n includeTags?: string[];\n /**\n * When true, render the page with a mobile viewport and user agent instead of desktop. Some sites serve materially different content to mobile.\n */\n mobile?: boolean;\n /**\n * When true (default) return only the main article content, stripping navigation, headers, footers, and other boilerplate. Set false to capture the full page.\n * Default: true.\n */\n onlyMainContent?: boolean;\n /**\n * The URL of the page to scrape.\n * Format: uri.\n */\n url: string;\n /**\n * Milliseconds to wait for the page to finish rendering before capture. Use this for JavaScript-heavy pages or single-page apps whose content loads after the initial paint. Capped at 15000 to stay within the request timeout.\n * Range: minimum 0, maximum 15000.\n */\n waitFor?: number;\n}\n\n/**\n * The `data` payload of Web Scrape (web.scrape).\n */\nexport interface WebScrapeData {\n /**\n * The page meta description.\n */\n description: string;\n /**\n * The cleaned page HTML. Present only when 'html' is among the requested formats.\n */\n html?: string;\n /**\n * The page content as clean Markdown. Present when 'markdown' is among the requested formats (the default). Populated whenever the provider has data for the entity.\n */\n markdown: string;\n /**\n * The verbatim page HTML before cleaning. Present only when 'rawHtml' is among the requested formats.\n */\n rawHtml?: string;\n /**\n * The page title from its metadata.\n */\n title: string;\n /**\n * The canonical source URL of the scraped page. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Website Screenshot (web.screenshot).\n */\nexport interface WebScreenshotInput {\n /**\n * The full URL of the page to capture.\n */\n url: string;\n /**\n * Browser viewport width in pixels (e.g. 1280).\n * Default: 1280.\n */\n viewportWidth?: number;\n}\n\nexport interface WebScreenshotItem {\n /**\n * Link to the captured screenshot image. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * The final page URL that was captured. Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Website Screenshot (web.screenshot).\n */\nexport interface WebScreenshotData {\n /**\n * Screenshot records: the requested page URL and a link to the captured image. Populated whenever the provider has data for the entity.\n */\n items: WebScreenshotItem[];\n}\n\n/**\n * Typed methods for the web platform. Attached to the AnyAPI client as\n * `client.web`.\n */\nexport class WebNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Website Crawl\n *\n * Crawl a website and get clean text content from up to 10 pages in one normalized response, ideal for feeding sites into LLMs and search indexes.\n *\n * Price: $0.0015 per request plus $0.003 per result (maximum $0.0315).\n *\n * @example\n * const res = await client.web.crawl({ url: \"https://example.com\", limit: 3 });\n */\n crawl(\n input: WebCrawlInput,\n options?: RequestOptions,\n ): Promise<RunResult<WebCrawlData>> {\n return this._core.run(\"web.crawl\", input, options);\n }\n\n /**\n * Web Map\n *\n * Map an entire website into a clean list of its URLs (with titles and descriptions) in a single call.\n *\n * Price: $0.0009 per request.\n *\n * @example\n * const res = await client.web.map({ url: \"https://www.iana.org\", search: \"domain\" });\n */\n map(\n input: WebMapInput,\n options?: RequestOptions,\n ): Promise<RunResult<WebMapData>> {\n return this._core.run(\"web.map\", input, options);\n }\n\n /**\n * Web Scrape\n *\n * Scrape any web page and get its content back as clean Markdown (or HTML, or raw HTML) plus title and metadata.\n *\n * Price: $0.0009 per request.\n *\n * @example\n * const res = await client.web.scrape({ url: \"https://example.com\", formats: [\"markdown\", \"html\", \"rawHtml\"], onlyMainContent: true });\n */\n scrape(\n input: WebScrapeInput,\n options?: RequestOptions,\n ): Promise<RunResult<WebScrapeData>> {\n return this._core.run(\"web.scrape\", input, options);\n }\n\n /**\n * Website Screenshot\n *\n * Capture a real-browser screenshot of any web page URL.\n *\n * Price: $0 per request plus $0.00158 per result (maximum $0.00158).\n *\n * @example\n * const res = await client.web.screenshot({ url: \"https://example.com\" });\n */\n screenshot(\n input: WebScreenshotInput,\n options?: RequestOptions,\n ): Promise<RunResult<WebScreenshotData>> {\n return this._core.run(\"web.screenshot\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for Weibo Hot Search (weibo.hot_search).\n */\nexport interface WeiboHotSearchInput {}\n\nexport interface WeiboHotSearchTopic {\n /**\n * Topic popularity value.\n */\n heat?: string;\n /**\n * Hot-search keyword. Populated whenever the provider has data for the entity.\n */\n keyword: string;\n /**\n * Whether the topic is pinned.\n */\n pinned?: boolean;\n /**\n * Ranking position; zero may indicate pinned content. Populated whenever the provider has data for the entity.\n */\n rank: number;\n /**\n * Hot-search label.\n */\n tag?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Weibo Hot Search (weibo.hot_search).\n */\nexport interface WeiboHotSearchData {\n /**\n * Ranked hot-search topics. Populated whenever the provider has data for the entity.\n */\n topics: WeiboHotSearchTopic[];\n /**\n * Total topics.\n */\n total: number;\n}\n\n/**\n * Input for Weibo Post (weibo.post).\n */\nexport interface WeiboPostInput {\n /**\n * Whether to include the full text of long posts.\n * Default: true.\n */\n includeLongText?: string;\n /**\n * Weibo post identifier.\n */\n postId: string;\n}\n\n/**\n * The `data` payload of Weibo Post (weibo.post).\n */\nexport interface WeiboPostData {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Whether the author is verified.\n */\n authorVerified?: boolean;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Attached image count.\n */\n imageCount?: number;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Region label reported by Weibo.\n */\n region?: string;\n /**\n * Repost count.\n */\n reposts?: number;\n /**\n * Short Weibo post identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n shortId?: string;\n /**\n * Plain post text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Weibo Post Comments (weibo.post_comments).\n */\nexport interface WeiboPostCommentsInput {\n /**\n * Pagination cursor returned as nextCursor.\n */\n cursor?: string;\n /**\n * Requested comment count.\n * Default: 10.\n */\n limit?: number;\n /**\n * Weibo post identifier.\n */\n postId: string;\n}\n\nexport interface WeiboPostCommentsComment {\n /**\n * Comment author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Comment author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Comment author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Whether the comment author is verified.\n */\n authorVerified?: boolean;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Comment identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Plain comment text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Weibo Post Comments (weibo.post_comments).\n */\nexport interface WeiboPostCommentsData {\n /**\n * Normalized first-level comments. Populated whenever the provider has data for the entity.\n */\n comments: WeiboPostCommentsComment[];\n /**\n * Cursor for the next page; empty when unavailable.\n */\n nextCursor: string;\n /**\n * Total comments reported by Weibo.\n */\n total: number;\n}\n\n/**\n * Input for Weibo Profile (weibo.profile).\n */\nexport interface WeiboProfileInput {\n /**\n * Weibo user identifier.\n */\n userId: string;\n}\n\n/**\n * The `data` payload of Weibo Profile (weibo.profile).\n */\nexport interface WeiboProfileData {\n /**\n * Profile biography.\n */\n bio?: string;\n /**\n * Custom Weibo username when configured.\n */\n customName?: string;\n /**\n * External profile URL.\n * Format: uri.\n */\n externalUrl?: string;\n /**\n * Follower count.\n */\n followers?: number;\n /**\n * Following count.\n */\n following?: number;\n /**\n * Gender code reported by Weibo.\n */\n gender?: string;\n /**\n * Profile image URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * Profile location.\n */\n location?: string;\n /**\n * Display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Published post count.\n */\n posts?: number;\n /**\n * User identifier. Populated whenever the provider has data for the entity.\n */\n userId: string;\n /**\n * Whether the account is verified.\n */\n verified?: boolean;\n /**\n * Verification reason.\n */\n verifiedReason?: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Weibo Advanced Search (weibo.search).\n */\nexport interface WeiboSearchInput {\n /**\n * Media filter, such as all, pic, video, music, or link.\n */\n includeType?: string;\n /**\n * Page number starting at 1.\n * Default: 1.\n */\n page?: number;\n /**\n * Search keyword.\n */\n query: string;\n /**\n * Search type, such as all, hot, original, verified, media, or viewpoint.\n */\n searchType?: string;\n /**\n * Custom time range in the API's custom:start:end format.\n */\n timeScope?: string;\n}\n\nexport interface WeiboSearchPost {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Whether the result contains an image.\n */\n hasImage?: boolean;\n /**\n * Whether the result contains a video.\n */\n hasVideo?: boolean;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Repost count.\n */\n reposts?: number;\n /**\n * Post text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n /**\n * Post type.\n */\n type?: string;\n /**\n * Canonical post URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n url?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Weibo Advanced Search (weibo.search).\n */\nexport interface WeiboSearchData {\n /**\n * Whether another result page is available.\n */\n hasMore: boolean;\n /**\n * Normalized Weibo search results. Populated whenever the provider has data for the entity.\n */\n posts: WeiboSearchPost[];\n /**\n * Result count reported for this page.\n */\n resultCount: number;\n}\n\n/**\n * Input for Weibo User Posts (weibo.user_posts).\n */\nexport interface WeiboUserPostsInput {\n /**\n * Pagination identifier returned as nextCursor.\n */\n cursor?: string;\n /**\n * Response detail feature: 0 basic, 1 extended, 2 image-oriented, or 3 video-oriented.\n * Default: 0.\n */\n feature?: number;\n /**\n * Page number starting at 1.\n * Default: 1.\n */\n page?: number;\n /**\n * Weibo user identifier.\n */\n userId: string;\n}\n\nexport interface WeiboUserPostsPost {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author user identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorUserId?: string;\n /**\n * Whether the author is verified.\n */\n authorVerified?: boolean;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Post identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Post preview image URL.\n * Format: uri.\n */\n image?: string;\n /**\n * Like count.\n */\n likes?: number;\n /**\n * Repost count.\n */\n reposts?: number;\n /**\n * Short Weibo post identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n shortId?: string;\n /**\n * Plain post text. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n text?: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Weibo User Posts (weibo.user_posts).\n */\nexport interface WeiboUserPostsData {\n /**\n * Cursor for the next page; empty when unavailable.\n */\n nextCursor: string;\n /**\n * Normalized Weibo posts. Populated whenever the provider has data for the entity.\n */\n posts: WeiboUserPostsPost[];\n}\n\n/**\n * Typed methods for the weibo platform. Attached to the AnyAPI client as\n * `client.weibo`.\n */\nexport class WeiboNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Weibo Hot Search\n *\n * Get the complete current Weibo hot-search ranking with labels and heat values.\n *\n * Price: $0.0015 per request.\n *\n * @example\n * const res = await client.weibo.hotSearch({});\n */\n hotSearch(\n input: WeiboHotSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboHotSearchData>> {\n return this._core.run(\"weibo.hot_search\", input, options);\n }\n\n /**\n * Weibo Post\n *\n * Fetch a public Weibo post by ID with normalized author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.post({ postId: \"5092682368025584\", includeLongText: \"true\" });\n */\n post(\n input: WeiboPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboPostData>> {\n return this._core.run(\"weibo.post\", input, options);\n }\n\n /**\n * Weibo Post Comments\n *\n * List first-level comments on a public Weibo post with pagination.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.postComments({ postId: \"5283919831764022\", limit: 10 });\n */\n postComments(\n input: WeiboPostCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboPostCommentsData>> {\n return this._core.run(\"weibo.post_comments\", input, options);\n }\n\n /**\n * Iterate every result of Weibo Post Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterPostComments(\n input: WeiboPostCommentsInput,\n options?: RequestOptions,\n ): Paginator<WeiboPostCommentsComment, RunResult<WeiboPostCommentsData>> {\n return paginate<WeiboPostCommentsComment, RunResult<WeiboPostCommentsData>>(\n this._core,\n \"weibo.post_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * Weibo Profile\n *\n * Fetch a public Weibo profile by user ID with normalized audience and account data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.profile({ userId: \"1722594714\" });\n */\n profile(\n input: WeiboProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboProfileData>> {\n return this._core.run(\"weibo.profile\", input, options);\n }\n\n /**\n * Weibo Advanced Search\n *\n * Search public Weibo posts with optional result, media, and time filters.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.search({ query: \"python\", includeType: \"pic\", page: 1, searchType: \"hot\" });\n */\n search(\n input: WeiboSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboSearchData>> {\n return this._core.run(\"weibo.search\", input, options);\n }\n\n /**\n * Weibo User Posts\n *\n * List public posts from a Weibo user with normalized author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.weibo.userPosts({ userId: \"7277477906\", feature: 3, page: 1 });\n */\n userPosts(\n input: WeiboUserPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<WeiboUserPostsData>> {\n return this._core.run(\"weibo.user_posts\", input, options);\n }\n\n /**\n * Iterate every result of Weibo User Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterUserPosts(\n input: WeiboUserPostsInput,\n options?: RequestOptions,\n ): Paginator<WeiboUserPostsPost, RunResult<WeiboUserPostsData>> {\n return paginate<WeiboUserPostsPost, RunResult<WeiboUserPostsData>>(\n this._core,\n \"weibo.user_posts\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for WhatsApp Number Validator (whatsapp.validate).\n */\nexport interface WhatsappValidateInput {\n /**\n * The phone number to check, in international format.\n */\n phone: string;\n}\n\n/**\n * A WhatsApp validation result: the phone number with its registration status.\n */\nexport interface WhatsappValidateItem {\n /**\n * UTC epoch timestamp in seconds (Unix time) when the check ran. Multiply by 1000 for a JS Date in milliseconds.\n */\n checkedUtc?: number;\n /**\n * True when the number is registered on WhatsApp.\n */\n exists: boolean;\n /**\n * True when the number is a valid, reachable WhatsApp account.\n */\n isValid?: boolean;\n /**\n * The phone number that was checked, in international format. Populated whenever the provider has data for the entity.\n */\n phone: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of WhatsApp Number Validator (whatsapp.validate).\n */\nexport interface WhatsappValidateData {\n /**\n * Validation records for the phone number. Populated whenever the provider has data for the entity.\n */\n items: WhatsappValidateItem[];\n}\n\n/**\n * Typed methods for the whatsapp platform. Attached to the AnyAPI client as\n * `client.whatsapp`.\n */\nexport class WhatsappNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * WhatsApp Number Validator\n *\n * Check whether a phone number is registered on WhatsApp.\n *\n * Price: $0.0035 per request plus $0.001 per result (maximum $0.0045).\n *\n * @example\n * const res = await client.whatsapp.validate({ phone: \"+14155552671\" });\n */\n validate(\n input: WhatsappValidateInput,\n options?: RequestOptions,\n ): Promise<RunResult<WhatsappValidateData>> {\n return this._core.run(\"whatsapp.validate\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Yahoo Finance Quote (yahoo_finance.quote).\n */\nexport interface YahooFinanceQuoteInput {\n /**\n * The ticker symbol to look up.\n */\n ticker: string;\n}\n\nexport interface YahooFinanceQuoteItem {\n /**\n * Absolute price change from the previous close.\n */\n change?: number;\n /**\n * Percent price change from the previous close (e.g. 3.14 means +3.14%).\n */\n changePercent?: number;\n /**\n * Highest trade price during the current session.\n */\n dayHigh?: number;\n /**\n * Lowest trade price during the current session.\n */\n dayLow?: number;\n /**\n * Total market capitalization in the security's native currency.\n */\n marketCap?: number;\n /**\n * The security's display name, e.g. \"Apple Inc.\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * The previous session's closing price.\n */\n previousClose?: number;\n /**\n * The latest trade price in the security's native currency. Populated whenever the provider has data for the entity.\n */\n price: number;\n /**\n * The resolved ticker symbol for the quote, e.g. \"AAPL\". Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n symbol?: string;\n /**\n * Number of shares traded during the current session.\n */\n volume?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Yahoo Finance Quote (yahoo_finance.quote).\n */\nexport interface YahooFinanceQuoteData {\n /**\n * Quote records for the ticker: current price, day range, volume, and market cap. Populated whenever the provider has data for the entity.\n */\n items: YahooFinanceQuoteItem[];\n}\n\n/**\n * Typed methods for the yahoo_finance platform. Attached to the AnyAPI client as\n * `client.yahooFinance`.\n */\nexport class YahooFinanceNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Yahoo Finance Quote\n *\n * Look up a stock or ETF by ticker symbol and get its Yahoo Finance quote (price, market cap, volume, and key stats) as normalized JSON.\n *\n * Price: $0.00005 per request plus $0.0009 per result (maximum $0.00095).\n *\n * @example\n * const res = await client.yahooFinance.quote({ ticker: \"AAPL\" });\n */\n quote(\n input: YahooFinanceQuoteInput,\n options?: RequestOptions,\n ): Promise<RunResult<YahooFinanceQuoteData>> {\n return this._core.run(\"yahoo_finance.quote\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Yelp Search (yelp.search).\n */\nexport interface YelpSearchInput {\n /**\n * Maximum number of results to return (1 to 20, default 20).\n * Range: minimum 1, maximum 20.\n */\n limit?: number;\n /**\n * City and state defining the search area (e.g. San Francisco, CA).\n */\n location: string;\n /**\n * Search term or category to look for (e.g. sushi).\n */\n query: string;\n}\n\nexport interface YelpSearchItem {\n /**\n * Primary street address line.\n */\n address1?: string;\n /**\n * Secondary address line.\n */\n address2?: string;\n /**\n * Tertiary address line.\n */\n address3?: string;\n /**\n * URL slug for the business. Populated whenever the provider has data for the entity.\n */\n alias: string;\n /**\n * Rounded average star rating.\n */\n avg_rating?: number;\n /**\n * Business category tags.\n */\n categories?: YelpSearchCategorie[];\n /**\n * City name.\n */\n city?: string;\n /**\n * ISO country code.\n */\n country?: string;\n /**\n * Dialable phone number.\n */\n dialable_phone?: string;\n /**\n * Stable Yelp business identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Whether the business is permanently closed.\n */\n is_closed?: boolean;\n /**\n * Latitude of the business.\n */\n latitude?: number;\n /**\n * Formatted local phone number.\n */\n localized_phone?: string;\n /**\n * Localized price tier (e.g. $$).\n */\n localized_price?: string;\n /**\n * Longitude of the business.\n */\n longitude?: number;\n /**\n * Business display name. Populated whenever the provider has data for the entity.\n */\n name: string;\n /**\n * Neighborhood labels for the location.\n */\n neighborhoods?: string[];\n /**\n * Raw phone number.\n */\n phone?: string;\n /**\n * Total photo count.\n */\n photo_count?: number;\n /**\n * Primary photo URL. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n photo_url?: string;\n /**\n * Numeric price tier.\n */\n price?: number;\n /**\n * Number of reviews.\n */\n review_count?: number;\n /**\n * State or region code.\n */\n state?: string;\n /**\n * Unrounded average star rating.\n */\n unrounded_avg_rating?: number;\n /**\n * Postal code.\n */\n zip?: string;\n [extra: string]: unknown;\n}\n\nexport interface YelpSearchCategorie {\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Yelp Search (yelp.search).\n */\nexport interface YelpSearchData {\n /**\n * Business listing records: name, categories, rating, review count, address, and core business info. Populated whenever the provider has data for the entity.\n */\n items: YelpSearchItem[];\n}\n\n/**\n * Typed methods for the yelp platform. Attached to the AnyAPI client as\n * `client.yelp`.\n */\nexport class YelpNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Yelp Search\n *\n * Search Yelp for businesses by keyword and location: up to 20 listings with ratings, categories, and core business info per request.\n *\n * Price: $0.04 per request plus $0.00075 per result (maximum $0.055).\n *\n * @example\n * const res = await client.yelp.search({ location: \"Chicago, IL\", query: \"pizza\", limit: 5 });\n */\n search(\n input: YelpSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<YelpSearchData>> {\n return this._core.run(\"yelp.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n Paginator,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\nimport { paginate } from \"../../core/index.js\";\n\n/**\n * Input for YouTube Channel (youtube.channel).\n */\nexport interface YoutubeChannelInput {\n /**\n * YouTube channel ID (UC...).\n */\n channelId?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n}\n\n/**\n * The `data` payload of YouTube Channel (youtube.channel).\n */\nexport interface YoutubeChannelData {\n avatarUrl: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelId: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n description: string;\n subscribers: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n videos: number;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for YouTube Channel Community Posts (youtube.channel_community_posts).\n */\nexport interface YoutubeChannelCommunityPostsInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n}\n\nexport interface YoutubeChannelCommunityPostsPost {\n /**\n * Populated whenever the provider has data for the entity.\n */\n content: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n image: string;\n likeCount: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Community Posts (youtube.channel_community_posts).\n */\nexport interface YoutubeChannelCommunityPostsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n posts: YoutubeChannelCommunityPostsPost[];\n}\n\n/**\n * Input for YouTube Channel Live Streams (youtube.channel_lives).\n */\nexport interface YoutubeChannelLivesInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n}\n\nexport interface YoutubeChannelLivesLive {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Live Streams (youtube.channel_lives).\n */\nexport interface YoutubeChannelLivesData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n lives: YoutubeChannelLivesLive[];\n nextCursor: string;\n}\n\n/**\n * Input for YouTube Channel Playlists (youtube.channel_playlists).\n */\nexport interface YoutubeChannelPlaylistsInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n}\n\nexport interface YoutubeChannelPlaylistsPlaylist {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n playlistUrl: string;\n thumbnail: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n videoCount: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Playlists (youtube.channel_playlists).\n */\nexport interface YoutubeChannelPlaylistsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n playlists: YoutubeChannelPlaylistsPlaylist[];\n}\n\n/**\n * Input for YouTube Channel Shorts (youtube.channel_shorts).\n */\nexport interface YoutubeChannelShortsInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n /**\n * Sort order.\n * One of: newest, popular.\n */\n sort?: \"newest\" | \"popular\";\n}\n\nexport interface YoutubeChannelShortsShort {\n duration: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Shorts (youtube.channel_shorts).\n */\nexport interface YoutubeChannelShortsData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n shorts: YoutubeChannelShortsShort[];\n}\n\n/**\n * Input for YouTube Channel Videos (youtube.channel_videos).\n */\nexport interface YoutubeChannelVideosInput {\n /**\n * YouTube channel ID.\n */\n channelId?: string;\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * YouTube channel handle.\n */\n handle?: string;\n /**\n * Sort order.\n * One of: latest, popular.\n */\n sort?: \"latest\" | \"popular\";\n}\n\nexport interface YoutubeChannelVideosVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Channel Videos (youtube.channel_videos).\n */\nexport interface YoutubeChannelVideosData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: YoutubeChannelVideosVideo[];\n}\n\n/**\n * Input for YouTube Comment Replies (youtube.comment_replies).\n */\nexport interface YoutubeCommentRepliesInput {\n /**\n * Replies continuation token from the comments endpoint, or the continuationToken from a previous replies response for further pagination.\n */\n continuationToken: string;\n}\n\nexport interface YoutubeCommentRepliesComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n authorName: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n content: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Comment Replies (youtube.comment_replies).\n */\nexport interface YoutubeCommentRepliesData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n comments: YoutubeCommentRepliesComment[];\n nextCursor: string;\n}\n\n/**\n * Input for YouTube Community Post (youtube.community_post).\n */\nexport interface YoutubeCommunityPostInput {\n /**\n * URL of the YouTube community post.\n */\n url: string;\n}\n\n/**\n * The `data` payload of YouTube Community Post (youtube.community_post).\n */\nexport interface YoutubeCommunityPostData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelHandle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelTitle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n content: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for YouTube Playlist (youtube.playlist).\n */\nexport interface YoutubePlaylistInput {\n /**\n * The playlist ID: the \"list\" parameter in a playlist URL (e.g. \"PLu0W_9lII9ahIappRPN0MCAgtOu3lQjQi\").\n */\n playlistId: string;\n}\n\nexport interface YoutubePlaylistVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channel: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthSeconds: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n thumbnail: string;\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Playlist (youtube.playlist).\n */\nexport interface YoutubePlaylistData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n owner: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n totalVideos: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: YoutubePlaylistVideo[];\n}\n\n/**\n * Input for YouTube Search (youtube.search).\n */\nexport interface YoutubeSearchInput {\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * The YouTube search query.\n */\n query: string;\n /**\n * Sort order: \"relevance\" (default) or \"popular\" (most-viewed).\n * One of: relevance, popular.\n * Default: relevance.\n */\n sortBy?: \"relevance\" | \"popular\";\n /**\n * Filter by upload recency. Omit for any time.\n * One of: today, this_week, this_month, this_year.\n */\n uploadDate?: \"today\" | \"this_week\" | \"this_month\" | \"this_year\";\n}\n\nexport interface YoutubeSearchVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channel: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Search (youtube.search).\n */\nexport interface YoutubeSearchData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: YoutubeSearchVideo[];\n}\n\n/**\n * Input for YouTube Hashtag Search (youtube.search_hashtag).\n */\nexport interface YoutubeSearchHashtagInput {\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * Hashtag to search for (without the leading #).\n */\n hashtag: string;\n /**\n * Content filter.\n * One of: all, shorts.\n */\n type?: \"all\" | \"shorts\";\n}\n\nexport interface YoutubeSearchHashtagVideo {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelTitle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n lengthText: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Hashtag Search (youtube.search_hashtag).\n */\nexport interface YoutubeSearchHashtagData {\n nextCursor: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videos: YoutubeSearchHashtagVideo[];\n}\n\n/**\n * Input for YouTube Trending Shorts (youtube.trending_shorts).\n */\nexport interface YoutubeTrendingShortsInput {}\n\nexport interface YoutubeTrendingShortsShort {\n /**\n * Populated whenever the provider has data for the entity.\n */\n channelTitle: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n duration: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n url: string;\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Trending Shorts (youtube.trending_shorts).\n */\nexport interface YoutubeTrendingShortsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n shorts: YoutubeTrendingShortsShort[];\n}\n\n/**\n * Input for YouTube Video (youtube.video).\n */\nexport interface YoutubeVideoInput {\n /**\n * YouTube video ID.\n */\n id?: string;\n /**\n * Full YouTube video URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of YouTube Video (youtube.video).\n */\nexport interface YoutubeVideoData {\n /**\n * Name of the channel that published the video. Populated whenever the provider has data for the entity.\n */\n channel: string;\n /**\n * Number of comments.\n */\n comments: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n */\n createdUtc: number;\n /**\n * Duration of the video in milliseconds.\n */\n durationMs: number;\n /**\n * Unique identifier of the video. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Number of likes.\n */\n likes: number;\n /**\n * Title of the video. Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Number of views.\n */\n views: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for YouTube Video Comments (youtube.video_comments).\n */\nexport interface YoutubeVideoCommentsInput {\n /**\n * Continuation token from a previous response for pagination.\n */\n cursor?: string;\n /**\n * Comment order (e.g. top, newest).\n */\n order?: string;\n /**\n * Full YouTube video URL.\n */\n url: string;\n}\n\nexport interface YoutubeVideoCommentsComment {\n /**\n * Populated whenever the provider has data for the entity.\n */\n author: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n id: string;\n likes: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n publishedTime: string;\n replies: number;\n /**\n * Populated whenever the provider has data for the entity.\n */\n text: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Video Comments (youtube.video_comments).\n */\nexport interface YoutubeVideoCommentsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n comments: YoutubeVideoCommentsComment[];\n nextCursor: string;\n}\n\n/**\n * Input for YouTube Video Sponsors (youtube.video_sponsors).\n */\nexport interface YoutubeVideoSponsorsInput {\n /**\n * 2-letter language code for transcript lookup (e.g. en, es, fr).\n */\n language?: string;\n /**\n * YouTube video or Short URL.\n */\n url: string;\n}\n\nexport interface YoutubeVideoSponsorsSuspectedSponsor {\n confidence: string;\n name: string;\n website: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of YouTube Video Sponsors (youtube.video_sponsors).\n */\nexport interface YoutubeVideoSponsorsData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n detectionStatus: string;\n isPaidPromotion: boolean;\n suspectedSponsors: YoutubeVideoSponsorsSuspectedSponsor[];\n /**\n * Populated whenever the provider has data for the entity.\n */\n title: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n videoId: string;\n}\n\n/**\n * Input for YouTube Video Transcript (youtube.video_transcript).\n */\nexport interface YoutubeVideoTranscriptInput {\n /**\n * YouTube video ID.\n */\n id?: string;\n /**\n * Full YouTube video URL.\n */\n url?: string;\n}\n\n/**\n * The `data` payload of YouTube Video Transcript (youtube.video_transcript).\n */\nexport interface YoutubeVideoTranscriptData {\n /**\n * Populated whenever the provider has data for the entity.\n */\n language: string;\n /**\n * Populated whenever the provider has data for the entity.\n */\n transcript: string;\n [extra: string]: unknown;\n}\n\n/**\n * Typed methods for the youtube platform. Attached to the AnyAPI client as\n * `client.youtube`.\n */\nexport class YoutubeNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * YouTube Channel\n *\n * Fetch a YouTube channel's stats (subscribers, video count, total views, description) by handle or channel ID, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channel({ handle: \"@mkbhd\" });\n */\n channel(\n input: YoutubeChannelInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelData>> {\n return this._core.run(\"youtube.channel\", input, options);\n }\n\n /**\n * YouTube Channel Community Posts\n *\n * List a YouTube channel's community posts by handle or channel ID with cursor pagination (text, likes, image, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelCommunityPosts({ handle: \"@MrBeast\" });\n */\n channelCommunityPosts(\n input: YoutubeChannelCommunityPostsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelCommunityPostsData>> {\n return this._core.run(\"youtube.channel_community_posts\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Community Posts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelCommunityPosts(\n input: YoutubeChannelCommunityPostsInput,\n options?: RequestOptions,\n ): Paginator<\n YoutubeChannelCommunityPostsPost,\n RunResult<YoutubeChannelCommunityPostsData>\n > {\n return paginate<\n YoutubeChannelCommunityPostsPost,\n RunResult<YoutubeChannelCommunityPostsData>\n >(\n this._core,\n \"youtube.channel_community_posts\",\n input as unknown as Record<string, unknown>,\n \"posts\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Channel Live Streams\n *\n * List a YouTube channel's live and past-live streams by handle or channel ID with cursor pagination (title, views, length, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelLives({ handle: \"@IShowSpeed\" });\n */\n channelLives(\n input: YoutubeChannelLivesInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelLivesData>> {\n return this._core.run(\"youtube.channel_lives\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Live Streams across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelLives(\n input: YoutubeChannelLivesInput,\n options?: RequestOptions,\n ): Paginator<YoutubeChannelLivesLive, RunResult<YoutubeChannelLivesData>> {\n return paginate<\n YoutubeChannelLivesLive,\n RunResult<YoutubeChannelLivesData>\n >(\n this._core,\n \"youtube.channel_lives\",\n input as unknown as Record<string, unknown>,\n \"lives\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Channel Playlists\n *\n * List a YouTube channel's playlists by handle or channel ID with cursor pagination (title, video count, thumbnail), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelPlaylists({ handle: \"@veritasium\" });\n */\n channelPlaylists(\n input: YoutubeChannelPlaylistsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelPlaylistsData>> {\n return this._core.run(\"youtube.channel_playlists\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Playlists across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelPlaylists(\n input: YoutubeChannelPlaylistsInput,\n options?: RequestOptions,\n ): Paginator<\n YoutubeChannelPlaylistsPlaylist,\n RunResult<YoutubeChannelPlaylistsData>\n > {\n return paginate<\n YoutubeChannelPlaylistsPlaylist,\n RunResult<YoutubeChannelPlaylistsData>\n >(\n this._core,\n \"youtube.channel_playlists\",\n input as unknown as Record<string, unknown>,\n \"playlists\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Channel Shorts\n *\n * List a YouTube channel's Shorts by handle or channel ID with cursor pagination (title, views, likes, duration), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelShorts({ handle: \"@starterstory\" });\n */\n channelShorts(\n input: YoutubeChannelShortsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelShortsData>> {\n return this._core.run(\"youtube.channel_shorts\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Shorts across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelShorts(\n input: YoutubeChannelShortsInput,\n options?: RequestOptions,\n ): Paginator<YoutubeChannelShortsShort, RunResult<YoutubeChannelShortsData>> {\n return paginate<\n YoutubeChannelShortsShort,\n RunResult<YoutubeChannelShortsData>\n >(\n this._core,\n \"youtube.channel_shorts\",\n input as unknown as Record<string, unknown>,\n \"shorts\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Channel Videos\n *\n * List a YouTube channel's videos by handle or channel ID with cursor pagination (title, views, length, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.channelVideos({ handle: \"@mkbhd\" });\n */\n channelVideos(\n input: YoutubeChannelVideosInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeChannelVideosData>> {\n return this._core.run(\"youtube.channel_videos\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Channel Videos across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterChannelVideos(\n input: YoutubeChannelVideosInput,\n options?: RequestOptions,\n ): Paginator<YoutubeChannelVideosVideo, RunResult<YoutubeChannelVideosData>> {\n return paginate<\n YoutubeChannelVideosVideo,\n RunResult<YoutubeChannelVideosData>\n >(\n this._core,\n \"youtube.channel_videos\",\n input as unknown as Record<string, unknown>,\n \"videos\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Comment Replies\n *\n * List replies to a YouTube comment using a continuation token with cursor pagination (text, author, likes, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.commentReplies({ continuationToken: \"Eg0SC19fZm1EajBaSjFRGAYygwEaUBIaVWd3aXRjRk9fdmtpM0x4LUNfZDRBYUFCQWciAggAKhhVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEyC19fZm1EajBaSjFRQABICoIBAggBQi9jb21tZW50LXJlcGxpZXMtaXRlbS1VZ3dpdGNGT192a2kzTHgtQ19kNEFhQUJBZw==\" });\n */\n commentReplies(\n input: YoutubeCommentRepliesInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeCommentRepliesData>> {\n return this._core.run(\"youtube.comment_replies\", input, options);\n }\n\n /**\n * YouTube Community Post\n *\n * Fetch a single YouTube community post by URL (text, images, channel, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.communityPost({ url: \"https://www.youtube.com/post/Ugkx1LonSRBBUqASv-J8j9_FesxwlMAhT3_e\" });\n */\n communityPost(\n input: YoutubeCommunityPostInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeCommunityPostData>> {\n return this._core.run(\"youtube.community_post\", input, options);\n }\n\n /**\n * YouTube Playlist\n *\n * List every video in a YouTube playlist (title, length, and channel per video plus playlist owner and totals), normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.playlist({ playlistId: \"PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj\" });\n */\n playlist(\n input: YoutubePlaylistInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubePlaylistData>> {\n return this._core.run(\"youtube.playlist\", input, options);\n }\n\n /**\n * YouTube Search\n *\n * Search YouTube and get matching videos (title, channel, views, length, publish time) as normalized JSON, across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.search({ query: \"how to cook rice\" });\n */\n search(\n input: YoutubeSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeSearchData>> {\n return this._core.run(\"youtube.search\", input, options);\n }\n\n /**\n * YouTube Hashtag Search\n *\n * Search YouTube videos by hashtag with cursor pagination (title, channel, views, length, publish time), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.searchHashtag({ hashtag: \"funny\" });\n */\n searchHashtag(\n input: YoutubeSearchHashtagInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeSearchHashtagData>> {\n return this._core.run(\"youtube.search_hashtag\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Hashtag Search across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterSearchHashtag(\n input: YoutubeSearchHashtagInput,\n options?: RequestOptions,\n ): Paginator<YoutubeSearchHashtagVideo, RunResult<YoutubeSearchHashtagData>> {\n return paginate<\n YoutubeSearchHashtagVideo,\n RunResult<YoutubeSearchHashtagData>\n >(\n this._core,\n \"youtube.search_hashtag\",\n input as unknown as Record<string, unknown>,\n \"videos\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Trending Shorts\n *\n * List currently trending YouTube Shorts (title, channel, views, likes, duration), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.trendingShorts({});\n */\n trendingShorts(\n input: YoutubeTrendingShortsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeTrendingShortsData>> {\n return this._core.run(\"youtube.trending_shorts\", input, options);\n }\n\n /**\n * YouTube Video\n *\n * Fetch a YouTube video's metadata (title, channel, views, likes, duration, publish date) by URL or ID, normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.video({ url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" });\n */\n video(\n input: YoutubeVideoInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeVideoData>> {\n return this._core.run(\"youtube.video\", input, options);\n }\n\n /**\n * YouTube Video Comments\n *\n * List the comments on a YouTube video by URL with cursor pagination (text, author, likes, reply count), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.videoComments({ url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" });\n */\n videoComments(\n input: YoutubeVideoCommentsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeVideoCommentsData>> {\n return this._core.run(\"youtube.video_comments\", input, options);\n }\n\n /**\n * Iterate every result of YouTube Video Comments across pages.\n *\n * Yields items directly; call `.pages()` on the return value to walk whole\n * result pages instead (each carries its own costUsd).\n */\n iterVideoComments(\n input: YoutubeVideoCommentsInput,\n options?: RequestOptions,\n ): Paginator<\n YoutubeVideoCommentsComment,\n RunResult<YoutubeVideoCommentsData>\n > {\n return paginate<\n YoutubeVideoCommentsComment,\n RunResult<YoutubeVideoCommentsData>\n >(\n this._core,\n \"youtube.video_comments\",\n input as unknown as Record<string, unknown>,\n \"comments\",\n false,\n options,\n );\n }\n\n /**\n * YouTube Video Sponsors\n *\n * Detect suspected sponsors and paid promotions in a YouTube video by URL (sponsor names, websites, confidence), normalized across providers.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.videoSponsors({ url: \"https://www.youtube.com/watch?v=AVO0ifle-OU\" });\n */\n videoSponsors(\n input: YoutubeVideoSponsorsInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeVideoSponsorsData>> {\n return this._core.run(\"youtube.video_sponsors\", input, options);\n }\n\n /**\n * YouTube Video Transcript\n *\n * Fetch the transcript/captions of a YouTube video by URL or ID, normalized across providers with transparent failover.\n *\n * Price: $0.002 per request.\n *\n * @example\n * const res = await client.youtube.videoTranscript({ url: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" });\n */\n videoTranscript(\n input: YoutubeVideoTranscriptInput,\n options?: RequestOptions,\n ): Promise<RunResult<YoutubeVideoTranscriptData>> {\n return this._core.run(\"youtube.video_transcript\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Zhihu Answer (zhihu.answer).\n */\nexport interface ZhihuAnswerInput {\n /**\n * Zhihu answer identifier.\n */\n answerId: string;\n}\n\n/**\n * The `data` payload of Zhihu Answer (zhihu.answer).\n */\nexport interface ZhihuAnswerData {\n /**\n * Author headline.\n */\n authorHeadline?: string;\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author URL token.\n */\n authorToken?: string;\n /**\n * Author identifier.\n */\n authorUserId?: string;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Answer excerpt. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n excerpt?: string;\n /**\n * Answer identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Parent question identifier. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n questionId?: string;\n /**\n * Parent question title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n questionTitle?: string;\n /**\n * Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Canonical answer URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Zhihu Profile (zhihu.profile).\n */\nexport interface ZhihuProfileInput {\n /**\n * Zhihu user URL token.\n */\n userToken: string;\n}\n\n/**\n * The `data` payload of Zhihu Profile (zhihu.profile).\n */\nexport interface ZhihuProfileData {\n /**\n * Published answer count.\n */\n answers?: number;\n /**\n * Published article count.\n */\n articles?: number;\n /**\n * Follower count.\n */\n followers?: number;\n /**\n * Gender code reported by Zhihu.\n */\n gender?: number;\n /**\n * Profile headline. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n headline?: string;\n /**\n * User identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Profile image URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n /**\n * IP location label reported by Zhihu.\n */\n ipLocation?: string;\n /**\n * Display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n name?: string;\n /**\n * Whether this is an organization profile.\n */\n organization?: boolean;\n /**\n * Canonical profile URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * User URL token. Populated whenever the provider has data for the entity.\n */\n userToken: string;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Zhihu Question (zhihu.question).\n */\nexport interface ZhihuQuestionInput {\n /**\n * Zhihu question identifier.\n */\n questionId: string;\n}\n\n/**\n * The `data` payload of Zhihu Question (zhihu.question).\n */\nexport interface ZhihuQuestionData {\n /**\n * Answer count.\n */\n answers?: number;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Question body as returned by Zhihu. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n description?: string;\n /**\n * Short question excerpt.\n */\n excerpt?: string;\n /**\n * Follower count.\n */\n followers?: number;\n /**\n * Question identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Question title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Canonical question URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * View count.\n */\n views?: number;\n [extra: string]: unknown;\n}\n\n/**\n * Input for Zhihu Question Answers (zhihu.question_answers).\n */\nexport interface ZhihuQuestionAnswersInput {\n /**\n * Pagination cursor from an answer item in the previous response.\n * Default: .\n */\n cursor?: string;\n /**\n * Number of answers requested per page.\n * Default: 5.\n */\n limit?: number;\n /**\n * Pagination offset.\n * Default: 0.\n */\n offset?: number;\n /**\n * Answer ordering: default ranking or recently updated.\n * One of: default, updated.\n * Default: default.\n */\n order?: \"default\" | \"updated\";\n /**\n * Zhihu question identifier.\n */\n questionId: string;\n /**\n * Pagination session identifier returned in the previous response.\n * Default: .\n */\n sessionId?: string;\n}\n\nexport interface ZhihuQuestionAnswersAnswer {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author URL token.\n */\n authorToken?: string;\n /**\n * Author identifier.\n */\n authorUserId?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n createdUtc?: number;\n /**\n * Cursor associated with this answer; use the final item cursor for the next page.\n */\n cursor?: string;\n /**\n * Answer excerpt. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n excerpt?: string;\n /**\n * Answer identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Save count.\n */\n saves?: number;\n /**\n * Thanks count.\n */\n thanks?: number;\n /**\n * Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Canonical answer URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * Upvote count.\n */\n votes?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Zhihu Question Answers (zhihu.question_answers).\n */\nexport interface ZhihuQuestionAnswersData {\n /**\n * Normalized answers. Populated whenever the provider has data for the entity.\n */\n answers: ZhihuQuestionAnswersAnswer[];\n /**\n * Whether the result set has reached its final page.\n */\n isEnd: boolean;\n /**\n * Session identifier to pass when requesting another page.\n */\n sessionId: string;\n}\n\n/**\n * Input for Zhihu Article Search (zhihu.search_articles).\n */\nexport interface ZhihuSearchArticlesInput {\n /**\n * Number of articles requested per page.\n * Default: 20.\n */\n limit?: string;\n /**\n * Result offset returned as nextOffset in the previous response.\n * Default: 0.\n */\n offset?: string;\n /**\n * Search keyword.\n */\n query: string;\n /**\n * Search hash identifier returned in the previous response.\n * Default: .\n */\n searchHashId?: string;\n /**\n * Whether to include all topics: 0 excludes them and 1 includes them.\n * Default: 0.\n */\n showAllTopics?: number;\n /**\n * Article ordering: comprehensive, most upvoted, or newest.\n * One of: , upvoted_count, created_time.\n * Default: .\n */\n sort?: \"\" | \"upvoted_count\" | \"created_time\";\n /**\n * Optional publication-time filter.\n * One of: , a_day, a_week, a_month, three_months, half_a_year, a_year.\n * Default: .\n */\n timeInterval?:\n | \"\"\n | \"a_day\"\n | \"a_week\"\n | \"a_month\"\n | \"three_months\"\n | \"half_a_year\"\n | \"a_year\";\n /**\n * Article-search vertical continuation state returned as nextVerticalInfo in the previous response.\n * Default: 0,0,0,0,0,0,0,0,0,2,0,0.\n */\n verticalInfo?: string;\n}\n\nexport interface ZhihuSearchArticlesArticle {\n /**\n * Author avatar URL.\n * Format: uri.\n */\n authorImage?: string;\n /**\n * Author display name. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n authorName?: string;\n /**\n * Author URL token.\n */\n authorToken?: string;\n /**\n * Author identifier.\n */\n authorUserId?: string;\n /**\n * Comment count.\n */\n comments?: number;\n /**\n * UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n createdUtc?: number;\n /**\n * Article excerpt. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n excerpt?: string;\n /**\n * Article identifier. Populated whenever the provider has data for the entity.\n */\n id: string;\n /**\n * Article title. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n title?: string;\n /**\n * Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.\n */\n updatedUtc?: number;\n /**\n * Canonical article URL. Populated whenever the provider has data for the entity.\n * Format: uri.\n */\n url: string;\n /**\n * Upvote count.\n */\n votes?: number;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Zhihu Article Search (zhihu.search_articles).\n */\nexport interface ZhihuSearchArticlesData {\n /**\n * Normalized article results. Populated whenever the provider has data for the entity.\n */\n articles: ZhihuSearchArticlesArticle[];\n /**\n * Whether the result set has reached its final page.\n */\n isEnd: boolean;\n /**\n * Result offset to pass as offset when requesting the next page.\n */\n nextOffset: string;\n /**\n * Article-search vertical continuation state to pass as verticalInfo when requesting the next page.\n */\n nextVerticalInfo: string;\n /**\n * Search hash identifier to pass when requesting another page.\n */\n searchHashId: string;\n}\n\n/**\n * Typed methods for the zhihu platform. Attached to the AnyAPI client as\n * `client.zhihu`.\n */\nexport class ZhihuNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Zhihu Answer\n *\n * Fetch a public Zhihu answer with normalized author and question data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.answer({ answerId: \"2054145988235880002\" });\n */\n answer(\n input: ZhihuAnswerInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuAnswerData>> {\n return this._core.run(\"zhihu.answer\", input, options);\n }\n\n /**\n * Zhihu Profile\n *\n * Fetch a public Zhihu profile with normalized identity and audience data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.profile({ userToken: \"ming-he-43-93\" });\n */\n profile(\n input: ZhihuProfileInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuProfileData>> {\n return this._core.run(\"zhihu.profile\", input, options);\n }\n\n /**\n * Zhihu Question\n *\n * Fetch a public Zhihu question with normalized text and engagement statistics.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.question({ questionId: \"37811449\" });\n */\n question(\n input: ZhihuQuestionInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuQuestionData>> {\n return this._core.run(\"zhihu.question\", input, options);\n }\n\n /**\n * Zhihu Question Answers\n *\n * List public answers to a Zhihu question with normalized authors and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.questionAnswers({ questionId: \"37811449\", limit: 5, offset: 0, order: \"default\" });\n */\n questionAnswers(\n input: ZhihuQuestionAnswersInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuQuestionAnswersData>> {\n return this._core.run(\"zhihu.question_answers\", input, options);\n }\n\n /**\n * Zhihu Article Search\n *\n * Search public Zhihu articles by keyword with normalized author and engagement data.\n *\n * Price: $0.001 per request.\n *\n * @example\n * const res = await client.zhihu.searchArticles({ query: \"deepseek\", limit: \"20\", showAllTopics: 0 });\n */\n searchArticles(\n input: ZhihuSearchArticlesInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZhihuSearchArticlesData>> {\n return this._core.run(\"zhihu.search_articles\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport type {\n ClientCore,\n RequestOptions,\n RunResult,\n} from \"../../core/index.js\";\n\n/**\n * Input for Zillow Property (zillow.property).\n */\nexport interface ZillowPropertyInput {\n /**\n * Zillow property details URL (e.g. https://www.zillow.com/homedetails/123-Main-St-Anytown-CA-90210/12345678_zpid/).\n */\n url: string;\n}\n\nexport interface ZillowPropertyItem {\n /**\n * Street address line of the property.\n */\n addressLine?: string;\n /**\n * Number of bathrooms.\n */\n baths?: number;\n /**\n * Number of bedrooms.\n */\n beds?: number;\n /**\n * City the property is in.\n */\n city?: string;\n /**\n * County the property is in.\n */\n county?: string;\n /**\n * Currency code for the price (e.g. USD).\n */\n currency?: string;\n /**\n * Listing description text.\n */\n description?: string;\n /**\n * Listing status (e.g. FOR_SALE, RECENTLY_SOLD, OTHER).\n */\n homeStatus?: string;\n /**\n * Home type (e.g. SINGLE_FAMILY, CONDO, TOWNHOUSE).\n */\n homeType?: string;\n /**\n * Primary listing photo URL.\n */\n image?: string;\n /**\n * Latitude of the property in decimal degrees.\n */\n latitude?: number;\n /**\n * Longitude of the property in decimal degrees.\n */\n longitude?: number;\n /**\n * Postal (ZIP) code of the property.\n */\n postalCode?: string;\n /**\n * Listed price in the listing currency.\n */\n price?: number;\n /**\n * Annual property tax rate as a percentage.\n */\n propertyTaxRate?: number;\n /**\n * Interior living area in square feet.\n */\n sqft?: number;\n /**\n * Two-letter state code the property is in.\n */\n state?: string;\n /**\n * Street address line used as the property title.\n */\n title?: string;\n /**\n * Canonical Zillow property detail page URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n /**\n * Zillow property id (zpid), the stable identifier for the property. Populated whenever the provider has data for the entity.\n */\n zpid: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Zillow Property (zillow.property).\n */\nexport interface ZillowPropertyData {\n /**\n * The matched property record (single element for a property lookup). Populated whenever the provider has data for the entity.\n */\n items: ZillowPropertyItem[];\n}\n\n/**\n * Input for Zillow Search (zillow.search).\n */\nexport interface ZillowSearchInput {\n /**\n * Only include listings on Zillow at most this long (e.g. 1_week).\n * One of: 1_day, 1_week, 2_weeks, 1_month, 3_months, 6_months, 12_months, 24_months, 36_months.\n */\n daysOnZillow?:\n | \"1_day\"\n | \"1_week\"\n | \"2_weeks\"\n | \"1_month\"\n | \"3_months\"\n | \"6_months\"\n | \"12_months\"\n | \"24_months\"\n | \"36_months\";\n /**\n * Filter by property type; omit for any. Rentals support only singleFamily, multiFamily, townhome, and condo (e.g. [\"singleFamily\", \"condo\"]).\n */\n homeTypes?: (\n | \"singleFamily\"\n | \"multiFamily\"\n | \"townhome\"\n | \"condo\"\n | \"apartment\"\n | \"manufactured\"\n | \"land\"\n )[];\n /**\n * Include listings accepting backup offers, which Zillow excludes by default (e.g. true).\n */\n includeAcceptingBackupOffers?: boolean;\n /**\n * Include pending and under-contract listings, which Zillow excludes by default (e.g. true).\n */\n includePendingAndUnderContract?: boolean;\n /**\n * Include room-for-rent listings in rent searches; when omitted or false only entire places are returned (e.g. true).\n */\n includeRoomForRent?: boolean;\n /**\n * Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.\n * Range: minimum 1, maximum 25.\n */\n limit?: number;\n /**\n * Listing types to include for buy searches; omit for all standard types. fsba = agent listed, fsbo = for sale by owner. Ignored for rent and sold (e.g. [\"newConstruction\"]).\n */\n listingTypes?: (\n | \"fsba\"\n | \"fsbo\"\n | \"newConstruction\"\n | \"comingSoon\"\n | \"auction\"\n | \"foreclosure\"\n | \"foreclosed\"\n | \"preforeclosure\"\n )[];\n /**\n * Region-level location to search: ZIP code, city and state, county, or neighborhood (e.g. 'Austin, TX' or '78701'). Street addresses are not supported; use the property's ZIP code instead.\n */\n location: string;\n /**\n * Maximum number of bedrooms (e.g. 5).\n * Range: minimum 0.\n */\n maxBedrooms?: number;\n /**\n * Maximum living area in square feet (e.g. 3000).\n * Range: minimum 0.\n */\n maxLivingAreaSqft?: number;\n /**\n * Maximum price in USD: monthly rent for rentals, total price for buy/sold (e.g. 750000).\n * Range: minimum 0.\n */\n maxPrice?: number;\n /**\n * Minimum number of bedrooms (e.g. 3).\n * Range: minimum 0.\n */\n minBedrooms?: number;\n /**\n * Minimum living area in square feet (e.g. 1500).\n * Range: minimum 0.\n */\n minLivingAreaSqft?: number;\n /**\n * Minimum price in USD: monthly rent for rentals, total price for buy/sold (e.g. 250000).\n * Range: minimum 0.\n */\n minPrice?: number;\n /**\n * Listing type: buy (for sale), rent, or sold.\n * One of: buy, rent, sold.\n * Default: buy.\n */\n operation?: \"buy\" | \"rent\" | \"sold\";\n /**\n * Only show listings with a price reduction. Buy searches only; ignored for rentals (e.g. true).\n */\n showOnlyPriceReductions?: boolean;\n /**\n * Sort order for results; omit for Zillow's default relevance. rentalPriorityScore applies to rent searches only (e.g. newest).\n * One of: newest, recentlyChanged, price_high, price_low, bedrooms, bathrooms, rentalPriorityScore.\n */\n sortBy?:\n | \"newest\"\n | \"recentlyChanged\"\n | \"price_high\"\n | \"price_low\"\n | \"bedrooms\"\n | \"bathrooms\"\n | \"rentalPriorityScore\";\n}\n\nexport interface ZillowSearchItem {\n /**\n * Number of bathrooms.\n */\n baths?: number;\n /**\n * Number of bedrooms.\n */\n beds?: number;\n city?: string;\n /**\n * ISO currency code of the price (e.g. usd).\n */\n currency?: string;\n /**\n * Days the listing has been on Zillow.\n */\n daysOnZillow?: number;\n /**\n * URL of the primary listing photo. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n image?: string;\n latitude?: number;\n /**\n * Interior living area in square feet.\n */\n livingArea?: number;\n longitude?: number;\n /**\n * Lot size in square feet.\n */\n lotSize?: number;\n /**\n * List price in the listing currency.\n */\n price?: number;\n /**\n * Property type (e.g. singleFamily, condo, townhouse).\n */\n propertyType?: string;\n /**\n * Zillow estimated monthly rent.\n */\n rentZestimate?: number;\n /**\n * Two-letter state code.\n */\n state?: string;\n /**\n * Listing status (e.g. forSale, forRent, sold).\n */\n status?: string;\n /**\n * Street address of the property. Populated whenever the provider has data for the entity.\n * Present whenever the upstream returns this record.\n */\n streetAddress?: string;\n /**\n * Absolute Zillow listing URL. Populated whenever the provider has data for the entity.\n */\n url: string;\n yearBuilt?: number;\n /**\n * Zillow estimated market value.\n */\n zestimate?: number;\n zipcode?: string;\n /**\n * Zillow property id (zpid). Populated whenever the provider has data for the entity.\n */\n zpid: string;\n [extra: string]: unknown;\n}\n\n/**\n * The `data` payload of Zillow Search (zillow.search).\n */\nexport interface ZillowSearchData {\n /**\n * Property listing records matching the search: address, price, beds, baths, living area, property type, status, Zestimate, and coordinates. Populated whenever the provider has data for the entity.\n */\n items: ZillowSearchItem[];\n}\n\n/**\n * Typed methods for the zillow platform. Attached to the AnyAPI client as\n * `client.zillow`.\n */\nexport class ZillowNamespace {\n constructor(private readonly _core: ClientCore) {}\n\n /**\n * Zillow Property\n *\n * Fetch full details for a single Zillow property listing by URL (price, facts and features, photos, and price/tax history).\n *\n * Price: $0 per request plus $0.0024 per result (maximum $0.0024).\n *\n * @example\n * const res = await client.zillow.property({ url: \"https://www.zillow.com/homedetails/4510-Secure-Ln-Austin-TX-78725/83126034_zpid/\" });\n */\n property(\n input: ZillowPropertyInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZillowPropertyData>> {\n return this._core.run(\"zillow.property\", input, options);\n }\n\n /**\n * Zillow Search\n *\n * Search Zillow for-sale, rental, or sold listings by region-level location (city, ZIP, county, or neighborhood) with optional price, bedroom, living-area, home-type, recency, and sort filters and get matching properties (price, address, beds, baths, living area, status, Zestimate) as normalized JSON.\n *\n * Price: $0.0005 per request plus $0.003 per result (maximum $0.0755).\n *\n * @example\n * const res = await client.zillow.search({ location: \"Austin, TX\", limit: 3, maxPrice: 900000, minBedrooms: 3, operation: \"buy\" });\n */\n search(\n input: ZillowSearchInput,\n options?: RequestOptions,\n ): Promise<RunResult<ZillowSearchData>> {\n return this._core.run(\"zillow.search\", input, options);\n }\n}\n","// Generated - do not edit. Regenerate with: pnpm generate\n\nimport { AnyAPI as AnyAPIBase } from \"../core/index.js\";\n\nimport type { RequestOptions, RunResult } from \"../core/index.js\";\n\nimport type { SkuMap } from \"./sku-map.js\";\n\nimport { AhrefsNamespace } from \"./platforms/ahrefs.js\";\nimport { AirbnbNamespace } from \"./platforms/airbnb.js\";\nimport { AlibabaNamespace } from \"./platforms/alibaba.js\";\nimport { AmazonNamespace } from \"./platforms/amazon.js\";\nimport { ApolloNamespace } from \"./platforms/apollo.js\";\nimport { AppstoreNamespace } from \"./platforms/appstore.js\";\nimport { BlueskyNamespace } from \"./platforms/bluesky.js\";\nimport { BookingNamespace } from \"./platforms/booking.js\";\nimport { CoinmarketcapNamespace } from \"./platforms/coinmarketcap.js\";\nimport { CongressNamespace } from \"./platforms/congress.js\";\nimport { DexscreenerNamespace } from \"./platforms/dexscreener.js\";\nimport { DouyinNamespace } from \"./platforms/douyin.js\";\nimport { EbayNamespace } from \"./platforms/ebay.js\";\nimport { EmailNamespace } from \"./platforms/email.js\";\nimport { FacebookNamespace } from \"./platforms/facebook.js\";\nimport { FiverrNamespace } from \"./platforms/fiverr.js\";\nimport { GithubNamespace } from \"./platforms/github.js\";\nimport { GlassdoorNamespace } from \"./platforms/glassdoor.js\";\nimport { GoogleNamespace } from \"./platforms/google.js\";\nimport { GoogleAdsNamespace } from \"./platforms/google_ads.js\";\nimport { GoogleFinanceNamespace } from \"./platforms/google_finance.js\";\nimport { GoogleShoppingNamespace } from \"./platforms/google_shopping.js\";\nimport { HackernewsNamespace } from \"./platforms/hackernews.js\";\nimport { IndeedNamespace } from \"./platforms/indeed.js\";\nimport { InstagramNamespace } from \"./platforms/instagram.js\";\nimport { LinkedinNamespace } from \"./platforms/linkedin.js\";\nimport { MapsNamespace } from \"./platforms/maps.js\";\nimport { PandaexpressNamespace } from \"./platforms/pandaexpress.js\";\nimport { PersonNamespace } from \"./platforms/person.js\";\nimport { PinterestNamespace } from \"./platforms/pinterest.js\";\nimport { PlaystoreNamespace } from \"./platforms/playstore.js\";\nimport { PolymarketNamespace } from \"./platforms/polymarket.js\";\nimport { RealtorNamespace } from \"./platforms/realtor.js\";\nimport { RedditNamespace } from \"./platforms/reddit.js\";\nimport { RedfinNamespace } from \"./platforms/redfin.js\";\nimport { RednoteNamespace } from \"./platforms/rednote.js\";\nimport { SecNamespace } from \"./platforms/sec.js\";\nimport { SemrushNamespace } from \"./platforms/semrush.js\";\nimport { SeoNamespace } from \"./platforms/seo.js\";\nimport { SnapchatNamespace } from \"./platforms/snapchat.js\";\nimport { SocialNamespace } from \"./platforms/social.js\";\nimport { SpotifyNamespace } from \"./platforms/spotify.js\";\nimport { SubstackNamespace } from \"./platforms/substack.js\";\nimport { ThreadsNamespace } from \"./platforms/threads.js\";\nimport { TiktokNamespace } from \"./platforms/tiktok.js\";\nimport { TiktokShopNamespace } from \"./platforms/tiktok_shop.js\";\nimport { TripadvisorNamespace } from \"./platforms/tripadvisor.js\";\nimport { TrustpilotNamespace } from \"./platforms/trustpilot.js\";\nimport { TruthsocialNamespace } from \"./platforms/truthsocial.js\";\nimport { TwitterNamespace } from \"./platforms/twitter.js\";\nimport { UpworkNamespace } from \"./platforms/upwork.js\";\nimport { WalmartNamespace } from \"./platforms/walmart.js\";\nimport { WebNamespace } from \"./platforms/web.js\";\nimport { WeiboNamespace } from \"./platforms/weibo.js\";\nimport { WhatsappNamespace } from \"./platforms/whatsapp.js\";\nimport { YahooFinanceNamespace } from \"./platforms/yahoo_finance.js\";\nimport { YelpNamespace } from \"./platforms/yelp.js\";\nimport { YoutubeNamespace } from \"./platforms/youtube.js\";\nimport { ZhihuNamespace } from \"./platforms/zhihu.js\";\nimport { ZillowNamespace } from \"./platforms/zillow.js\";\n\n/**\n * The AnyAPI client. Extends the handwritten core base (run/balance/me/catalog/\n * describe) and attaches every platform namespace as a lazily instantiated getter.\n *\n * import { AnyAPI } from \"@getanyapi/sdk\";\n */\nexport class AnyAPI extends AnyAPIBase {\n private readonly _namespaces: Record<string, unknown> = {};\n\n /**\n * Generic typed run for any SKU by slug. A known slug literal infers its input and\n * result type from the SkuMap; any other string returns RunResult<unknown>.\n */\n run<K extends keyof SkuMap>(\n slug: K,\n input: SkuMap[K][\"input\"],\n options?: RequestOptions,\n ): Promise<SkuMap[K][\"result\"]>;\n run<S extends string, T = unknown>(\n slug: S extends keyof SkuMap ? never : S,\n input: unknown,\n options?: RequestOptions,\n ): Promise<RunResult<T>>;\n run(\n slug: string,\n input: unknown,\n options?: RequestOptions,\n ): Promise<RunResult<unknown>> {\n return super.run(slug, input, options);\n }\n\n /**\n * Typed methods for the ahrefs platform.\n */\n get ahrefs(): AhrefsNamespace {\n return (this._namespaces[\"ahrefs\"] ??= new AhrefsNamespace(\n this._core,\n )) as AhrefsNamespace;\n }\n\n /**\n * Typed methods for the airbnb platform.\n */\n get airbnb(): AirbnbNamespace {\n return (this._namespaces[\"airbnb\"] ??= new AirbnbNamespace(\n this._core,\n )) as AirbnbNamespace;\n }\n\n /**\n * Typed methods for the alibaba platform.\n */\n get alibaba(): AlibabaNamespace {\n return (this._namespaces[\"alibaba\"] ??= new AlibabaNamespace(\n this._core,\n )) as AlibabaNamespace;\n }\n\n /**\n * Typed methods for the amazon platform.\n */\n get amazon(): AmazonNamespace {\n return (this._namespaces[\"amazon\"] ??= new AmazonNamespace(\n this._core,\n )) as AmazonNamespace;\n }\n\n /**\n * Typed methods for the apollo platform.\n */\n get apollo(): ApolloNamespace {\n return (this._namespaces[\"apollo\"] ??= new ApolloNamespace(\n this._core,\n )) as ApolloNamespace;\n }\n\n /**\n * Typed methods for the appstore platform.\n */\n get appstore(): AppstoreNamespace {\n return (this._namespaces[\"appstore\"] ??= new AppstoreNamespace(\n this._core,\n )) as AppstoreNamespace;\n }\n\n /**\n * Typed methods for the bluesky platform.\n */\n get bluesky(): BlueskyNamespace {\n return (this._namespaces[\"bluesky\"] ??= new BlueskyNamespace(\n this._core,\n )) as BlueskyNamespace;\n }\n\n /**\n * Typed methods for the booking platform.\n */\n get booking(): BookingNamespace {\n return (this._namespaces[\"booking\"] ??= new BookingNamespace(\n this._core,\n )) as BookingNamespace;\n }\n\n /**\n * Typed methods for the coinmarketcap platform.\n */\n get coinmarketcap(): CoinmarketcapNamespace {\n return (this._namespaces[\"coinmarketcap\"] ??= new CoinmarketcapNamespace(\n this._core,\n )) as CoinmarketcapNamespace;\n }\n\n /**\n * Typed methods for the congress platform.\n */\n get congress(): CongressNamespace {\n return (this._namespaces[\"congress\"] ??= new CongressNamespace(\n this._core,\n )) as CongressNamespace;\n }\n\n /**\n * Typed methods for the dexscreener platform.\n */\n get dexscreener(): DexscreenerNamespace {\n return (this._namespaces[\"dexscreener\"] ??= new DexscreenerNamespace(\n this._core,\n )) as DexscreenerNamespace;\n }\n\n /**\n * Typed methods for the douyin platform.\n */\n get douyin(): DouyinNamespace {\n return (this._namespaces[\"douyin\"] ??= new DouyinNamespace(\n this._core,\n )) as DouyinNamespace;\n }\n\n /**\n * Typed methods for the ebay platform.\n */\n get ebay(): EbayNamespace {\n return (this._namespaces[\"ebay\"] ??= new EbayNamespace(\n this._core,\n )) as EbayNamespace;\n }\n\n /**\n * Typed methods for the email platform.\n */\n get email(): EmailNamespace {\n return (this._namespaces[\"email\"] ??= new EmailNamespace(\n this._core,\n )) as EmailNamespace;\n }\n\n /**\n * Typed methods for the facebook platform.\n */\n get facebook(): FacebookNamespace {\n return (this._namespaces[\"facebook\"] ??= new FacebookNamespace(\n this._core,\n )) as FacebookNamespace;\n }\n\n /**\n * Typed methods for the fiverr platform.\n */\n get fiverr(): FiverrNamespace {\n return (this._namespaces[\"fiverr\"] ??= new FiverrNamespace(\n this._core,\n )) as FiverrNamespace;\n }\n\n /**\n * Typed methods for the github platform.\n */\n get github(): GithubNamespace {\n return (this._namespaces[\"github\"] ??= new GithubNamespace(\n this._core,\n )) as GithubNamespace;\n }\n\n /**\n * Typed methods for the glassdoor platform.\n */\n get glassdoor(): GlassdoorNamespace {\n return (this._namespaces[\"glassdoor\"] ??= new GlassdoorNamespace(\n this._core,\n )) as GlassdoorNamespace;\n }\n\n /**\n * Typed methods for the google platform.\n */\n get google(): GoogleNamespace {\n return (this._namespaces[\"google\"] ??= new GoogleNamespace(\n this._core,\n )) as GoogleNamespace;\n }\n\n /**\n * Typed methods for the google_ads platform.\n */\n get googleAds(): GoogleAdsNamespace {\n return (this._namespaces[\"googleAds\"] ??= new GoogleAdsNamespace(\n this._core,\n )) as GoogleAdsNamespace;\n }\n\n /**\n * Typed methods for the google_finance platform.\n */\n get googleFinance(): GoogleFinanceNamespace {\n return (this._namespaces[\"googleFinance\"] ??= new GoogleFinanceNamespace(\n this._core,\n )) as GoogleFinanceNamespace;\n }\n\n /**\n * Typed methods for the google_shopping platform.\n */\n get googleShopping(): GoogleShoppingNamespace {\n return (this._namespaces[\"googleShopping\"] ??= new GoogleShoppingNamespace(\n this._core,\n )) as GoogleShoppingNamespace;\n }\n\n /**\n * Typed methods for the hackernews platform.\n */\n get hackernews(): HackernewsNamespace {\n return (this._namespaces[\"hackernews\"] ??= new HackernewsNamespace(\n this._core,\n )) as HackernewsNamespace;\n }\n\n /**\n * Typed methods for the indeed platform.\n */\n get indeed(): IndeedNamespace {\n return (this._namespaces[\"indeed\"] ??= new IndeedNamespace(\n this._core,\n )) as IndeedNamespace;\n }\n\n /**\n * Typed methods for the instagram platform.\n */\n get instagram(): InstagramNamespace {\n return (this._namespaces[\"instagram\"] ??= new InstagramNamespace(\n this._core,\n )) as InstagramNamespace;\n }\n\n /**\n * Typed methods for the linkedin platform.\n */\n get linkedin(): LinkedinNamespace {\n return (this._namespaces[\"linkedin\"] ??= new LinkedinNamespace(\n this._core,\n )) as LinkedinNamespace;\n }\n\n /**\n * Typed methods for the maps platform.\n */\n get maps(): MapsNamespace {\n return (this._namespaces[\"maps\"] ??= new MapsNamespace(\n this._core,\n )) as MapsNamespace;\n }\n\n /**\n * Typed methods for the pandaexpress platform.\n */\n get pandaexpress(): PandaexpressNamespace {\n return (this._namespaces[\"pandaexpress\"] ??= new PandaexpressNamespace(\n this._core,\n )) as PandaexpressNamespace;\n }\n\n /**\n * Typed methods for the person platform.\n */\n get person(): PersonNamespace {\n return (this._namespaces[\"person\"] ??= new PersonNamespace(\n this._core,\n )) as PersonNamespace;\n }\n\n /**\n * Typed methods for the pinterest platform.\n */\n get pinterest(): PinterestNamespace {\n return (this._namespaces[\"pinterest\"] ??= new PinterestNamespace(\n this._core,\n )) as PinterestNamespace;\n }\n\n /**\n * Typed methods for the playstore platform.\n */\n get playstore(): PlaystoreNamespace {\n return (this._namespaces[\"playstore\"] ??= new PlaystoreNamespace(\n this._core,\n )) as PlaystoreNamespace;\n }\n\n /**\n * Typed methods for the polymarket platform.\n */\n get polymarket(): PolymarketNamespace {\n return (this._namespaces[\"polymarket\"] ??= new PolymarketNamespace(\n this._core,\n )) as PolymarketNamespace;\n }\n\n /**\n * Typed methods for the realtor platform.\n */\n get realtor(): RealtorNamespace {\n return (this._namespaces[\"realtor\"] ??= new RealtorNamespace(\n this._core,\n )) as RealtorNamespace;\n }\n\n /**\n * Typed methods for the reddit platform.\n */\n get reddit(): RedditNamespace {\n return (this._namespaces[\"reddit\"] ??= new RedditNamespace(\n this._core,\n )) as RedditNamespace;\n }\n\n /**\n * Typed methods for the redfin platform.\n */\n get redfin(): RedfinNamespace {\n return (this._namespaces[\"redfin\"] ??= new RedfinNamespace(\n this._core,\n )) as RedfinNamespace;\n }\n\n /**\n * Typed methods for the rednote platform.\n */\n get rednote(): RednoteNamespace {\n return (this._namespaces[\"rednote\"] ??= new RednoteNamespace(\n this._core,\n )) as RednoteNamespace;\n }\n\n /**\n * Typed methods for the sec platform.\n */\n get sec(): SecNamespace {\n return (this._namespaces[\"sec\"] ??= new SecNamespace(\n this._core,\n )) as SecNamespace;\n }\n\n /**\n * Typed methods for the semrush platform.\n */\n get semrush(): SemrushNamespace {\n return (this._namespaces[\"semrush\"] ??= new SemrushNamespace(\n this._core,\n )) as SemrushNamespace;\n }\n\n /**\n * Typed methods for the seo platform.\n */\n get seo(): SeoNamespace {\n return (this._namespaces[\"seo\"] ??= new SeoNamespace(\n this._core,\n )) as SeoNamespace;\n }\n\n /**\n * Typed methods for the snapchat platform.\n */\n get snapchat(): SnapchatNamespace {\n return (this._namespaces[\"snapchat\"] ??= new SnapchatNamespace(\n this._core,\n )) as SnapchatNamespace;\n }\n\n /**\n * Typed methods for the social platform.\n */\n get social(): SocialNamespace {\n return (this._namespaces[\"social\"] ??= new SocialNamespace(\n this._core,\n )) as SocialNamespace;\n }\n\n /**\n * Typed methods for the spotify platform.\n */\n get spotify(): SpotifyNamespace {\n return (this._namespaces[\"spotify\"] ??= new SpotifyNamespace(\n this._core,\n )) as SpotifyNamespace;\n }\n\n /**\n * Typed methods for the substack platform.\n */\n get substack(): SubstackNamespace {\n return (this._namespaces[\"substack\"] ??= new SubstackNamespace(\n this._core,\n )) as SubstackNamespace;\n }\n\n /**\n * Typed methods for the threads platform.\n */\n get threads(): ThreadsNamespace {\n return (this._namespaces[\"threads\"] ??= new ThreadsNamespace(\n this._core,\n )) as ThreadsNamespace;\n }\n\n /**\n * Typed methods for the tiktok platform.\n */\n get tiktok(): TiktokNamespace {\n return (this._namespaces[\"tiktok\"] ??= new TiktokNamespace(\n this._core,\n )) as TiktokNamespace;\n }\n\n /**\n * Typed methods for the tiktok_shop platform.\n */\n get tiktokShop(): TiktokShopNamespace {\n return (this._namespaces[\"tiktokShop\"] ??= new TiktokShopNamespace(\n this._core,\n )) as TiktokShopNamespace;\n }\n\n /**\n * Typed methods for the tripadvisor platform.\n */\n get tripadvisor(): TripadvisorNamespace {\n return (this._namespaces[\"tripadvisor\"] ??= new TripadvisorNamespace(\n this._core,\n )) as TripadvisorNamespace;\n }\n\n /**\n * Typed methods for the trustpilot platform.\n */\n get trustpilot(): TrustpilotNamespace {\n return (this._namespaces[\"trustpilot\"] ??= new TrustpilotNamespace(\n this._core,\n )) as TrustpilotNamespace;\n }\n\n /**\n * Typed methods for the truthsocial platform.\n */\n get truthsocial(): TruthsocialNamespace {\n return (this._namespaces[\"truthsocial\"] ??= new TruthsocialNamespace(\n this._core,\n )) as TruthsocialNamespace;\n }\n\n /**\n * Typed methods for the twitter platform.\n */\n get twitter(): TwitterNamespace {\n return (this._namespaces[\"twitter\"] ??= new TwitterNamespace(\n this._core,\n )) as TwitterNamespace;\n }\n\n /**\n * Typed methods for the upwork platform.\n */\n get upwork(): UpworkNamespace {\n return (this._namespaces[\"upwork\"] ??= new UpworkNamespace(\n this._core,\n )) as UpworkNamespace;\n }\n\n /**\n * Typed methods for the walmart platform.\n */\n get walmart(): WalmartNamespace {\n return (this._namespaces[\"walmart\"] ??= new WalmartNamespace(\n this._core,\n )) as WalmartNamespace;\n }\n\n /**\n * Typed methods for the web platform.\n */\n get web(): WebNamespace {\n return (this._namespaces[\"web\"] ??= new WebNamespace(\n this._core,\n )) as WebNamespace;\n }\n\n /**\n * Typed methods for the weibo platform.\n */\n get weibo(): WeiboNamespace {\n return (this._namespaces[\"weibo\"] ??= new WeiboNamespace(\n this._core,\n )) as WeiboNamespace;\n }\n\n /**\n * Typed methods for the whatsapp platform.\n */\n get whatsapp(): WhatsappNamespace {\n return (this._namespaces[\"whatsapp\"] ??= new WhatsappNamespace(\n this._core,\n )) as WhatsappNamespace;\n }\n\n /**\n * Typed methods for the yahoo_finance platform.\n */\n get yahooFinance(): YahooFinanceNamespace {\n return (this._namespaces[\"yahooFinance\"] ??= new YahooFinanceNamespace(\n this._core,\n )) as YahooFinanceNamespace;\n }\n\n /**\n * Typed methods for the yelp platform.\n */\n get yelp(): YelpNamespace {\n return (this._namespaces[\"yelp\"] ??= new YelpNamespace(\n this._core,\n )) as YelpNamespace;\n }\n\n /**\n * Typed methods for the youtube platform.\n */\n get youtube(): YoutubeNamespace {\n return (this._namespaces[\"youtube\"] ??= new YoutubeNamespace(\n this._core,\n )) as YoutubeNamespace;\n }\n\n /**\n * Typed methods for the zhihu platform.\n */\n get zhihu(): ZhihuNamespace {\n return (this._namespaces[\"zhihu\"] ??= new ZhihuNamespace(\n this._core,\n )) as ZhihuNamespace;\n }\n\n /**\n * Typed methods for the zillow platform.\n */\n get zillow(): ZillowNamespace {\n return (this._namespaces[\"zillow\"] ??= new ZillowNamespace(\n this._core,\n )) as ZillowNamespace;\n }\n}\n"],"mappings":"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","names":["AnyAPI","parsed","DEFAULT_BASE_URL","AnyAPI"]}