import * as React from 'react';
import { RouteComponentProps } from 'react-router';
import * as GQL from '../../backend/graphqlschema';
import { RouteDescriptor } from '../../util/contributions';
import { UserAreaRouteContext } from '../area/UserArea';
import { UserAccountSidebarItems } from './UserAccountSidebar';
export interface UserAccountAreaRoute extends RouteDescriptor<UserAccountAreaRouteContext> {
}
export interface UserAccountAreaProps extends UserAreaRouteContext, RouteComponentProps<{}> {
    isLightTheme: boolean;
    sideBarItems: UserAccountSidebarItems;
    routes: ReadonlyArray<UserAccountAreaRoute>;
}
export interface UserAccountAreaRouteContext extends UserAccountAreaProps {
    user: GQL.IUser;
    externalAuthEnabled: boolean;
    newToken?: GQL.ICreateAccessTokenResult;
    onDidCreateAccessToken: (value?: GQL.ICreateAccessTokenResult) => void;
    onDidPresentNewToken: (value?: GQL.ICreateAccessTokenResult) => void;
}
interface UserAccountAreaState {
    externalAuthEnabled: boolean;
    /**
     * Holds the newly created access token (from UserAccountCreateAccessTokenPage), if any. After
     * it is displayed to the user, this subject's value is set back to undefined.
     */
    newlyCreatedAccessToken?: GQL.ICreateAccessTokenResult;
}
/**
 * Renders a layout of a sidebar and a content area to display user settings.
 */
export declare class UserAccountArea extends React.Component<UserAccountAreaProps, UserAccountAreaState> {
    state: UserAccountAreaState;
    private subscriptions;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element | null;
    private setNewToken;
}
export {};
//# sourceMappingURL=UserAccountArea.d.ts.map