/**
 * @jsxRuntime classic
 * @jsx jsx
 */
import React from 'react';
import { jsx } from '@emotion/react';
import type { MemoizedFn } from 'memoize-one';
export type Breakpoints = 'S' | 'M' | 'L';
export type WidthConsumerContext = {
    breakpoint: Breakpoints;
    width: number;
};
export declare function getBreakpoint(width?: number): Breakpoints;
export declare function createWidthContext(width?: number): WidthConsumerContext;
export declare const WidthContext: React.Context<WidthConsumerContext>;
declare const Consumer: React.Consumer<WidthConsumerContext>;
export type WidthProviderState = {
    width?: number;
};
type WidthProviderProps = {
    children?: React.ReactNode;
    className?: string;
    shouldCheckExistingValue?: boolean;
};
/**
 * 🧱 Internal function: Editor FE Platform
 *
 * Returns the width of the document body.
 *
 * This function is memoized to avoid forcing a layout reflow multiple times.
 * It uses `document.body.offsetWidth` as the source of the width, which can lead to
 * a layout reflow if accessed repeatedly. To mitigate performance issues, the result
 * is cached using `memoizeOne`.
 *
 * @returns {number} The width of the document body or 0 if the document is undefined.
 */
export declare const getBodyWidth: MemoizedFn<() => number>;
export declare const WidthProvider: ({ className, shouldCheckExistingValue, children, }: WidthProviderProps) => jsx.JSX.Element;
export { Consumer as WidthConsumer };
