# Stubs for gta.natives.physics

import gta

def SET_DISABLE_FRAG_DAMAGE(object: int, toggle: bool) -> None: ...
def GET_IS_ENTITY_A_FRAG(object: int) -> bool: ...
def START_ROPE_WINDING(ropeId: int) -> None: ...
def SET_USE_KINEMATIC_PHYSICS(entity: int, toggle: bool) -> None: ...
def GET_ROPE_LAST_VERTEX_COORD(ropeId: int) -> 'gta.Vector3': ...
def DOES_SCRIPT_OWN_ROPE(ropeId: int) -> bool: ...
def PIN_ROPE_VERTEX(ropeId: int, vertex: int, x: float, y: float, z: float) -> None: ...
def BREAK_ENTITY_GLASS(entity: int, p1: float, p2: float, p3: float, p4: float, p5: float, p6: float, p7: float, p8: float, p9: int, p10: bool) -> None: ...
def GET_ROPE_VERTEX_COUNT(ropeId: int) -> int: ...
def ROPE_SET_SMOOTH_REELIN(ropeId: int, p1: bool) -> None: ...
def ATTACH_ENTITIES_TO_ROPE(ropeId: int, ent1: int, ent2: int, ent1_x: float, ent1_y: float, ent1_z: float, ent2_x: float, ent2_y: float, ent2_z: float, length: float, p10: bool, p11: bool, p12: int, p13: int) -> None: ...
def ATTACH_ROPE_TO_ENTITY(ropeId: int, entity: int, x: float, y: float, z: float, p5: bool) -> None: ...
def UNPIN_ROPE_VERTEX(ropeId: int, vertex: int) -> None: ...
def DELETE_ROPE(ropeId: int) -> None: ...
def ROPE_CONVERT_TO_SIMPLE(ropeId: int) -> None: ...
def START_ROPE_UNWINDING_FRONT(ropeId: int) -> None: ...
def SET_DISABLE_BREAKING(object: int, toggle: bool) -> None: ...
def ROPE_UNLOAD_TEXTURES() -> None: ...
def ACTIVATE_PHYSICS(entity: int) -> None: ...
def ROPE_GET_DISTANCE_BETWEEN_ENDS(ropeId: int) -> float: ...
def GET_CGOFFSET(entity: int) -> 'gta.Vector3': ...
def IS_ROPE_ATTACHED_AT_BOTH_ENDS(ropeId: int) -> bool: ...
def GET_DAMPING(entity: int, type: int) -> 'gta.Vector3': ...
def ROPE_LOAD_TEXTURES() -> None: ...
def SET_IN_STUNT_MODE(p0: bool) -> None: ...
def ROPE_DRAW_ENABLED(ropeId: int, p1: bool) -> None: ...
def DELETE_CHILD_ROPE(ropeId: int) -> None: ...
def SET_IN_ARENA_MODE(toggle: bool) -> None: ...
def ROPE_CHANGE_SCRIPT_OWNER(p0: int, p1: bool, p2: bool) -> None: ...
def ROPE_SET_REFFRAMEVELOCITY_COLLIDERORDER(ropeId: int, p1: int) -> None: ...
def ROPE_ATTACH_VIRTUAL_BOUND_GEOM(ropeId: int, p1: int, p2: float, p3: float, p4: float, p5: float, p6: float, p7: float, p8: float, p9: float, p10: float, p11: float, p12: float, p13: float) -> None: ...
def DETACH_ROPE_FROM_ENTITY(ropeId: int, entity: int) -> None: ...
def SET_CG_AT_BOUNDCENTER(entity: int) -> None: ...
def ROPE_RESET_LENGTH(ropeId: int, length: float) -> None: ...
def ROPE_SET_UPDATE_PINVERTS(ropeId: int) -> None: ...
def STOP_ROPE_WINDING(ropeId: int) -> None: ...
def LOAD_ROPE_DATA(ropeId: int, rope_preset: str) -> None: ...
def RESET_DISABLE_BREAKING(object: int) -> None: ...
def ROPE_FORCE_LENGTH(ropeId: int, length: float) -> None: ...
def SET_CGOFFSET(entity: int, x: float, y: float, z: float) -> None: ...
def ROPE_SET_UPDATE_ORDER(ropeId: int, p1: int) -> None: ...
def APPLY_IMPULSE_TO_CLOTH(posX: float, posY: float, posZ: float, vecX: float, vecY: float, vecZ: float, impulse: float) -> None: ...
def ADD_ROPE(x: float, y: float, z: float, rotX: float, rotY: float, rotZ: float, length: float, ropeType: int, maxLength: float, minLength: float, windingSpeed: float, p11: bool, p12: bool, rigid: bool, p14: float, breakWhenShot: bool, unkPtr: int) -> int: ...
def GET_ROPE_VERTEX_COORD(ropeId: int, vertex: int) -> 'gta.Vector3': ...
def SET_DAMPING(entity: int, vertex: int, value: float) -> None: ...
def ROPE_DRAW_SHADOW_ENABLED(ropeId: int, toggle: bool) -> None: ...
def ROPE_ARE_TEXTURES_LOADED() -> bool: ...
def DOES_ROPE_EXIST(ropeId: int) -> bool: ...
def STOP_ROPE_UNWINDING_FRONT(ropeId: int) -> None: ...
