import { CSSClasses, IVisibility, HtmlElementPosition } from '../../types';
type Position = 'center' | 'left' | 'right';
type PositionList = ['bottom' | 'top', 'center' | 'left' | 'right'];
/** Get HTML element offset with pure JS */
export declare function getOffset(elm?: HTMLElement | null): HtmlElementPosition;
/**
* Get the Window Scroll top/left Position
* @returns
*/
export declare function windowScrollPosition(): {
left: number;
top: number;
};
export declare function getViewportDimensions(): {
vw: number;
vh: number;
};
/** calculate available space for each side of the DOM element */
export declare function calculateAvailableSpace(element: HTMLElement): {
top: number;
bottom: number;
left: number;
right: number;
};
/**
* Get all available positions calculated by available space,
* e.g.: { canShow: { top: true, bottom: false, ...}, parentPositions: ['top', 'center'] }
* @param parentElm - parent element (input)
* @param pickerElm - picker element (calendar picker modal)
* @param marginOffset - margin offset when picker is opened
* @returns
*/
export declare function getAvailablePosition(parentElm: HTMLElement, pickerElm: HTMLElement, marginOffset?: number): {
canShow: {
top: boolean;
bottom: boolean;
left: boolean;
right: boolean;
};
parentPositions: PositionList;
};
export declare function findBestPickerPosition(input: HTMLInputElement, calendar: HTMLElement): Position | PositionList;
export declare const setPositionCalendar: (input: HTMLInputElement | undefined, calendar: HTMLElement, position: IVisibility['positionToInput'], css: CSSClasses) => void;
export {};
//# sourceMappingURL=position.d.ts.map