type PlacementType = 'default' | 'full' | 'left'; interface State { type: PlacementType; style: { width: number; height: number; transition?: string; }; position: { x: number; y: number; }; } interface ReducerMapping { full: never; left: never; position: { x: number; y: number; }; moving: { direction: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; movementX: number; movementY: number; min: { x: number; y: number; }; max: { x: number; y: number; }; }; moved: DOMRect; } type Action = T extends List ? { type: T; data: ReducerMapping[T]; } : { type: T; }; export declare const defaultSize: { width: number; height: number; }; export declare function reducer(state: State, action: Action): State; export {};