///
import type { State } from "../state/state.js";
import { ChildTrait } from "../traits/child.js";
import { Entity } from "../traits/entity.js";
import { IdentityTrait } from "../traits/identity.js";
import { LabelTrait } from "../traits/label.js";
import { LocationTrait } from "../traits/location.js";
import { OwnershipTrait } from "../traits/ownership.js";
import { ParentTrait } from "../traits/parent.js";
import { SelectableChildrenTrait } from "../traits/selectableChildren.js";
/**
* @category Grid
*/
export declare function isGrid(entity: unknown): entity is Grid;
/**
* Two dimensional container of items of set spots.
* May also be used as one-dimensional "line" of limited child items.
*
* @category Entity
*/
export declare class Grid extends Entity {
/**
* @category Grid
*/
columns: number;
/**
* @category Grid
*/
rows: number;
/**
* @category Grid
*/
justify: GridJustify;
/**
* @category Grid
*/
justifyItems: GridJustifyItems;
/**
* @category Grid
*/
alignItems: GridAlignItems;
/**
* Grid comment at grid file
* @category Grid
*/
itemAngle: number;
create(state: State, options?: GridOptions): void;
addChildAt(entity: ChildTrait, column: number, row: number): void;
getChildAt(column: number, row: number): T;
}
type GridJustify = "start" | "end" | "center" | "stretch" | "space-around" | "space-between";
type GridJustifyItems = "start" | "end" | "center" | "stretch";
type GridAlignItems = "start" | "end" | "center" | "stretch";
interface Mixin extends IdentityTrait, LocationTrait, ChildTrait, ParentTrait, LabelTrait, OwnershipTrait, SelectableChildrenTrait {
}
type GridOptions = Partial & {
columns: number;
rows: number;
cellSpacing: number;
justify: GridJustify;
justifyItems: GridJustifyItems;
alignItems: GridAlignItems;
itemAngle: number;
}>;
export interface Grid extends Mixin {
}
export {};