import React, { MouseEventHandler, RefObject } from 'react';
import './PageLayout.css';
export type headerProps = {
    backNavigation?: Function;
    Breadcrumb?: React.ReactNode;
    component?: React.ReactNode;
    title?: string;
    headerLogoOnClick?: MouseEventHandler;
};
export type mainContentProps = {
    component?: React.ReactNode;
    livePreview?: React.ReactNode;
};
export type sidebarProps = {
    component?: React.ReactNode;
};
export type topNavBarProps = {
    component?: React.ReactNode;
};
export type stickyFooterProps = {
    component?: React.ReactNode;
};
export type layoutProps = {
    footer?: stickyFooterProps;
    content?: mainContentProps | emptyPageContentProps;
    header?: headerProps;
    headerType?: string;
    leftSidebar?: sidebarProps;
    rightSidebar?: sidebarProps;
    layoutBackgroundColor?: boolean;
    leftFooter?: React.ReactNode;
    rightFooter?: React.ReactNode;
    noSideNav?: boolean;
    type: string;
    className?: string;
    mode?: 'compact' | 'fullscreen';
    topNavBar?: topNavBarProps;
    topNavMode?: boolean;
    version?: 'v2';
    hasBackground?: boolean;
    testId?: string;
    resizeable?: boolean;
    resizableLeftMaxWidth?: number;
    resizableLeftMinWidth?: number;
    initialWidth?: number;
    setCurrentWidth?: Function;
};
export type contentProps = {
    content: mainContentProps;
    type: string;
    toggle?: Function;
    toggleStat?: boolean;
    headerType?: string;
    mode?: 'compact' | 'fullscreen';
    layoutBackgroundColor?: boolean;
    onKeyDown?: any;
    version?: string;
    resizeable?: boolean;
    resizableLeftMaxWidth?: number;
    resizableLeftMinWidth?: number;
    layoutHeaderRef?: RefObject<HTMLInputElement>;
    pageLayoutRef?: RefObject<HTMLInputElement>;
    leftSidebarRef?: RefObject<HTMLInputElement>;
    setCurrentWidth?: Function;
};
export type layoutHeaderProps = {
    header: headerProps;
    toggle?: Function;
    toggleStat?: boolean;
    type: string;
    headerType?: string;
    mode?: 'compact' | 'fullscreen';
    layoutBackgroundColor?: boolean;
    onKeyDown?: any;
    testId?: string;
    version?: string;
};
export type leftSidebarProps = {
    leftSidebar: sidebarProps;
};
export type rightSidebarProps = {
    rightSidebar: sidebarProps;
};
export type footerProps = {
    footer?: stickyFooterProps;
    onKeyDown?: any;
};
export type rightFooterProps = {
    rightFooter?: React.ReactNode;
    onKeyDown?: any;
};
export type leftFooterProps = {
    leftFooter?: React.ReactNode;
    onKeyDown?: any;
};
export type secondaryLayoutProps = {
    content: mainContentProps;
    footer?: stickyFooterProps;
    header: headerProps;
    leftSidebar?: sidebarProps;
    rightSidebar?: sidebarProps;
    className?: string;
    mode?: 'compact' | 'fullscreen';
    layoutBackgroundColor?: boolean;
    leftFooter?: React.ReactNode;
    rightFooter?: React.ReactNode;
    topNavBar?: topNavBarProps;
    version?: 'v2';
    testId?: string;
};
export type primaryLayoutProps = {
    content: mainContentProps;
    header: headerProps;
    leftSidebar?: sidebarProps;
    type?: string;
    headerType?: string;
    className?: string;
    hasBackground?: boolean;
    noSideNav?: boolean;
    testId?: string;
    version?: string;
    resizeable?: boolean;
    resizableLeftMaxWidth?: number;
    resizableLeftMinWidth?: number;
    initialWidth?: number;
    setCurrentWidth?: Function;
};
export type emptyPageContentProps = {
    component?: React.ReactNode;
    alignContent?: 'center';
    backgroundColor?: 'primary' | 'secondary';
};
export type emptyPageProps = {
    content: emptyPageContentProps;
    header?: headerProps;
    testId?: string;
};
declare const PageLayout: {
    (props: layoutProps): React.JSX.Element;
    defaultProps: {
        testId: string;
        hasBackground: boolean;
    };
};
export default PageLayout;
