
import { LayoutItem } from "./grid-core/types.js";
import { CubeBoardProps } from "./Board.js";
import { BreakpointCols, Breakpoints, ResponsiveLayouts } from "./responsive-utils.js";
import * as react from "react";

//#region src/components/layout/Board/BoardResponsive.d.ts
interface CubeBoardResponsiveProps extends Omit<CubeBoardProps, 'layout' | 'defaultLayout' | 'cols' | 'onLayoutChange' | 'width' | 'breakpoints'> {
  /** Map of breakpoint name -> minimum container width in pixels. */
  breakpoints: Breakpoints;
  /** Map of breakpoint name -> column count. */
  cols: BreakpointCols;
  /** Controlled per-breakpoint layouts. */
  layouts?: ResponsiveLayouts;
  /** Initial per-breakpoint layouts for uncontrolled usage. */
  defaultLayouts?: ResponsiveLayouts;
  /**
   * Called when a drag or resize is committed. Receives the active breakpoint's
   * layout and the full map of all breakpoint layouts.
   */
  onLayoutChange?: (currentLayout: LayoutItem[], allLayouts: ResponsiveLayouts) => void;
  /** Called when the active breakpoint changes. */
  onBreakpointChange?: (breakpoint: string, cols: number) => void;
  /**
   * Called when the measured container width changes, with the current column
   * count for the active breakpoint. Mirrors react-grid-layout's
   * `WidthProvider` `onWidthChange`. Not fired while width is unmeasured (0) or
   * when an explicit `width` is provided.
   */
  onWidthChange?: (width: number, cols: number) => void;
  /**
   * Force a specific breakpoint regardless of the measured width (e.g. for a
   * fixed-size screenshot or PDF export).
   */
  breakpoint?: string;
  /**
   * Explicit container width in pixels. When provided, disables automatic width
   * measurement (useful for SSR, tests, and forced-size exports).
   */
  width?: number;
}
/**
 * A responsive wrapper around `Board` that selects a layout and column count
 * based on the container's width (or a forced breakpoint). Mirrors the model of
 * react-grid-layout's `Responsive` + `WidthProvider`: per-breakpoint `layouts`
 * and `cols`, with `onLayoutChange` reporting both the active layout and the
 * full map.
 */
declare const BoardResponsive: react.ForwardRefExoticComponent<CubeBoardResponsiveProps & react.RefAttributes<HTMLDivElement>>;
//#endregion
export { BoardResponsive, CubeBoardResponsiveProps };
//# sourceMappingURL=BoardResponsive.d.ts.map