import { type ReactElement, type ReactNode } from "react";
import { type AppSize, type AppSizeQueries } from "./appSize.js";
/**
 * **Note**: The app size object returned by this hook will **not** be equal
 * between renders.
 *
 * @example Simple Example
 * ```tsx
 * import { useAppSize } from "@react-md/core";
 *
 * function Example() {
 *   const { isPhone, isTablet, isDesktop, isLargeDesktop, isLandscape } =
 *     useAppSize()
 *
 *   // do something based on the app size
 *   return null;
 * }
 * ```
 *
 * @returns the current app size.
 * @throws "The `AppSizeProvider` has not been mounted."
 */
export declare function useAppSize(): Readonly<AppSize>;
export interface AppSizeProviderProps extends AppSizeQueries {
    /**
     * @defaultValue `DEFAULT_APP_SIZE`
     * @see {@link DEFAULT_APP_SIZE}
     */
    ssrSize?: Readonly<AppSize>;
    children: ReactNode;
}
/**
 * **Client Component**
 *
 * This component should be mounted near the root of your app to determine the
 * current app size based on different media queries.
 */
export declare function AppSizeProvider(props: AppSizeProviderProps): ReactElement;
