import type { GameModelAPI } from '../domains/gameModel.js'; import type { Scalars } from '../generated/graphql.js'; import type { EngineDetector } from './engine.js'; /** Options for {@link LiveopsKit}. */ export interface LiveopsKitOptions { /** The `typePrefix` the liveops blueprint was deployed with. */ typePrefix?: string; /** The scheduler engine module name. Defaults to `'liveops-scheduler'`. */ moduleName?: string; } /** A parsed event window. */ export interface KitEventWindow { containerId: string; windowId: string; active: boolean; opensAtMs: number; closesAtMs: number; modifiers: Record; } /** A parsed season definition (+ its battle-pass composition). */ export interface KitSeason { containerId: string; seasonId: string; active: boolean; startsAtMs: number; endsAtMs: number; passTrack: string; passFeatures: string[]; } /** A parsed type-98 zone-change event (BR circles, event areas). */ export interface ZoneChangeEvent { kind: string; phase: number | null; radiusNow: number; centerX: number; centerZ: number; body: Record; } /** * Runtime helpers for the liveops blueprint: event windows (admin CRUD + * active reads — engine-backed when the liveops-scheduler is deployed), * seasons with battle-pass composition, and the type-98 zone-change parser. * * Obtained via `client.kit(appId).liveops`. */ export declare class LiveopsKit { private readonly appId; private readonly gameModel; private readonly engines?; private readonly names; private readonly moduleName; constructor(appId: Scalars['BigInt']['input'], gameModel: GameModelAPI, options?: LiveopsKitOptions, engines?: EngineDetector | undefined); /** Is the liveops-scheduler engine deployed + enabled (cached)? */ engineAvailable(): Promise; /** STUDIO (admin) — create an event window. */ defineWindow(input: { windowId: string; displayName?: string; opensAtMs?: number; closesAtMs?: number; modifiers?: Record; }): Promise<{ __typename?: "GmContainer"; containerId: string; appId: string; sessionId: string | null; typeName: string; displayName: string; description: string | null; ownerUserId: string | null; metadataJson: string; }>; /** Every window (model read). */ windows(): Promise; /** * The ACTIVE windows. Engine path (scheduler deployed): the module's * authoritative view; otherwise filters the model read. */ activeWindows(): Promise; /** STUDIO (admin/automation) — open a window through the model function. */ openWindow(windowContainerId: string, sessionId?: string): Promise>; /** STUDIO (admin/automation) — close a window through the model function. */ closeWindow(windowContainerId: string, sessionId?: string): Promise>; /** STUDIO (admin) — create a season (+ battle-pass composition). */ defineSeason(input: { seasonId: string; displayName?: string; startsAtMs?: number; endsAtMs?: number; passTrack?: string; passFeatures?: string[]; }): Promise<{ __typename?: "GmContainer"; containerId: string; appId: string; sessionId: string | null; typeName: string; displayName: string; description: string | null; ownerUserId: string | null; metadataJson: string; }>; /** Every season (model read). */ seasons(): Promise; /** The active season, when one exists. */ currentSeason(): Promise; /** STUDIO (admin/automation) — activate a season through the model function. */ activateSeason(seasonContainerId: string, sessionId?: string): Promise>; /** Parse a type-98 zone-change server event (BR circles, event areas). */ parseZoneChange(bytes: Uint8Array): ZoneChangeEvent | null; } //# sourceMappingURL=liveops.d.ts.map