import type { LeagueConfig, Scope, WrapperDef } from "./types.js"; import { WRAPPERS } from "../generated/wrappers.js"; /** snake_case -> camelCase (e.g. `event_id` -> `eventId`, `espn_nba_scoreboard` -> `espnNbaScoreboard`). */ export declare function toCamel(s: string): string; /** * Build the full request (URL + query) for a wrapper without fetching. Exported * so the param resolution (camelCase aliases, defaults, path substitution) is * unit-testable without network. */ export declare function resolveRequest(def: WrapperDef, cfg: LeagueConfig, params?: Record): { url: string; query?: Record; }; /** * Resolve a wrapper for a league, fetch the raw ESPN JSON, and — only when the * caller passes `{ parsed: true }` AND a parser is registered for this endpoint's * `short` name — run the payload through that parser. Omitting `parsed` returns * the raw payload unchanged, so the dispatch is strictly additive (mirrors the * native flat wrappers + sdv-py's `return_parsed=True`). * * The `summary` dispatcher additionally honours a `section` control param: * `{ parsed: true, section: "boxscore_team" }` returns just that sub-frame, while * `{ parsed: true }` alone returns the dict of all 21 summary sub-frames. * `parsed`/`section` are control params, not declared query params, so * `cleanQuery` already keeps them out of the request URL. */ export declare function callWrapper(def: WrapperDef, cfg: LeagueConfig, params?: Record): Promise; /** All wrappers grouped by scope (built from the generated table). */ export declare const WRAPPER_TABLES: Record; export { WRAPPERS }; //# sourceMappingURL=espn.d.ts.map