export interface ScannedItem {
el: HTMLElement;
buttonEl: HTMLElement | null;
menuId: string | undefined;
minStateWidth: string | undefined;
}
export interface ScannedMenu {
el: HTMLElement;
triggerEl: HTMLElement;
menuItemEls: HTMLElement[];
inMenuIds: Set;
hasMenuOnlyItems: boolean;
}
export interface ScanResult {
items: ScannedItem[];
menu: ScannedMenu | null;
/** true when the menu appears before items in DOM order */
menuFirst: boolean;
}
export interface OverflowHost {
getContainerEl(): HTMLElement;
scanChildren(): ScanResult;
isCompact(): boolean;
isReverse(): boolean;
isSnap(): boolean;
}
export declare class OverflowController {
private host;
private orderedSteps;
private appliedSteps;
private minWidthMenuIds;
private ro;
private lastScan;
constructor(host: OverflowHost);
/** Start observing (call after DOM is ready). */
connect(): void;
/** Stop observing and clear all applied state. */
disconnect(): void;
/** Re-scan children + restart (call after external DOM changes). */
update(): void;
private scan;
private startObserver;
private onResize;
private applyState;
private applyMenuState;
private applyCompactCorners;
private setCorners;
private applyMinStyles;
private clearMinStyles;
private clearState;
}
//# sourceMappingURL=OverflowController.d.ts.map