import { FetchCookie, Options } from './types/index.js'; import { CarAPI } from './api/car.js'; import { CarClassAPI } from './api/car-class.js'; import { ConstantsAPI } from './api/constants.js'; import { HostedAPI } from './api/hosted.js'; import { LeagueAPI } from './api/league.js'; import { LookupAPI } from './api/lookup.js'; import { MemberAPI } from './api/member.js'; import { ResultsAPI } from './api/results.js'; import { SeasonAPI } from './api/season.js'; import { SeriesAPI } from './api/series.js'; import { StatsAPI } from './api/stats.js'; import { TeamAPI } from './api/team.js'; import { TimeAttackAPI } from './api/time-attack.js'; import { TrackAPI } from './api/track.js'; export * from './consts.js'; export * from './helpers.js'; export * from './types/index.js'; /** * Main client for interacting with the iRacing Data API. */ export default class IracingAPI { fetchCookie: FetchCookie; options: Options; car: CarAPI; carClass: CarClassAPI; constants: ConstantsAPI; hosted: HostedAPI; league: LeagueAPI; lookup: LookupAPI; member: MemberAPI; results: ResultsAPI; season: SeasonAPI; series: SeriesAPI; stats: StatsAPI; team: TeamAPI; timeAttack: TimeAttackAPI; track: TrackAPI; /** * Creates an instance of the IracingAPI client. * * @param {Options} [options] - Configuration options for the client. * @param {boolean} [options.logger=false] - Enable logging of requests and responses. * @param {boolean} [options.manageRateLimit=false] - Automatically handle rate limiting by delaying requests. * @param {number} [options.rateLimitPadding=5000] - Milliseconds to pad the rate limit reset time when manageRateLimit is true. */ constructor(options?: Options); /** * Authenticates the user with the iRacing API using email and password. * Stores the necessary authentication cookies for subsequent requests. * * @param email - iRacing account email address. * @param password - iRacing account password. * @returns A promise that resolves with the authentication response JSON on success, * or an object containing an error message on failure. */ login: (email: string, password: string) => Promise; }