import * as _emotion_react_jsx_runtime from '@emotion/react/jsx-runtime';
import react__default from 'react';

declare enum Breakpoints {
    sm = "sm",
    md = "md",
    lg = "lg"
}
declare enum BreakpointRanges {
    sm = "sm",
    lg = "lg",
    minSmMaxMd = "minSmMaxMd",
    minMdMaxLg = "minMdMaxLg",
    minSmMaxLg = "minSmMaxLg",
    maxLg = "maxLg",
    maxMd = "maxMd",
    minSm = "minSm",
    minMd = "minMd"
}
type CurrentBreakpointReturnType<T> = T extends string ? boolean : T extends undefined ? BreakpointRanges : never;
type CurrentBreakpointType = <T extends string | undefined = undefined>(assertBp?: T) => CurrentBreakpointReturnType<T>;
declare const bp: {
    key: typeof Breakpoints;
    sm: (style: string) => string;
    lg: (style: string) => string;
    minSmMaxLg: (style: string) => string;
    minSmMaxMd: (style: string) => string;
    minMdMaxLg: (style: string) => string;
    maxLg: (style: string) => string;
    maxMd: (style: string) => string;
    minSm: (style: string) => string;
    minMd: (style: string) => string;
    current: CurrentBreakpointType;
    switch: <Sm, MinSm, MinMd, Lg>(smVal: Sm, minSmMaxMdVal: MinSm, minMdMaxLgVal: MinMd, lgVal: Lg) => Sm | MinSm | MinMd | Lg;
    isSm: () => boolean;
    isMinSm: () => boolean;
    isMinSmMaxMd: () => boolean;
    isMinMdMaxLg: () => boolean;
    isLg: () => boolean;
};
declare function useBreakpoints(): {
    key: typeof Breakpoints;
    sm: (style: string) => string;
    lg: (style: string) => string;
    minSmMaxLg: (style: string) => string;
    minSmMaxMd: (style: string) => string;
    minMdMaxLg: (style: string) => string;
    maxLg: (style: string) => string;
    maxMd: (style: string) => string;
    minSm: (style: string) => string;
    minMd: (style: string) => string;
    current: CurrentBreakpointType;
    switch: <Sm, MinSm, MinMd, Lg>(smVal: Sm, minSmMaxMdVal: MinSm, minMdMaxLgVal: MinMd, lgVal: Lg) => Sm | MinSm | MinMd | Lg;
    isSm: () => boolean;
    isMinSm: () => boolean;
    isMinSmMaxMd: () => boolean;
    isMinMdMaxLg: () => boolean;
    isLg: () => boolean;
};
declare function useScreenWidth(): number;
type DisplayBreakpointProps = {
    css?: string;
    sm?: boolean;
    minSmMaxMd?: boolean;
    minMdMaxLg?: boolean;
    lg?: boolean;
    maxLg?: boolean;
    maxMd?: boolean;
    minSm?: boolean;
    minMd?: boolean;
    children?: react__default.ReactNode;
    cssStr?: string;
};
declare const DisplayBreakpoint: ({ sm, minSmMaxMd, minMdMaxLg, lg, maxLg, maxMd, minSm, minMd, cssStr, children, }: DisplayBreakpointProps) => _emotion_react_jsx_runtime.JSX.Element;
type BreakpointProps = {
    sm?: boolean;
    minSmMaxMd?: boolean;
    minMdMaxLg?: boolean;
    lg?: boolean;
    maxLg?: boolean;
    maxMd?: boolean;
    minSm?: boolean;
    minMd?: boolean;
    children: react__default.ReactNode;
};
declare function Breakpoint({ sm, minSmMaxMd, minMdMaxLg, lg, maxLg, maxMd, minSm, minMd, children, }: BreakpointProps): _emotion_react_jsx_runtime.JSX.Element | null;

export { Breakpoint, BreakpointRanges, Breakpoints, DisplayBreakpoint, bp, useBreakpoints, useScreenWidth };
