/// <reference path="../../node_modules/@citizenfx/client/index.d.ts" />
/// <reference path="../../node_modules/@citizenfx/client/natives_universal.d.ts" />

// FiveM client globals not covered by @citizenfx/client typings
declare function RegisterNetEvent(eventName: string, cb?: Function): void;
declare function AddEventHandler(eventName: string, handler: Function): void;
declare function TriggerServerEvent(eventName: string, ...args: any[]): void;
declare function TriggerEvent(eventName: string, ...args: any[]): void;
declare function setTick(handler: () => void): number;
declare function clearTick(tickId: number): void;
declare function SendNuiMessage(data: string): void;
declare function RegisterNuiCallbackType(name: string): void;
declare function SetNuiFocus(hasFocus: boolean, hasCursor: boolean): void;
declare function GetPlayerServerId(player: number): number;
declare function PlayerId(): number;
declare function PlayerPedId(): number;
declare function GetPlayerPed(player: number): number;
declare function NetworkGetPlayerIndexFromPed(ped: number): number;
declare function GetEntityCoords(entity: number, alive: boolean): [number, number, number];
declare function GetEntityHeading(entity: number): number;
declare function GetEntityModel(entity: number): number;
declare function GetPedInVehicleSeat(vehicle: number, seat: number): number;
declare function GetVehiclePedIsIn(ped: number, lastVehicle: boolean): number;
declare function GetHashKey(key: string): number;
declare function NetworkResurrectLocalPlayer(x: number, y: number, z: number, heading: number, p4: boolean, p5: boolean, p6: boolean): void;
declare function ShutdownLoadingScreen(): void;
declare function RequestCollisionAtCoord(x: number, y: number, z: number): void;
declare function HasCollisionLoadedAroundEntity(entity: number): boolean;
declare function SetEntityCoordsNoOffset(entity: number, x: number, y: number, z: number, xAxis: boolean, yAxis: boolean, zAxis: boolean, clearArea: boolean): void;

// exports — FiveM resource exports
declare const exports: Record<string, any>;

// mp global — set at runtime by core/mp-shim.ts
declare const mp: any;
