import React, { Component } from 'react';
import type { ReactNode } from 'react';
import type { Data } from 'popper.js';
export type Props = {
    children?: React.ReactNode;
    content: ReactNode | null;
    offset: string;
    onPositioned: () => void;
    position: string;
};
export type State = {
    cssPosition: string;
    hasExtractedStyles: boolean;
    maxHeight: number | null;
    offsets: {
        popper: {
            left: number;
            top: number;
        };
    };
    originalHeight: number | null;
    position?: string;
    transform?: string;
};
export default class Layer extends Component<Props, State> {
    private popper;
    private targetRef;
    private contentRef;
    static defaultProps: {
        boundariesElement: string;
        children: null;
        content: null;
        offset: string;
        position: string;
        zIndex: number;
        lockScroll: boolean;
        isAlwaysFixed: boolean;
        onPositioned: () => void;
    };
    constructor(props: Props);
    componentDidMount(): void;
    componentDidUpdate(prevProps: Props, prevState: State): void;
    componentWillUnmount(): void;
    calculateMaxHeight(originalHeight: number, currentHeight: number, positionTop: number, cssPosition: string): number | null;
    extractStyles: (state: Data) => void;
    applyPopper(props: Props): void;
    render(): React.JSX.Element;
}
