import { ClientConnection } from '@sourcegraph/extensions-client-common/lib/messaging';
import React from 'react';
import { RouteComponentProps } from 'react-router';
import * as GQL from './backend/graphqlschema';
import { ExtensionsDocumentsProps, ExtensionsEnvironmentProps } from './extensions/environment/ExtensionsEnvironment';
import { ExtensionAreaRoute } from './extensions/extension/ExtensionArea';
import { ExtensionAreaHeaderNavItem } from './extensions/extension/ExtensionAreaHeader';
import { ExtensionsAreaRoute } from './extensions/ExtensionsArea';
import { ExtensionsAreaHeaderActionButton } from './extensions/ExtensionsAreaHeader';
import { ConfigurationCascadeProps, ExtensionsControllerProps, ExtensionsProps } from './extensions/ExtensionsClientCommonContext';
import { RepoHeaderActionButton } from './repo/RepoHeader';
import { RepoRevContainerRoute } from './repo/RepoRevContainer';
import { SiteAdminAreaRoute } from './site-admin/SiteAdminArea';
import { SiteAdminSideBarGroups } from './site-admin/SiteAdminSidebar';
import { UserAccountAreaRoute } from './user/account/UserAccountArea';
import { UserAccountSidebarItems } from './user/account/UserAccountSidebar';
import { UserAreaRoute } from './user/area/UserArea';
import { UserAreaHeaderNavItem } from './user/area/UserAreaHeader';
export interface LayoutProps extends RouteComponentProps<any>, ConfigurationCascadeProps, ExtensionsProps, ExtensionsEnvironmentProps, ExtensionsControllerProps, ExtensionsDocumentsProps {
    extensionAreaRoutes: ReadonlyArray<ExtensionAreaRoute>;
    extensionAreaHeaderNavItems: ReadonlyArray<ExtensionAreaHeaderNavItem>;
    extensionsAreaRoutes: ReadonlyArray<ExtensionsAreaRoute>;
    extensionsAreaHeaderActionButtons: ReadonlyArray<ExtensionsAreaHeaderActionButton>;
    siteAdminAreaRoutes: ReadonlyArray<SiteAdminAreaRoute>;
    siteAdminSideBarGroups: SiteAdminSideBarGroups;
    siteAdminOverviewComponents: ReadonlyArray<React.ComponentType>;
    userAreaHeaderNavItems: ReadonlyArray<UserAreaHeaderNavItem>;
    userAreaRoutes: ReadonlyArray<UserAreaRoute>;
    userAccountSideBarItems: UserAccountSidebarItems;
    userAccountAreaRoutes: ReadonlyArray<UserAccountAreaRoute>;
    repoRevContainerRoutes: ReadonlyArray<RepoRevContainerRoute>;
    repoHeaderActionButtons: ReadonlyArray<RepoHeaderActionButton>;
    user: GQL.IUser | null;
    /**
     * The subject GraphQL node ID of the viewer, which is used to look up the viewer's configuration settings.
     * This is either the site's GraphQL node ID (for anonymous users) or the authenticated user's GraphQL node ID.
     */
    viewerSubject: Pick<GQL.IConfigurationSubject, 'id' | 'viewerCanAdminister'>;
    clientConnection: Promise<ClientConnection>;
    isLightTheme: boolean;
    onThemeChange: () => void;
    onMainPage: (mainPage: boolean) => void;
    isMainPage: boolean;
    navbarSearchQuery: string;
    onNavbarQueryChange: (query: string) => void;
    showHelpPopover: boolean;
    onHelpPopoverToggle: (visible?: boolean) => void;
    children?: never;
}
export declare const Layout: React.SFC<LayoutProps>;
//# sourceMappingURL=Layout.d.ts.map