import React, { Component, PropsWithChildren } from 'react';
interface GetChildPosProps {
    offsets: Partial<{
        topOffset: number;
        leftOffset: number;
        rightOffset: number;
    }>;
    rect: DOMRect;
    childRect: DOMRect;
    pageOffset: {
        x: number;
        y: number;
    };
    padding: number;
}
export declare const getChildPos: ({ offsets, rect, childRect, pageOffset, padding }: GetChildPosProps) => {
    left: number;
    top: number;
} | {
    right: number;
    top: number;
};
declare const defaultModalStyle: {
    content: {
        top: number;
        left: number;
        border: number;
        right: string;
        bottom: string;
        padding: string;
    };
    overlay: {
        right: string;
        bottom: string;
        width: string;
        height: string;
        backgroundColor: string;
    };
};
type PortaledProps = PropsWithChildren<{
    right?: number;
    left?: number;
    top?: number;
    component?: React.ElementType<any>;
    onClose?: (event: React.MouseEvent<Element, globalThis.MouseEvent> | React.KeyboardEvent<Element>) => void;
    topOffset?: number;
    leftOffset?: number;
    rightOffset?: number;
    overlayZIndex?: number;
    isOpened?: boolean;
    modalProps?: Partial<ReactModal.Props>;
    modalStyle?: Partial<typeof defaultModalStyle>;
    theme?: any;
}>;
interface PortaledState {
    pos: {
        left: number;
        top: number;
    } | {
        right: number;
        top: number;
    } | null;
    isVisible: boolean;
}
declare class Portaled extends Component<PortaledProps, PortaledState> {
    static getDerivedStateFromError(): {
        hasError: boolean;
    };
    static defaultProps: PortaledProps;
    state: {
        pos: null;
        isVisible: boolean;
    };
    unsubscribe: (() => boolean) | undefined;
    _unmounted: boolean;
    componentDidMount(): void;
    componentDidUpdate(prevProps: PortaledProps): void;
    componentDidCatch(): void;
    componentWillUnmount(): void;
    element: React.RefObject<HTMLDivElement>;
    child: React.RefObject<HTMLDivElement>;
    handleScroll: () => void;
    render(): JSX.Element;
}
declare const _default: React.ForwardRefExoticComponent<Pick<import("styled-components").ExecutionProps, "as" | "forwardedAs"> & {
    theme?: import("styled-components").DefaultTheme | undefined;
} & {
    children?: React.ReactNode | undefined;
    onClose?: ((event: React.MouseEvent<Element, globalThis.MouseEvent> | React.KeyboardEvent<Element>) => void) | undefined;
    top?: number | undefined;
    right?: number | undefined;
    left?: number | undefined;
    component?: React.ElementType<any> | undefined;
    topOffset?: number | undefined;
    leftOffset?: number | undefined;
    rightOffset?: number | undefined;
    overlayZIndex?: number | undefined;
    isOpened?: boolean | undefined;
    modalProps?: Partial<ReactModal.Props> | undefined;
    modalStyle?: Partial<typeof defaultModalStyle> | undefined;
} & React.RefAttributes<typeof Portaled>> & {};
export default _default;
