import React from 'react';
import type { TGetRootNode } from '../../lib/rootNode/index.js';
import type { LayerComponentName } from './ZIndexStorage.js';
export interface ZIndexProps extends React.HTMLAttributes<HTMLDivElement> {
    /**
     * Приращение к z-index
     */
    delta?: number;
    priority?: number | LayerComponentName;
    style?: React.CSSProperties;
    createStackingContext?: boolean;
    coverChildren?: boolean;
    applyZIndex?: boolean;
    className?: string;
    wrapperRef?: React.Ref<HTMLDivElement> | undefined | null;
    /**
     * Явно указывает, что вложенные элементы должны быть обёрнуты в `<div/>`.
     * Для случаев, когда необходимо задать **только** контекст для области.
     *
     * @default true
     */
    useWrapper?: boolean;
}
type DefaultProps = Required<Pick<ZIndexProps, 'delta' | 'priority' | 'style' | 'applyZIndex' | 'coverChildren' | 'createStackingContext' | 'useWrapper'>>;
interface ZIndexState {
    zIndex: number;
    DOMZIndexContext: {
        parentLayerZIndex: number;
        maxZIndex: number;
    } | null;
}
export declare class ZIndex extends React.Component<ZIndexProps, ZIndexState> {
    static priorities: {
        MobilePopup: number;
        Toast: number;
        GlobalLoader: number;
        Sidepage: number;
        Modal: number;
        Sticky: number;
        PopupMenu: number;
        Popup: number;
    };
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    static defaultProps: DefaultProps;
    state: ZIndexState;
    private getProps;
    private validateProps;
    getRootNode: TGetRootNode;
    private setRootNode;
    private globalObject;
    private zIndexContext;
    componentDidMount(): void;
    componentDidUpdate(prevProps: Readonly<ZIndexProps>): void;
    componentWillUnmount(): void;
    render(): React.JSX.Element;
    private wrapperRef;
    private calcZIndex;
    private increment;
    private findClosestWithZIndex;
    private tryGetContextByDOM;
}
export {};
