import type { TgdInterfaceTransformable } from "../../interface";
import { TgdTransfo } from "../../math";
import { TgdPainter } from "../painter";
import type { TgdSprite } from "./types";
export type { TgdSprite } from "./types";
export declare abstract class TgdPainterSpritesAbstract<Base extends TgdSprite, Type extends Base> extends TgdPainter implements TgdInterfaceTransformable {
    readonly transfo: TgdTransfo;
    abstract list(): ReadonlyArray<Type>;
    abstract forEach(callback: (sprite: Type) => void): void;
    abstract filter(test: (sprite: Type) => boolean): ReadonlyArray<Type>;
    abstract get count(): number;
    abstract get capacity(): number;
    /**
     * Delete all sprites.
     */
    abstract clear(): void;
    abstract add(data: Omit<Type, keyof Base> & Partial<Omit<Type, "id">>): Type;
    abstract remove(sprite: {
        id: number;
    }): void;
    abstract delete(): void;
    abstract paint(): void;
    abstract debug(caption?: string): void;
}
//# sourceMappingURL=sprites-abstract.d.ts.map