import { FC, SetStateAction, Dispatch, ReactNode } from 'react';
interface Props {
    setIsFullscreenModalMode: (arg: SetStateAction<boolean>) => Promise<void>;
    children: ReactNode | ReactNode[];
}
interface ElementInfo {
    setIsOpened: Dispatch<SetStateAction<boolean>>;
    id: string;
}
interface Api {
    requestOpen: (elInfo: ElementInfo) => void;
    requestClose: (elInfo: ElementInfo, isUnmount?: boolean) => void;
}
/**
 * Component designed to manage fullscreen elements inside of iframe(such as tooltips, popovers, modals).
 * State changes flow:
 *
 * ↓closed↓
 * ↓openning↓
 * {call transitionFn} stretches iframe to fullscreen(returns promise).
 * {call plannedAfterTransitionFinishCb} just open planned element by default.
 * ↓opened↓
 * ↓closing transition↓
 * {call transitionFn} shrinks iframe to app size. In some cases another element could be opened. We don't want to call transitionFn in this case
 * {call plannedAfterTransitionFinishCb} just go to closed state of element.
 *
 * At any of these states a element can request to open\close itself. See requestOpen/requestClose for more details
 */
export declare const DcFullscreenElemsCoordinatorProvider: FC<Props>;
export declare function useDcFullscreenElemsCoordinator(): Api;
export {};
//# sourceMappingURL=DcFullscreenElemsCoordinatorProvider.d.ts.map