import { Layout } from '../common/layout';
import { SmeResponsiveWindowManagerComponent } from '../common/sme-responsive-window-manager.component';
export interface DataTablePresetMinWidth {
    key: string;
    value: number;
}
export declare class MasterViewResponsiveWindowManager extends SmeResponsiveWindowManagerComponent {
    /**
     * The name of the control.
     */
    readonly name = "sme-master-view";
    /**
     * The parameter to determine whether to wrap the search box based on window size changes.
     * On phone down and 400% zoom will wrap.
     */
    searchBoxAutoWrapOnWindowSizeChanges: boolean;
    /**
     * The parameter to determine whether to show or hide the scroll bar vertically based on window size.
     */
    shouldHideYScroll: boolean;
    /**
     * The parameter to determine whether to set the overflow or not based on window size.
     */
    shouldDataTableParentOverflowHide: boolean;
    /**
     * The parameter to determine whether the data table will be wrapped with horizontal padding on window size.
     */
    shouldDataTableSlim: boolean;
    /**
     * The parameter to determine whether to render the data table's bottom margin on window size.
     */
    shouldDataTableRenderWithBottomMargin: boolean;
    /**
     * The parameter to determine the data table's min width class in string on window size.
     */
    dataTableMinWidthClassString: string;
    /**
     * The minimum width that the data table can reach.
     * This is the parameter that passed in from the master view for the hard constraint.
     * Should only be set at initialization
     */
    private dataTablePresetMinWidth;
    /**
     * This design purely won't break the original design for the class.
     * Ideally we should never use the class representation.
     * The values are coming from the class for sme-layout-minwidth-sm and sme-layout-minwidth-md with old design.
     * For phone down, always set to sme-layout-minwidth-sm, otherwise respect the dataTablePresetMinWidth
     * To make it work better on dialog. Should not have any effect on data table.
    */
    private dataTableMinWidthValues;
    /**
     * The master view component classes on window size changed object.
     */
    private smeMasterViewClassList;
    /**
     * The data table's wrapper's classes on window size changed object.
     */
    private smeDataTableWrapperDivClassList;
    constructor(layout: Layout, dataTableMaxWidth?: string);
    /**
     * Checks the actual window size and the preset window size.
     * The intention is that the preset size cannot go beyond actual window size to prevent additional horizontal scroll bar.
     * @param size the object settings for specific window size
     * @returns a string representation for window size string, 'md' or 'sm'
     */
    checkWindowSize(size: DataTablePresetMinWidth): string;
    /**
     * The implementation for the on window size changed event.
     * @param masterViewElement the html element for the master view element.
     * @returns void.
     */
    onWindowSizeChanged(masterViewElement: HTMLElement, stretchToAbsolute?: boolean): void;
    /**
     * Updates the parameters used for the data table on window size changes.
     * @param size the current size object for the window.
     */
    private updateParameters;
    /**
     * Gets the data table's min-width string.
     * @param size the current size object for the window.
     * @returns string representing data-table's min-width
     */
    private getDataTableMinWidthClassString;
}
