/**
 * View.tsx
 *
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT license.
 *
 * Web-specific implementation of the cross-platform View abstraction.
 */
import * as React from 'react';
import { FocusArbitratorProvider } from '../common/utils/AutoFocusHelper';
import * as RX from '../common/Interfaces';
import { FocusManager } from './utils/FocusManager';
import PopupContainerView from './PopupContainerView';
import ViewBase from './ViewBase';
export interface ViewContext {
    isRxParentAText?: boolean;
    focusManager?: FocusManager;
    popupContainer?: PopupContainerView;
    focusArbitrator?: FocusArbitratorProvider;
}
export declare class View extends ViewBase<RX.Types.ViewProps, RX.Types.Stateless, RX.View> {
    static contextTypes: React.ValidationMap<any>;
    context: ViewContext;
    static childContextTypes: React.ValidationMap<any>;
    private _focusManager;
    private _limitFocusWithin;
    private _isFocusLimited;
    private _isFocusRestricted;
    private _focusArbitratorProvider;
    private _resizeDetectorAnimationFrame;
    private _resizeDetectorNodes;
    private _popupContainer;
    private _popupToken;
    constructor(props: RX.Types.ViewProps, context?: ViewContext);
    private _renderResizeDetectorIfNeeded;
    private _onResizeDetectorGrowRef;
    private _onResizeDetectorShrinkRef;
    private _resizeDetectorReset;
    private _resizeDetectorOnScroll;
    getChildContext(): ViewContext;
    protected _getContainer(): HTMLElement | null;
    private _isHidden;
    private _updateFocusArbitratorProvider;
    setFocusRestricted(restricted: boolean): void;
    setFocusLimited(limited: boolean): void;
    render(): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>;
    UNSAFE_componentWillReceiveProps(nextProps: RX.Types.ViewProps): void;
    enableFocusManager(): void;
    disableFocusManager(): void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    blur(): void;
    requestFocus(): void;
    focus(): void;
}
export default View;