UNPKG

iracing-api

Version:

Javascript client for iracing API

471 lines (470 loc) 17.5 kB
import { API } from './api'; import type { GetHostedCombinedSessionsParams } from '../types'; /** * Provides methods for interacting with hosted session endpoints. */ export declare class HostedAPI extends API { /** * Get a list of combined hosted sessions. * * Includes sessions that can be joined as a driver or spectator, * and also includes non-league pending sessions for the user. * * @param {GetHostedCombinedSessionsParams} [params] - Optional parameters to filter the sessions. * @param {number} [params.packageId] - If set, return only sessions using this car or track package ID. * * @returns A promise resolving to the combined hosted sessions data, or undefined on error. */ getHostedCombinedSessions: (params?: GetHostedCombinedSessionsParams) => Promise<{ success: boolean; sequence: number; subscribed: boolean; sessions: { track: { trackId: number; trackName: string; configName?: string | null | undefined; }; host: { displayName: string; custId: number; helmet: { pattern: number; color1: string; color2: string; color3: string; faceType: number; helmetType: number; }; }; status: number; sessionFull: boolean; sessionType: number; carTypes: { carType: string; }[]; admins: { displayName: string; custId: number; helmet: { pattern: number; color1: string; color2: string; color3: string; faceType: number; helmetType: number; }; }[]; aiAvoidPlayers: boolean; allowedClubs: any[]; allowedLeagues: any[]; allowedTeams: any[]; cars: { carId: number; carName: string; packageId: number; carClassId: number; carClassName: string; maxDryTireSets: number; maxPctFuelFill: number; powerAdjustPct: number; weightPenaltyKg: number; qualSetupFilename?: string | null | undefined; qualSetupId?: number | null | undefined; raceSetupFilename?: string | null | undefined; raceSetupId?: number | null | undefined; }[]; carsLeft: number; category: "dirt_oval" | "dirt_road" | "formula_car" | "oval" | "sports_car"; categoryId: number; consecCautionsSingleFile: boolean; countByCarClassId: Record<string, number>; countByCarId: Record<string, number>; damageModel: number; disallowVirtualMirror: boolean; doNotCountCautionLaps: boolean; doNotPaintCars: boolean; driverChangeRule: number; driverChanges: boolean; elig: { sessionFull: boolean; canSpot: boolean; canWatch: boolean; canDrive: boolean; hasSessPassword: boolean; needsPurchase: boolean; ownCar: boolean; ownTrack: boolean; purchaseSkus: number[]; registered: boolean; }; enablePitlaneCollisions: boolean; entryCount: number; eventTypes: { eventType: number; }[]; farm: { farmId: number; displayName: string; imagePath: string; displayed: boolean; }; fixedSetup: boolean; fullCourseCautions: boolean; greenWhiteCheckeredLimit: number; hardcoreLevel: number; incidentLimit: number; incidentWarnMode: number; incidentWarnParam1: number; incidentWarnParam2: number; launchAt: string; leagueId: number; leagueSeasonId: number; licenseGroupTypes: { licenseGroupType: number; }[]; loneQualify: boolean; luckyDog: boolean; maxAiDrivers: number; maxDrivers: number; maxIr: number; maxLicenseLevel: number; maxTeamDrivers: number; minIr: number; minLicenseLevel: number; minTeamDrivers: number; multiclassType: number; mustUseDiffTireTypesInRace: boolean; noLapperWaveArounds: boolean; numFastTows: number; numOptLaps: number; openRegExpires: string; orderId: number; paceCarClassId: number | null; paceCarId: number | null; passwordProtected: boolean; pitsInUse: number; practiceLength: number; privateSessionId: number; qualifierMustStartRace: boolean; qualifyLaps: number; qualifyLength: number; raceLaps: number; raceLength: number; restarts: number; restrictResults: boolean; restrictViewing: boolean; rollingStarts: boolean; sessionId: number; sessionName: string; sessionTypes: { sessionType: number; }[]; shortParadeLap: boolean; startOnQualTire: boolean; startZone: boolean; subsessionId: number; teamEntryCount: number; telemetryForceToDisk: number; telemetryRestriction: number; timeLimit: number; trackState: { leaveMarbles: boolean; practiceGripCompound: number; practiceRubber: number; qualifyGripCompound: number; qualifyRubber: number; raceGripCompound: number; raceRubber: number; warmupGripCompound: number; warmupRubber: number; }; trackTypes: { trackType: "dirt_oval" | "dirt_road" | "oval" | "road"; }[]; unsportConductRuleMode: number; warmupLength: number; weather: { type: number; skies: number; windDir: number; tempUnits: number; windUnits: number; allowFog: boolean; fog: number; humidityUnits: number; precipOption: number; relHumidity: number; simulatedStartTime: string; simulatedStartUtcTime: string; simulatedTimeMultiplier: number; simulatedTimeOffsets: number[]; tempValue: number; timeOfDay: number; version: number; weatherVarInitial: number; weatherVarOngoing: number; windValue: number; forecastOptions?: { forecastType: number; precipitation: number; skies: number; stopPrecip: number; temperature: number; windDir: number; windSpeed: number; } | null | undefined; trackWater?: number | null | undefined; weatherSummary?: { maxPrecipRateDesc: "Heavy" | "Light" | "Moderate" | "None"; precipChance: number; maxPrecipRate?: number | null | undefined; skiesHigh?: number | null | undefined; skiesLow?: number | null | undefined; tempHigh?: number | null | undefined; tempLow?: number | null | undefined; tempUnits?: number | null | undefined; windHigh?: number | null | undefined; windLow?: number | null | undefined; windUnits?: number | null | undefined; } | null | undefined; weatherUrl?: string | null | undefined; }; aiMaxSkill?: number | null | undefined; aiMinSkill?: number | null | undefined; aiRosterName?: string | null | undefined; altAssetId?: number | null | undefined; registeredTeams?: number[] | null | undefined; sessionDesc?: string | null | undefined; }[]; } | undefined>; /** * Get a list of hosted sessions that can be joined as a driver. * * Excludes spectator sessions and non-league pending sessions. * * @returns A promise resolving to the hosted sessions data, or undefined on error. */ getHostedSessions: () => Promise<{ success: boolean; subscribed: boolean; sessions: { track: { trackId: number; trackName: string; configName?: string | null | undefined; }; host: { displayName: string; custId: number; helmet: { pattern: number; color1: string; color2: string; color3: string; faceType: number; helmetType: number; }; }; status: number; sessionFull: boolean; sessionType: number; carTypes: { carType: string; }[]; admins: { displayName: string; custId: number; helmet: { pattern: number; color1: string; color2: string; color3: string; faceType: number; helmetType: number; }; }[]; aiAvoidPlayers: boolean; allowedClubs: any[]; allowedLeagues: any[]; allowedTeams: any[]; cars: { carId: number; carName: string; packageId: number; carClassId: number; carClassName: string; maxDryTireSets: number; maxPctFuelFill: number; powerAdjustPct: number; weightPenaltyKg: number; qualSetupFilename?: string | null | undefined; qualSetupId?: number | null | undefined; raceSetupFilename?: string | null | undefined; raceSetupId?: number | null | undefined; }[]; carsLeft: number; category: "dirt_oval" | "dirt_road" | "formula_car" | "oval" | "sports_car"; categoryId: number; consecCautionsSingleFile: boolean; countByCarClassId: Record<string, number>; countByCarId: Record<string, number>; damageModel: number; disallowVirtualMirror: boolean; doNotCountCautionLaps: boolean; doNotPaintCars: boolean; driverChangeRule: number; driverChanges: boolean; elig: { sessionFull: boolean; canSpot: boolean; canWatch: boolean; canDrive: boolean; hasSessPassword: boolean; needsPurchase: boolean; ownCar: boolean; ownTrack: boolean; purchaseSkus: number[]; registered: boolean; }; enablePitlaneCollisions: boolean; entryCount: number; eventTypes: { eventType: number; }[]; farm: { farmId: number; displayName: string; imagePath: string; displayed: boolean; }; fixedSetup: boolean; fullCourseCautions: boolean; greenWhiteCheckeredLimit: number; hardcoreLevel: number; incidentLimit: number; incidentWarnMode: number; incidentWarnParam1: number; incidentWarnParam2: number; launchAt: string; leagueId: number; leagueSeasonId: number; licenseGroupTypes: { licenseGroupType: number; }[]; loneQualify: boolean; luckyDog: boolean; maxAiDrivers: number; maxDrivers: number; maxIr: number; maxLicenseLevel: number; maxTeamDrivers: number; minIr: number; minLicenseLevel: number; minTeamDrivers: number; multiclassType: number; mustUseDiffTireTypesInRace: boolean; noLapperWaveArounds: boolean; numFastTows: number; numOptLaps: number; openRegExpires: string; orderId: number; paceCarClassId: number | null; paceCarId: number | null; passwordProtected: boolean; pitsInUse: number; practiceLength: number; privateSessionId: number; qualifierMustStartRace: boolean; qualifyLaps: number; qualifyLength: number; raceLaps: number; raceLength: number; restarts: number; restrictResults: boolean; restrictViewing: boolean; rollingStarts: boolean; sessionId: number; sessionName: string; sessionTypes: { sessionType: number; }[]; shortParadeLap: boolean; startOnQualTire: boolean; startZone: boolean; subsessionId: number; teamEntryCount: number; telemetryForceToDisk: number; telemetryRestriction: number; timeLimit: number; trackState: { leaveMarbles: boolean; practiceGripCompound: number; practiceRubber: number; qualifyGripCompound: number; qualifyRubber: number; raceGripCompound: number; raceRubber: number; warmupGripCompound: number; warmupRubber: number; }; trackTypes: { trackType: "dirt_oval" | "dirt_road" | "oval" | "road"; }[]; unsportConductRuleMode: number; warmupLength: number; weather: { type: number; skies: number; windDir: number; tempUnits: number; windUnits: number; allowFog: boolean; fog: number; humidityUnits: number; precipOption: number; relHumidity: number; simulatedStartTime: string; simulatedStartUtcTime: string; simulatedTimeMultiplier: number; simulatedTimeOffsets: number[]; tempValue: number; timeOfDay: number; version: number; weatherVarInitial: number; weatherVarOngoing: number; windValue: number; forecastOptions?: { forecastType: number; precipitation: number; skies: number; stopPrecip: number; temperature: number; windDir: number; windSpeed: number; } | null | undefined; trackWater?: number | null | undefined; weatherSummary?: { maxPrecipRateDesc: "Heavy" | "Light" | "Moderate" | "None"; precipChance: number; maxPrecipRate?: number | null | undefined; skiesHigh?: number | null | undefined; skiesLow?: number | null | undefined; tempHigh?: number | null | undefined; tempLow?: number | null | undefined; tempUnits?: number | null | undefined; windHigh?: number | null | undefined; windLow?: number | null | undefined; windUnits?: number | null | undefined; } | null | undefined; weatherUrl?: string | null | undefined; }; aiMaxSkill?: number | null | undefined; aiMinSkill?: number | null | undefined; aiRosterName?: string | null | undefined; altAssetId?: number | null | undefined; registeredTeams?: number[] | null | undefined; sessionDesc?: string | null | undefined; }[]; } | undefined>; }