import { CCMPEntity } from "../entity/CCMPEntity";
import { type IVehicle } from "../../common/vehicle/IVehicle";
import { type IRGBA } from "../../../../shared/common/utils";
import { type IVector3D } from "../../../../shared/common/utils/math/Vectors";
import { BaseObjectType } from "../../../../shared";
import { type CCMPPlayer } from "../player/CCMPPlayer";
import type { Vehicle as CcmpVehicle } from "@classic-mp/types/server";
export interface ICCMPVehicleOptions {
    ccmpVehicle: CcmpVehicle;
    onDestroy: (vehicle: CCMPVehicle) => void;
}
export declare class CCMPVehicle extends CCMPEntity implements IVehicle {
    private static readonly _customPrimaryColorMeta;
    private static readonly _customSecondaryColorMeta;
    private static readonly _vehicleModsMeta;
    private static readonly _neonEnabledMeta;
    private static readonly _neonColorMeta;
    private static readonly _windowTintMeta;
    private static readonly _wheelTypeMeta;
    private readonly _ccmpVehicle;
    private readonly _onDestroy;
    private readonly _mods;
    private _customPrimaryColor;
    private _customSecondaryColor;
    get id(): number;
    get type(): BaseObjectType;
    get isExists(): boolean;
    get position(): IVector3D;
    get dimension(): number;
    get model(): number;
    get rotation(): IVector3D;
    get bodyHealth(): number;
    get engineHealth(): number;
    get numberPlate(): string;
    get isLocked(): boolean;
    get isDead(): boolean;
    get primaryColor(): number;
    get secondaryColor(): number;
    get customPrimaryColor(): IRGBA;
    get customSecondaryColor(): IRGBA;
    get driver(): CCMPPlayer | null;
    get passengers(): Set<CCMPPlayer>;
    protected get ccmpMeta(): CcmpVehicle;
    constructor(options: ICCMPVehicleOptions);
    destroy(): void;
    setPosition(value: IVector3D): void;
    setDimension(value: number): void;
    setModel(value: string): void;
    setRotation(value: IVector3D): void;
    setBodyHealth(value: number): void;
    setEngineHealth(value: number): void;
    setEngineOn(value: boolean): void;
    setNumberPlate(value: string): void;
    setLocked(value: boolean): void;
    setPrimaryColor(value: number): void;
    setSecondaryColor(value: number): void;
    setCustomPrimaryColor(value: IRGBA): void;
    setCustomSecondaryColor(value: IRGBA): void;
    setMod(modType: number, modIndex: number): void;
    getMod(modType: number): number;
    setNeonEnabled(enabled: boolean): void;
    setNeonColor(r: number, g: number, b: number): void;
    setWindowTint(tintType: number): void;
    setWheelType(wheelType: number): void;
    setPlateType(plateType: number): void;
    explode(): void;
    repair(): void;
    private _restoreCompatibilityState;
    private _readColorMeta;
    private _setCompatibilityMeta;
    private _toRgba;
}
