import { Application, Container } from 'dill-pixel';
import { Bounds, Circle, Container as PIXIContianer, Point, Rectangle } from 'pixi.js';
import { ICollider } from './ICollider';
import { System } from './System';
import { EntityType, SnapBoundary } from './types';
export declare class Entity<T = any, A extends Application = Application> extends Container<A> implements ICollider {
    view: PIXIContianer;
    isActor: boolean;
    isSolid: boolean;
    isSensor: boolean;
    debug: boolean;
    debugColors: {
        bounds: number;
        outerBounds: number;
    };
    type: EntityType;
    isCircle: boolean;
    isCollideable: boolean;
    xRemainder: number;
    yRemainder: number;
    config: T;
    protected subpixelX: number;
    protected subpixelY: number;
    protected remainder: Point;
    constructor(config?: Partial<T>);
    protected _cachedBounds: SnapBoundary | null;
    get cachedBounds(): SnapBoundary;
    set cachedBounds(value: Bounds);
    protected _dirtyBounds: boolean;
    get dirtyBounds(): boolean;
    set dirtyBounds(value: boolean);
    get boundingRect(): Rectangle;
    get top(): number;
    get bottom(): number;
    get left(): number;
    get right(): number;
    get system(): typeof System;
    getCollideables<T extends Entity = Entity>(dx?: number, dy?: number): Set<T>;
    preFixedUpdate(): void;
    fixedUpdate(deltaTime?: number): void;
    postFixedUpdate(): void;
    getWorldBounds(): SnapBoundary;
    getBoundingBox(): Rectangle | Circle;
    getOuterBoundingBox(): Rectangle | Circle | null;
    moveX(amount: number): void;
    moveY(amount: number): void;
    collidesWith(entity: Entity, dx?: number, dy?: number): boolean;
    protected initialize(): void;
}
//# sourceMappingURL=Entity.d.ts.map