import { Breakpoint, CompactType, Layout, LayoutItem, Layouts, Margin } from '../../types';
import { BreakpointCols, Breakpoints, ResponsiveLayout, ResponsiveMargin } from './types';
/**
 * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).
 * @param  {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})
 * @param  {Number} width Screen width.
 * @returns {String}       Highest breakpoint that is less than width.
 */
export declare function getBreakpointFromWidth(breakpoints: Breakpoints<Breakpoint>, width: number): Breakpoint;
/**
 * Given a breakpoint, get the # of cols set for it.
 * @param  {String} breakpoint Breakpoint name.
 * @param  {Object} cols       Map of breakpoints to cols.
 * @returns {Number}            Number of cols.
 */
export declare function getColsFromBreakpoint(breakpoint: Breakpoint, cols: Breakpoints<Breakpoint>): number;
/**
 * Given existing layouts and a new breakpoint, find or generate a new layout.
 *
 * This finds the layout above the new one and generates from it, if it exists.
 * @param  {Object} layouts     Existing layouts.
 * @param  {Array} breakpoints All breakpoints.
 * @param  {String} breakpoint New breakpoint.
 * @param  {String} breakpoint Last breakpoint (for fallback).
 * @param  {Number} cols       Column count at new breakpoint.
 * @param  {CompactType} compactType
 *   vertically.
 * @returns {Array}             New layout.
 */
export declare function findOrGenerateResponsiveLayout(layouts: ResponsiveLayout<Breakpoint>, breakpoints: Breakpoints<Breakpoint>, breakpoint: Breakpoint, lastBreakpoint: Breakpoint, cols: number, compactType: CompactType, brekpointsCols: BreakpointCols, colapsedHeight: number, rowHeight: number): Layout;
/**
 * Given breakpoints, return an array of breakpoints sorted by width. This is usually
 * e.g. ['xxs', 'xs', 'sm', ...]
 * @param  {Object} breakpoints Key/value pair of breakpoint names to widths.
 * @returns {Array}              Sorted breakpoints.
 */
export declare function sortBreakpoints(breakpoints: Breakpoints<Breakpoint>): Array<Breakpoint>;
/**
 * Get a value of margin or containerPadding.
 * @param  {Array | Object} param Margin | containerPadding, e.g. [10, 10] | {lg: [10, 10], ...}.
 * @param  {String} breakpoint   Breakpoint: lg, md, sm, xs and etc.
 * @returns {Array}
 */
export declare function getIndentationValue(param: ResponsiveMargin, breakpoint: string): Margin;
/**
 * Modifica el layout y le arega el item a todos los breakpoints
 * @param layouts
 * @param layoutItem
 */
export declare function addLayoutItemToBreakPointIfNoExists(layouts: Layouts, breakpoint: string, layoutItem: LayoutItem, cols: BreakpointCols, margin: ResponsiveMargin, containerPadding: ResponsiveMargin, rowHeight: number | Record<string, number>, containerHeight?: number, currentBreakpoint?: Breakpoint): void;
/**
 * Modifica el layout y le arega el item a todos los breakpoints
 * @param layouts
 * @param layoutItem
 */
export declare function addLayoutItemToBreakPoints(layouts: Layouts, layoutItem: LayoutItem, cols: BreakpointCols, margin: ResponsiveMargin, containerPadding: ResponsiveMargin, rowHeight: number | Record<string, number>, containerHeight?: number, currentBreakpoint?: Breakpoint): Layouts;
/**
 * TODO: Documentar
 */
export declare function cloneLayouts(layouts: Layouts, layoutItemReplaceProps?: Partial<Exclude<LayoutItem, 'i'>>): Layouts;
//# sourceMappingURL=responsiveUtils.d.ts.map