import { type IEventEmitter } from '@breadstone/mosaik-elements'; import type { ILayoutChangedEventDetail } from '../../../events'; import type { TileManagerDragMode } from '../../../Types/TileManagerDragMode'; import type { TileManagerResizeMode } from '../../../Types/TileManagerResizeMode'; import { CustomElement } from '../../Abstracts/CustomElement'; import type { ISerializedTile } from './ISerializedTile'; import type { ITileManagerElementProps } from './ITileManagerElementProps'; import { TileManagerTileElement } from './TileManagerTileElement'; declare const TileManagerElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * The tile manager component is a layout container used to display a group of tiles. * The tiles can be dragged to a different position, resized, maximized, or made full-screen. * The layout of tiles within the tile manager can be saved for later use. * * @element mosaik-tile-manager * @category Layout * * @fires layoutChanged {LayoutChangedEvent} - Fired when the layout changes. * * @slot - Default slot for tile elements. * * @csspart base - The wrapper for the entire tile manager content. * @csspart maximized-overlay - The overlay shown when a tile is maximized. * * @example * Basic tile manager with two tiles: * ```html * * * * * ``` * * @example * Tile manager with resize and drag enabled: * ```html * * * * * ``` * * @public */ export declare class TileManagerElement extends TileManagerElement_base implements ITileManagerElementProps { private _resizeMode; private _dragMode; private _columnCount; private _minColumnWidth; private _minRowHeight; private _gap; private readonly _tilesState; private readonly _serializer; private readonly _slotController; private readonly _layoutChanged; /** * Constructs a new instance of the `TileManagerElement` class. * * @public */ constructor(); /** * Returns the `is` property. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the `resizeMode` property. * Determines when the resize handles are visible. * * - `none` - Resize handles are not visible. * - `hover` - Resize handles are visible on hover. * - `always` - Resize handles are always visible. * * @public * @attr resize-mode */ get resizeMode(): TileManagerResizeMode; set resizeMode(value: TileManagerResizeMode); /** * Gets or sets the `dragMode` property. * Determines how the tiles can be dragged. * * - `none` - Tiles cannot be dragged. * - `tile` - Tiles can be dragged from any part of the tile. * - `tile-header` - Tiles can be dragged from the tile header only. * * @public * @attr drag-mode */ get dragMode(): TileManagerDragMode; set dragMode(value: TileManagerDragMode); /** * Gets or sets the `columnCount` property. * Specifies the number of columns in the grid. * * @public * @attr column-count */ get columnCount(): number | null; set columnCount(value: number | null); /** * Gets or sets the `minColumnWidth` property. * Specifies the minimum column width in pixels. * Used with auto-fit columns. * * @public * @attr min-column-width */ get minColumnWidth(): number | null; set minColumnWidth(value: number | null); /** * Gets or sets the `minRowHeight` property. * Specifies the minimum row height in pixels. * * @public * @attr min-row-height */ get minRowHeight(): number | null; set minRowHeight(value: number | null); /** * Gets or sets the `gap` property. * Specifies the gap between tiles in pixels. * * @public * @attr */ get gap(): number | null; set gap(value: number | null); /** * Gets all tile elements in the tile manager. * * @public * @readonly */ get tiles(): Array; /** * Gets the currently maximized tile, if any. * * @public * @readonly */ get maximizedTile(): TileManagerTileElement | null; /** * Gets the layoutChange event emitter. * * @public * @readonly */ get layoutChanged(): IEventEmitter; /** * @public * @override */ connectedCallback(): void; /** * Handles slot changes to update tile positions. * * @public */ handleSlotChange(): void; /** * Saves the current layout state. * * @returns An array of serialized tile states. * * @public */ saveLayout(): Array; /** * Saves the current layout state as a JSON string. * * @returns A JSON string representing the layout. * * @public */ saveLayoutAsJSON(): string; /** * Loads a previously saved layout. * * @param layout - The serialized layout to load. * * @public */ loadLayout(layout: Array): void; /** * Loads a layout from a JSON string. * * @param json - The JSON string representing the layout. * * @public */ loadLayoutFromJSON(json: string): void; } /** * @public */ export declare namespace TileManagerElement { type Props = ITileManagerElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-tile-manager': TileManagerElement; } } export {}; //# sourceMappingURL=TileManagerElement.d.ts.map