import { Size } from './types'; export type BreakpointName = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'; /** * Map from breakpoint to component size. A key applies at that breakpoint and all narrower ones (e.g. md:lg → xs, sm, md use lg). */ export type BreakpointToSizeMap = Partial>; /** * Parses a string like "sm:lg,md:md" into a BreakpointToSizeMap. * Key = breakpoint (xs, sm, md, lg, xl, 2xl). Value = component size (xxs, xs, sm, md, lg). * Invalid pairs are skipped. Returns undefined for empty/null/whitespace. */ export declare function parseResponsiveSizeMap(value: string | null | undefined): BreakpointToSizeMap | undefined; /** * Returns the effective component size from the breakpoint→size map. * A map entry like "md:lg" applies at that breakpoint and all narrower breakpoints (xs, sm, md). * With multiple entries we use the narrowest matching key (most specific). E.g. "sm:lg,md:md" → xs/sm use lg, md uses md. */ export declare function getResponsiveSize(requestedSize: Size, breakpointToSizeMap: BreakpointToSizeMap | null | undefined): Size; /** * Subscribes to viewport changes at the given breakpoint. The callback is invoked * when the viewport crosses the breakpoint. Returns an unsubscribe function. */ export declare function subscribeToBreakpoint(breakpoint: BreakpointName, callback: () => void): () => void; /** * Subscribes to multiple breakpoints; callback runs when any of them is crossed. * Returns a single unsubscribe that removes all listeners. */ export declare function subscribeToBreakpoints(breakpoints: BreakpointName[], callback: () => void): () => void;