import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { ColumnSeparatorValue, FlexibleColumnLayout, FlexibleColumnLayoutDefinition } from './constants';
import * as i0 from "@angular/core";
export declare class FlexibleColumnLayoutComponent implements AfterViewInit, OnChanges, OnDestroy, OnInit {
    /**
     * The template that provides the content of the first/start/left column
     */
    startColumn: TemplateRef<any>;
    /**
     * The template that provides the content of the middle column
     */
    midColumn: TemplateRef<any>;
    /**
     * The template that provides the content of the last/end/right column
     */
    endColumn: TemplateRef<any>;
    /**
     * The background design of the component
     * Options include: 'solid' | 'translucent' | 'transparent'
     * The default is set to 'solid'
     */
    backgroundDesign: 'solid' | 'translucent' | 'transparent';
    /**
     * The layout of the component
     * Options include: 'OneColumnStartFullScreen' | 'OneColumnMidFullScreen' |
     * 'OneColumnEndFullScreen' | 'TwoColumnsStartExpanded' | 'TwoColumnsMidExpanded' |
     * 'TwoColumnsEndExpanded' | 'ThreeColumnsMidExpanded' | 'ThreeColumnsEndExpanded' |
     * 'ThreeColumnsStartMinimized' | 'ThreeColumnsEndMinimized'
     */
    layout: FlexibleColumnLayout;
    /**
     * Mapping of the layout name and the column layout in %
     */
    layoutDefinitions: FlexibleColumnLayoutDefinition;
    /**
     * The event emitted on layout value change.
     */
    layoutChange: EventEmitter<FlexibleColumnLayout>;
    /**
     * User defined break point for SM screens
     * Default (Fiori 3) value is 960
     */
    smBreakPoint: number;
    /**
     * User-defined break point for LG screens
     * the default (Fiori 3) value is 1280
     */
    lgBreakPoint: number;
    /**
     * User-defined onResize function
     */
    customOnResizeFunction: () => void;
    /** aria-label for separator */
    separatorAriaLabel: string;
    /** title for expanded button */
    expandTitle: string;
    /** title for collapsed button */
    collapseTitle: string;
    /** title for expanded state of the button between start and mid column */
    expandTitleStartBtn: string;
    /** title for collapsed state of the button between start and mid column */
    collapseTitleStartBtn: string;
    /** title for expanded state of the button between mid and end column */
    expandTitleEndBtn: string;
    /** title for collapsed state of the button between mid and end column */
    collapseTitleEndBtn: string;
    /**
     * @hidden
     * left column separator value (between start and middle columns)
     * that specifies the direction of the arrow and
     * if the separator is visible
     * Options include: 'left', 'right' and null
     */
    _leftColumnSeparator: ColumnSeparatorValue;
    /**
     * @hidden
     * right column separator value (between middle and end columns)
     * that specifies the direction of the arrow and
     * if the separator is visible
     * Options include: 'left', 'right' and null
     */
    _rightColumnSeparator: ColumnSeparatorValue;
    /**
     * @hidden
     * the column layout representing the distribution of the width
     * between the first (start), the middle and the last(end) column
     */
    _columnLayout: {
        start: number;
        mid: number;
        end: number;
    };
    /**
     * @hidden
     * allows to keep track of the previos layout
     * so we can go back to it on window resize
     */
    private _previousLayout;
    /** @hidden */
    private _screenSize;
    /** @hidden */
    private _subscriptions;
    /**
     * @hidden
     * set to 'true' if the layout is changed to fullscreen on window resize
     * this will allow the layout to switch to previous mode on SM->MD transition
     * if a layout is set by the user to fullscreen, it should persist on window resize
     */
    private _responsiveFullscreenLayout;
    /**
     * @hidden
     * function that handles the click events on the left separator
     * and updates the layout
     */
    _handleLeftColumnSeparatorClick(): void;
    /**
     * @hidden
     * function that handles the click events on the right separator
     * and updates the layout
     */
    _handleRightColumnSeparatorClick(): void;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    ngOnChanges(changes: SimpleChanges): void;
    /** @hidden */
    ngOnDestroy(): void;
    /**
     * @hidden
     * function to determine the screen size in 'sm' | 'md' | 'lg' | 'xl'
     * format depending on the window size in px
     */
    private _getScreenSize;
    /**
     * @hidden
     * handles the change of the layouts on reaching a break point
     */
    private _responsiveLayoutChangeHandler;
    /**
     * @hidden
     * Listen on window resize and update the layout
     * call user defined custom function if provided
     */
    private _listenOnWindowResize;
    /**
     * @hidden
     * determines if the left separator should be visible
     * and the value that will specify the direction of the arrow
     */
    private _getLeftColumnSeparatorValue;
    /**
     * @hidden
     * determines if the right separator should be visible
     * and the value that will specify the direction of the arrow
     */
    private _getRightColumnSeparatorValue;
    /**
     * @hidden
     * updates the column layout based on the layout name
     * makes a call to determine the new value of the left separator
     * makes a call to determine the new value of the right separator
     */
    private _updateColumnLayoutParameters;
    /**
     * @hidden
     * updates the layout
     * emits an event
     * makes a call to the helper function that will update the column layout and the separators
     */
    private _updateCurrentLayout;
    static ɵfac: i0.ɵɵFactoryDeclaration<FlexibleColumnLayoutComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FlexibleColumnLayoutComponent, "fd-flexible-column-layout", never, { "backgroundDesign": { "alias": "backgroundDesign"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "layoutDefinitions": { "alias": "layoutDefinitions"; "required": false; }; "smBreakPoint": { "alias": "smBreakPoint"; "required": false; }; "lgBreakPoint": { "alias": "lgBreakPoint"; "required": false; }; "customOnResizeFunction": { "alias": "customOnResizeFunction"; "required": false; }; "separatorAriaLabel": { "alias": "separatorAriaLabel"; "required": false; }; "expandTitle": { "alias": "expandTitle"; "required": false; }; "collapseTitle": { "alias": "collapseTitle"; "required": false; }; "expandTitleStartBtn": { "alias": "expandTitleStartBtn"; "required": false; }; "collapseTitleStartBtn": { "alias": "collapseTitleStartBtn"; "required": false; }; "expandTitleEndBtn": { "alias": "expandTitleEndBtn"; "required": false; }; "collapseTitleEndBtn": { "alias": "collapseTitleEndBtn"; "required": false; }; }, { "layoutChange": "layoutChange"; }, ["startColumn", "midColumn", "endColumn"], never, true, never>;
}
