import { ElementRef } from '@angular/core';
import { IAsset } from '../interface/asset.interface';
import { Observable } from 'rxjs';
import { ObservableModel } from '../model/observable.model';
import { BoundaryModel } from '../model/boundary.model';
import { BoundarySetupModel } from '../model/boundary-set.model';
import { BoardModel } from '../model/board.model';
import { AssetAlignEnum } from '../asset/enum/asset-align.enum';
import { AssetAlignVerticalEnum } from '../asset/enum/asset-align-vertical.enum';
import { AssetClass } from '../asset/asset.class';
import * as i0 from "@angular/core";
export declare class GameService {
    private masterSubject$;
    private board;
    valid(asset: IAsset, boundary: BoundaryModel): boolean;
    isEmpty(value: number): boolean;
    private insideWalls;
    private belowCeiling;
    private aboveFloor;
    getBoundary(boundarySetup: BoundarySetupModel): BoundaryModel;
    isHit(asset: IAsset, damageAsset: IAsset): boolean;
    addOutlines(ctx: CanvasRenderingContext2D, offset: number, width: number): void;
    initBoard(canvas: ElementRef<HTMLCanvasElement>, columns: number, rows: number, blockSize: number): CanvasRenderingContext2D;
    getGameboard(): BoardModel;
    getMasterObservable(): Observable<ObservableModel>;
    emitMasterObservableEvent(data: ObservableModel): void;
    positionAsset(asset: AssetClass, alignPosition: AssetAlignEnum, justifyPosition: AssetAlignVerticalEnum): IAsset;
    static ɵfac: i0.ɵɵFactoryDeclaration<GameService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<GameService>;
}
