import type { GameModelAPI } from '../domains/gameModel.js'; import type { Scalars } from '../generated/graphql.js'; import type { EngineDetector } from './engine.js'; import { type ControlPointEvent } from './wire.js'; /** Options for {@link TerritoryKit}. */ export interface TerritoryKitOptions { /** The territory engine module name. Defaults to `'territory'`. */ moduleName?: string; } /** A control point as the engine reports it. */ export interface KitControlPoint { pointId: string; x: number; z: number; radius: number; owner: string; challenger: string; progress: number; incomePerMin: number; siegeOpen: boolean; } /** * Runtime helpers for the territory engine (Wave 3): control-point state, * faction standings, and the admin CRUD for the map (factions, members, * points). Capture itself is pure presence — stand inside a point's radius * with your faction; the engine does the rest and announces flips as * type-96 events. * * Obtained via `client.kit(appId).territory`. */ export declare class TerritoryKit { private readonly appId; private readonly gameModel; private readonly engines; private readonly moduleName; constructor(appId: Scalars['BigInt']['input'], gameModel: GameModelAPI, engines: EngineDetector, options?: TerritoryKitOptions); /** Is the territory engine deployed + enabled (cached per session)? */ engineAvailable(): Promise; /** Every control point with live capture state. */ points(): Promise; /** Faction standings (id + treasury). */ factions(): Promise>; /** Engine totals (flips, income paid). */ status(): Promise>; /** STUDIO (admin) — create a faction. */ defineFaction(factionId: string, displayName?: string): Promise<{ __typename?: "GmContainer"; containerId: string; appId: string; sessionId: string | null; typeName: string; displayName: string; description: string | null; ownerUserId: string | null; metadataJson: string; }>; /** STUDIO (admin) — enroll a player in a faction. */ enroll(userId: string, factionId: string): Promise<{ __typename?: "GmContainer"; containerId: string; appId: string; sessionId: string | null; typeName: string; displayName: string; description: string | null; ownerUserId: string | null; metadataJson: string; }>; /** STUDIO (admin) — create a control point. */ definePoint(input: { pointId: string; x: number; z: number; radius: number; incomePerMin?: number; siegeFromMin?: number; siegeToMin?: number; displayName?: string; }): Promise<{ __typename?: "GmContainer"; containerId: string; appId: string; sessionId: string | null; typeName: string; displayName: string; description: string | null; ownerUserId: string | null; metadataJson: string; }>; /** Parse a type-96 control-point server event (flips). */ parseControlPoint(bytes: Uint8Array): ControlPointEvent | null; private invoke; } //# sourceMappingURL=territory.d.ts.map