import { Rectangle as Bounds } from "electron";
import { WindowConfig } from "@edenapp/types";
import { ViewInfo } from "./types";
type ViewCollection = () => Iterable<ViewInfo>;
/**
 * FloatingWindowController
 *
 * Encapsulates floating window calculations: bounds, constraints, and z-ordering.
 */
export declare class FloatingWindowController {
    private readonly getWorkspaceBounds;
    private readonly getViews;
    private static readonly MIN_GRABBABLE_WIDTH;
    private static readonly CASCADE_OFFSET;
    constructor(getWorkspaceBounds: () => Bounds, getViews: ViewCollection);
    /**
     * Calculate initial bounds for a floating window, including cascade offset.
     */
    calculateInitialBounds(windowConfig?: WindowConfig): Bounds;
    /**
     * Apply window-level constraints and workspace bounds to floating windows.
     */
    applyWindowConstraints(bounds: Bounds, windowConfig?: WindowConfig): Bounds;
    /**
     * Get the next z-index for floating windows (top-most position).
     */
    getNextZIndex(): number;
    /**
     * Get the z-index that would place a window at the back of the floating stack.
     */
    getBackmostZIndex(): number | undefined;
    /**
     * Calculate a z-index for a desired position in the floating stack.
     */
    getZIndexForPosition(position: number): number | undefined;
    /**
     * Get floating views ordered by z-index ascending.
     */
    getOrderedFloatingViews(): ViewInfo[];
    private getFloatingViews;
    private constrainBounds;
}
export {};
//# sourceMappingURL=FloatingWindowController.d.ts.map