## API Report File for "@fluentui/react-focus"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import { IRefObject } from '@uifabric/utilities';
import { Point } from '@uifabric/utilities';
import * as React from 'react';

// @public (undocumented)
export class FocusZone extends React.Component<IFocusZoneProps> implements IFocusZone {
    constructor(props: IFocusZoneProps);
    // (undocumented)
    componentDidMount(): void;
    // (undocumented)
    componentDidUpdate(): void;
    // (undocumented)
    componentWillUnmount(): void;
    // (undocumented)
    static defaultProps: IFocusZoneProps;
    focus(forceIntoFirstElement?: boolean): boolean;
    focusElement(element: HTMLElement): boolean;
    focusLast(): boolean;
    static getOuterZones(): number;
    // (undocumented)
    render(): React.ReactNode;
    setFocusAlignment(point: Point): void;
    }

// @public (undocumented)
export enum FocusZoneDirection {
    bidirectional = 2,
    domOrder = 3,
    horizontal = 1,
    vertical = 0
}

// @public (undocumented)
export const FocusZoneTabbableElements: {
    none: 0;
    all: 1;
    inputOnly: 2;
};

// @public (undocumented)
export type FocusZoneTabbableElements = typeof FocusZoneTabbableElements[keyof typeof FocusZoneTabbableElements];

// @public
export interface IFocusZone {
    focus(forceIntoFirstElement?: boolean): boolean;
    focusElement(childElement?: HTMLElement): boolean;
    focusLast(): boolean;
    setFocusAlignment(point: Point): void;
}

// @public
export interface IFocusZoneProps extends React.HTMLAttributes<HTMLElement | FocusZone> {
    allowFocusRoot?: boolean;
    // @deprecated
    allowTabKey?: boolean;
    // @deprecated
    ariaDescribedBy?: string;
    // @deprecated
    ariaLabelledBy?: string;
    as?: React.ElementType;
    checkForNoWrap?: boolean;
    className?: string;
    componentRef?: IRefObject<IFocusZone>;
    // @deprecated
    defaultActiveElement?: string;
    defaultTabbableElement?: string | ((root: HTMLElement) => HTMLElement);
    direction?: FocusZoneDirection;
    disabled?: boolean;
    // @deprecated
    doNotAllowFocusEventToPropagate?: boolean;
    // @deprecated
    elementType?: any;
    handleTabKey?: FocusZoneTabbableElements;
    isCircularNavigation?: boolean;
    // @deprecated
    isInnerZoneKeystroke?: (ev: React.KeyboardEvent<HTMLElement>) => boolean;
    onActiveElementChanged?: (element?: HTMLElement, ev?: React.FocusEvent<HTMLElement>) => void;
    // @deprecated
    onBeforeFocus?: (childElement?: HTMLElement) => boolean;
    onFocus?: (event: React.FocusEvent<HTMLElement | FocusZone>) => void;
    // @deprecated
    onFocusNotification?: () => void;
    pagingSupportDisabled?: boolean;
    preventDefaultWhenHandled?: boolean;
    preventFocusRestoration?: boolean;
    // @deprecated
    rootProps?: React.HTMLAttributes<HTMLDivElement>;
    shouldEnterInnerZone?: (ev: React.KeyboardEvent<HTMLElement>) => boolean;
    shouldFocusInnerElementWhenReceivedFocus?: boolean;
    shouldFocusOnMount?: boolean;
    shouldInputLoseFocusOnArrowKey?: (inputElement: HTMLInputElement) => boolean;
    shouldRaiseClicks?: boolean;
    shouldReceiveFocus?: (childElement?: HTMLElement) => boolean;
    shouldResetActiveElementWhenTabFromZone?: boolean;
    stopFocusPropagation?: boolean;
}


// (No @packageDocumentation comment for this package)

```
