import { Container } from './Container';
import { BaseScene } from "../game";
import { BaseConfig, GridConfig } from '../types';
import { Panel } from './Panel';
export declare class Grid extends Panel<GridConfig> {
    protected _content?: Container;
    private _gridLines?;
    private _draggingChild?;
    private _originalPosition?;
    private _originalIndex?;
    private _cellWidth;
    private _cellHeight;
    protected _config?: GridConfig;
    private indexToItemMap;
    private positionToIndexMap;
    private positionSlotMap;
    constructor(scene: BaseScene, config: GridConfig);
    private initialize;
    private draw;
    private setupContent;
    private setupGridLayout;
    private initializeGridMaps;
    private addItemPlaceholder;
    reDraw(config: GridConfig): void;
    clear(): void;
    addItems(childConfigs: BaseConfig[]): void;
    private addItemToCell;
    private calculateChildDimensions;
    private calculateChildPosition;
    private setupChild;
    addCellItems(childConfigs: BaseConfig[][]): void;
    addItemsToCell(itemConfigs: BaseConfig[], emptyCell: {
        x: number;
        y: number;
    }, cellIndex: number): void;
    private setupCellChild;
    getItemByIndex(index: number): Container | undefined;
    getCellItemsAtIndex(index: number): Container[];
    getEmptyCells(): {
        x: number;
        y: number;
    }[];
    private setupDraggable;
    private handleDragStart;
    private handleDrag;
    private handleDragEnd;
    private findNearestEmptyCell;
    private moveChildToEmptyCell;
    swapChildren(child1: Container, child2: Container): void;
    private resetDraggedChild;
    private cleanupDragState;
    private updateGridItemsMap;
    private getChildAtPosition;
    removeChild(container: Container): void;
    destroy(fromScene?: boolean): void;
}
//# sourceMappingURL=Grid.d.ts.map