/** 화면 크기 타입 */ export type ScreenSize = 'small' | 'medium' | 'large'; /** 스크린 옵저버 설정 */ export interface ScreenObserverConfig { /** 관찰할 엘리먼트 */ element: Element; /** 브레이크포인트 설정 [small, medium] */ breakpoints: [number, number]; } /** * 화면 크기 변경을 감지하고 관리하는 옵저버 클래스 * root 엘리먼트의 크기를 기준으로 반응형 화면 크기를 추적합니다. */ export declare class ScreenObserver { /** ResizeObserver 인스턴스 */ private _observer; /** 브레이크포인트 설정 [small, medium] */ private _breakpoints; /** 현재 화면 크기 */ private _size; /** * ScreenObserver 생성자 * @param config - 스크린 옵저버 설정 */ constructor(config: ScreenObserverConfig); destroy(): void; /** 현재 화면 크기 반환 */ get(): ScreenSize; /** * 너비를 기준으로 화면 크기를 반환 * @param width - 엘리먼트의 너비 * @return 화면 크기 */ private calculate; } export type ScreenResizeEvent = CustomEvent<{ size: ScreenSize; }>; declare global { interface WindowEventMap { 'screen-resize': ScreenResizeEvent; } }