import { Rect } from '@deja-js/component/core/graphics';
import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
export declare class DejaTile {
    protected static CURRENT_ID: number;
    cutted$: BehaviorSubject<boolean>;
    dragging$: BehaviorSubject<boolean>;
    dropping$: BehaviorSubject<boolean>;
    pressed$: BehaviorSubject<boolean>;
    selected$: BehaviorSubject<boolean>;
    hidden$: ReplaySubject<boolean>;
    pixelBounds$: BehaviorSubject<Rect>;
    deleted$: Subject<void>;
    refresh$: Subject<void>;
    isTemporary: boolean;
    private _id;
    private _color;
    private _templateModel;
    private _isDragging;
    private _isDropping;
    private _isPressed;
    private _isHidden;
    private _pixelBounds;
    private _selected;
    private _cutted;
    private _pending;
    private _fading;
    private _percentBounds;
    constructor(id?: string);
    get idealBounds(): Rect;
    set pixelBounds(value: Rect);
    get pixelBounds(): Rect;
    set percentBounds(value: Rect);
    get percentBounds(): Rect;
    set templateModel(value: unknown);
    get templateModel(): unknown;
    get id(): string;
    set isCutted(value: boolean);
    get isCutted(): boolean;
    set color(value: string);
    get color(): string;
    set isDragging(value: boolean);
    get isDragging(): boolean;
    set isDropping(value: boolean);
    get isDropping(): boolean;
    set isPressed(value: boolean);
    get isPressed(): boolean;
    set isSelected(value: boolean);
    get isSelected(): boolean;
    set isHidden(value: boolean);
    get isHidden(): boolean;
    set isPending(value: boolean);
    get isPending(): boolean;
    get fading(): boolean;
    set fading(value: boolean);
    makeId(): void;
    equalsTo(tile: DejaTile): boolean;
    clone(tile?: DejaTile): DejaTile;
    delete(): void;
    refresh(): void;
}
