import { Application } from 'dill-pixel';
import { Circle, Point, Rectangle } from 'pixi.js';
import { Entity } from './Entity';
import { Collision, EntityType } from './types';
export declare class Actor<T = any, A extends Application = Application> extends Entity<T, A> {
    type: string;
    isActor: boolean;
    passThroughTypes: EntityType[];
    passingThrough: Set<Entity>;
    riding: Set<Entity>;
    mostRiding: Entity | null;
    protected _animations: Set<gsap.core.Tween | gsap.core.Timeline>;
    protected _activeCollisions: Collision[];
    protected _animationTargets: Map<'x' | 'y', {
        target: number;
        duration: number;
        elapsed: number;
        start: number;
        ease: gsap.EaseString;
        repeat: number;
        yoyo: boolean;
        repeatDelay: number;
        delayRemaining: number;
        iteration: number;
        isReversed: boolean;
    }>;
    get activeCollisions(): Collision[];
    set activeCollisions(value: Collision[]);
    get ridingAllowed(): boolean;
    getCollideables<T extends Entity = Entity>(dx?: number, dy?: number): Set<T>;
    added(): void;
    removed(): void;
    squish(_collision?: Collision, _pushingEntity?: Entity, _direction?: Point): void;
    animateX(target: number, vars?: gsap.TweenVars): gsap.core.Tween;
    animateY(target: number, vars?: gsap.TweenVars): gsap.core.Tween;
    postFixedUpdate(): void;
    animateTo(prop: 'x' | 'y', target: number, vars?: gsap.TweenVars): gsap.core.Tween;
    fixedUpdate(deltaTime: number): void;
    moveX(amount: number, onCollide?: ((collision: Collision, pushingEntity?: Entity, direction?: Point) => void) | null, onNoCollisions?: (() => void) | null, pushingEntity?: Entity): void;
    moveY(amount: number, onCollide?: ((collision: Collision, pushingEntity?: Entity, direction?: Point) => void) | null, onNoCollisions?: (() => void) | null, pushingEntity?: Entity): void;
    collideAt(x: number, y: number, box: Rectangle | Circle, sides?: ('top' | 'right' | 'bottom' | 'left')[]): Collision[] | false;
    isRiding(solid: Entity, dx?: number, dy?: number): boolean;
    setPassingThrough(entity: Entity): void;
    removePassingThrough(entity: Entity): void;
    isPassingThrough(entity: Entity): boolean;
    private clearAllRiding;
    private setAllRiding;
}
//# sourceMappingURL=Actor.d.ts.map