//@ts-ignore
import { AppContextType, Coordinates, PropsWithDefaults, StaticDefaultProps } from '@grapecity/core-ui';
///
//@ts-ignore
import * as React from 'react';
type ParentElement = {
type: 'element';
element: HTMLDivElement;
};
type ParentMouse = {
type: 'mouse';
position: Coordinates;
};
type ParentViewport = {
type: 'viewport';
};
export type PositionerAlignment = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
export type PositionerProps = {
parent: ParentElement | ParentMouse | ParentViewport;
align: PositionerAlignment;
offset?: false | number;
edgeSnapOffset?: number;
flippable?: boolean;
fillContainer?: boolean;
onSide?: boolean;
onReady?: () => void;
};
type PositionerStyle = {
position?: 'absolute' | 'fixed';
top?: number;
bottom?: number;
left?: number;
right?: number;
};
type PositionerState = {
hasCalculatedStyle: boolean;
};
type PositionerDefaultProps = keyof Pick;
export declare class Positioner extends React.Component {
//@ts-ignore
static contextType: React.Context;
context: AppContextType;
static defaultProps: StaticDefaultProps;
props: PropsWithDefaults;
private _disposables;
private _item;
state: PositionerState;
componentDidMount(): void;
componentWillUnmount(): void;
getNode: () => HTMLDivElement | null;
setupScrollSpy: () => void;
onScrollAndResize: () => void;
setViewportRelativePosition: () => void;
updatePosition: (initial?: boolean) => void;
applyStyle: ({ position, ...pixelValues }: PositionerStyle) => void;
render(): React.JSX.Element;
}
export {};