/// 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 {};