import { SmeResponsiveWindowBreakpoints } from '../common/sme-responsive-window-manager.component';
export interface LayoutItemConfig {
    width: LayoutItemConfigPropertyWidth;
}
export interface LayoutItemConfigPropertyWidth {
    type: LayoutItemConfigPropertyWidthType;
    value: number;
}
export declare enum LayoutItemConfigPropertyWidthType {
    Percentage = "Percentage",
    Number = "Number"
}
export interface LayoutConfig {
    [SmeResponsiveWindowBreakpoints.PhoneUp]?: LayoutConfigItem;
    [SmeResponsiveWindowBreakpoints.PhoneDown]?: LayoutConfigItem;
    [SmeResponsiveWindowBreakpoints.Reflow]?: LayoutConfigItem;
}
export interface LayoutConfigItem {
    mode?: LayoutItemConfigMode;
    config?: LayoutItemConfig[];
}
export declare enum LayoutItemConfigMode {
    Default = "Default",
    Custom = "Custom"
}
export declare enum LayoutDrivenType {
    Default = "Default",
    ResponsiveWindowManager = "ResponsiveWindowManager"
}
/**
 * The layout config generator.
 *
 * It determines the configurable width for the layout item.
 * Usage:
 *
 * const layoutConfigGenerator = new LayoutConfigGenerator();
 * layoutConfigGenerator.initialize([20, '100'])
 *
 * type number is used for pixel.
 * type string is used for percentage.
 */
export declare class LayoutConfigGenerator {
    /**
     * It initialized the layout configs for the layout component.
     *
     * @param phoneUp the layout config array for phone-up
     * @param phoneDown the layout config array for phone-down
     * @param reflow the layout config array for reflow
     * @returns
     */
    initialize(phoneUp: any[], phoneDown?: any[], reflow?: any[]): LayoutConfig;
    private parseConfig;
}
