import { ImageStyle, StyleProp, ViewStyle } from 'react-native';
import { Theme } from '@bluebase/core';
import { NavigationOptions } from '@bluebase/components';
import React from 'react';
export interface HeaderProps extends NavigationOptions {
    headerTitleContainerStyle?: StyleProp<ViewStyle>;
    headerRightContainerStyle?: StyleProp<ViewStyle>;
    headerLeftContainerStyle?: StyleProp<ViewStyle>;
    layoutPreset?: 'left' | 'center';
    backTitleVisible?: boolean;
    headerBackAllowFontScaling?: boolean;
    headerShown: boolean;
    styles?: Partial<HeaderStyles>;
}
export interface HeaderState {
    titleWidth?: number;
    initWidth?: number;
}
export interface HeaderStyles {
    root: StyleProp<ViewStyle>;
    wrapper: StyleProp<ViewStyle>;
    transparentContainer: StyleProp<ViewStyle>;
    header: StyleProp<ViewStyle>;
    item: StyleProp<ViewStyle>;
    iconMaskContainer: StyleProp<ViewStyle>;
    iconMaskFillerRect: StyleProp<ViewStyle>;
    iconMask: StyleProp<ImageStyle>;
    title: StyleProp<ViewStyle>;
    left: StyleProp<ViewStyle>;
    right: StyleProp<ViewStyle>;
    flexOne: StyleProp<ViewStyle>;
}
/**
 * 🎩 Header
 */
export declare class Header extends React.PureComponent<HeaderProps, HeaderState> {
    static get defaultProps(): {
        headerTitleAllowFontScaling: boolean;
        layoutPreset: string;
    };
    readonly state: HeaderState;
    static defaultStyles: (theme: Theme) => HeaderStyles;
    render(): JSX.Element | null;
    private _getHeaderTitleString;
    private _getBackButtonTitleString;
    private _getTruncatedBackButtonTitle;
    private _renderTitle;
    /**
     * Renders left area of the header
     */
    private _renderLeft;
    private _renderRight;
    private _renderBackground;
    private _renderSubView;
    private _renderHeader;
}
