import { MountController, type MountKit } from "./mount.js"; export interface Station { id: string; facet: string; offset: readonly [number, number, number]; control?: boolean; } export interface SharedVehicleConfig { id: string; kit: MountKit; stations: readonly Station[]; } export type ClaimResult = { ok: true; station: Station; } | { ok: false; reason: "unknown_vehicle" | "unknown_facet" | "station_taken" | "vehicle_full"; }; export declare class StationClaim { private readonly controller; private readonly vehicles; constructor(controller?: MountController); register(config: SharedVehicleConfig): void; private resolveStation; claim(playerId: string, vehicleId: string, facetOrStationId: string): ClaimResult; release(playerId: string): string | null; facetOf(playerId: string): string | null; stationOf(playerId: string): Station | null; controllerOf(vehicleId: string, facet: string): string | null; crew(vehicleId: string): { playerId: string; stationId: string; facet: string; }[]; stationsOf(vehicleId: string): readonly Station[]; openFacets(vehicleId: string): string[]; driver(vehicleId: string): string | null; cameraTarget(playerId: string): string; driveTarget(playerId: string): string | null; get mounts(): MountController; } export declare function createStationClaim(controller?: MountController): StationClaim;