import { Quaternion, Vector3 } from "@galacean/engine-math";
import { BoolUpdateFlag } from "../BoolUpdateFlag";
import { ICustomClone } from "../clone/ComponentCloner";
import { Component } from "../Component";
import { Layer } from "../Layer";
import { ColliderShape } from "./shape/ColliderShape";
/**
 * Base class for all colliders.
 * @decorator `@dependentComponents(Transform, DependentMode.CheckOnly)`
 */
export declare class Collider extends Component implements ICustomClone {
    protected _updateFlag: BoolUpdateFlag;
    protected _shapes: ColliderShape[];
    protected _collisionLayerIndex: number;
    /**
     * Disabling a collider only detaches its native actor from the simulation
     * scene; the actor is not destroyed, so on re-enable it still holds its
     * pre-disable pose. The first transform sync after (re-)enable must teleport,
     * never sweep — otherwise a kinematic actor drags across the scene from that
     * stale pose and fires spurious contacts along the path.
     */
    private _pendingReenterTeleport;
    /**
     * The shapes of this collider.
     */
    get shapes(): Readonly<ColliderShape[]>;
    /**
     * The collision layer of this collider, only support single layer.
     *
     * @defaultValue `Layer.Layer0`
     */
    get collisionLayer(): Layer;
    set collisionLayer(value: Layer);
    /**
     * Add collider shape on this collider.
     * @param shape - Collider shape
     */
    addShape(shape: ColliderShape): void;
    /**
     * Remove a collider shape.
     * @param shape - The collider shape.
     */
    removeShape(shape: ColliderShape): void;
    /**
     * Remove all shape attached.
     */
    clearShapes(): void;
    protected _syncNative(): void;
    /**
     * Teleport native actor to a world pose (instant, no implied velocity).
     * Used during initialization paths (clone) where the native actor must be re-aligned
     * with the entity transform after construction-time pose was based on stale defaults.
     */
    protected _teleportToEntityTransform(worldPosition: Vector3, worldRotation: Quaternion): void;
    /**
     * Sync entity world transform to native actor for per-frame updates.
     * Default semantics: teleport (setGlobalPose). Subclasses override to express
     * physics-aware movement (e.g. DynamicCollider routes kinematic actors through
     * setKinematicTarget to generate contact events on swept motion).
     */
    protected _syncEntityTransformToNative(worldPosition: Vector3, worldRotation: Quaternion): void;
    protected _addNativeShape(shape: ColliderShape): void;
    protected _removeNativeShape(shape: ColliderShape): void;
    private _setCollisionLayer;
}
