import { InitModelOf, LogicalGridLayout, ObjectOrModel, Widget } from '../../index';
/**
 * Stores layouting options for elements layouted by {@link LogicalGridLayout}.
 *
 * The object can be initialized with user-defined options. These options only have an effect if their value is >=0.
 * If no user-defined options are specified or their value is < 0, the default values specified by CSS are applied (see {@link _readEnvDefaults})
 * unless explicit defaults are provided using constructor or {@link withDefaults}.
 *
 * Important: always create a new object or use {@link clone} to modify the options.
 * Don't set the members directly. Otherwise, your values may be overridden if new defaults are set using {@link withDefaults}.
 */
export declare class LogicalGridLayoutConfig implements LogicalGridLayoutConfigModel {
    model: LogicalGridLayoutConfigModel;
    hgap: number;
    vgap: number;
    columnWidth: number;
    rowHeight: number;
    minWidth: number;
    protected _defaults: InitModelOf<LogicalGridLayoutConfig>;
    protected _options: InitModelOf<LogicalGridLayoutConfig>;
    constructor(options?: InitModelOf<LogicalGridLayoutConfig>, defaults?: InitModelOf<LogicalGridLayoutConfig>);
    protected _prepareOptions(options?: InitModelOf<LogicalGridLayoutConfig>): LogicalGridLayoutConfigModel;
    /**
     * Sets default values that are used if no user-defined options are provided or their values are < 0
     */
    withDefaults(defaults?: InitModelOf<LogicalGridLayoutConfig>): LogicalGridLayoutConfig;
    withSmallHgapDefaults(): LogicalGridLayoutConfig;
    protected _init(): void;
    /**
     * @returns the environment defaults that are used if no explicit {@link _defaults} or custom {@link _options} are set.
     */
    protected _readEnvDefaults(): InitModelOf<LogicalGridLayoutConfig>;
    /**
     * @returns a clone of this logical grid layout config enriched with the given options.
     */
    clone(options?: InitModelOf<LogicalGridLayoutConfig>): LogicalGridLayoutConfig;
    applyToLayout(layout: LogicalGridLayout): void;
    static ensure(layoutConfig: ObjectOrModel<LogicalGridLayoutConfig>): LogicalGridLayoutConfig;
    /**
     * Adds a property change handler to the {@link HtmlEnvironment} that calls the given setter to update the layout config on the given widget whenever the html environment changes.
     * This is necessary because the html environment contains the default values for the layout config object which change when switching to compact mode.
     *
     * This function needs to be called exactly once during the initialization of a widget.
     * It does nothing if it is called after the initialization.
     */
    static initHtmlEnvChangeHandler(widget: Widget, getter: () => LogicalGridLayoutConfig, setter: (config: LogicalGridLayoutConfig) => void): void;
}
export interface LogicalGridLayoutConfigModel {
    /**
     * The horizontal gap in pixels to use between two logical grid columns.
     */
    hgap?: number;
    /**
     * The vertical gap in pixels to use between two logical grid rows.
     */
    vgap?: number;
    /**
     * The width in pixels to use for elements with the logical unit "width = 1".
     * Larger logical widths are multiplied with this value (and gaps are added).
     */
    columnWidth?: number;
    /**
     * The height in pixels to use for elements with the logical unit "height = 1".
     * Larger logical heights are multiplied with this value (and gaps are added).
     */
    rowHeight?: number;
    /**
     * The minimum width of the widget.
     * If this width is > 0 a horizontal scrollbar is shown when the widgets get smaller than this value.
     */
    minWidth?: number;
}
//# sourceMappingURL=LogicalGridLayoutConfig.d.ts.map