import * as React from "react";
import { IJSSManagerProps } from "@microsoft/fast-jss-manager-react";
import { IDevSiteDesignSystem } from "../design-system";
import SiteTitle from "./title";
import SiteTitleBrand from "./title-brand";
import SiteMenu from "./menu";
import SiteMenuItem from "./menu-item";
import SiteCategory, { Status } from "./category";
import SiteCategoryDocumentation from "./category-documentation";
import SiteCategoryIcon from "./category-icon";
import SiteCategoryItem from "./category-item";
import { Framework } from "./dev-tools";
import { ComponentViewTypes } from "./component-view";
import { Direction } from "@microsoft/fast-application-utilities";
export declare enum ComponentViewSlot {
    example = "canvas-example-view",
    detailExample = "canvas-detail-view-example",
    detailDocumentation = "canvas-detail-view-documentation"
}
export interface ISiteProps {
    formChildOptions: IFormChildOption[];
    onUpdateDirection?: (ltr: Direction) => void;
    onUpdateTheme?: (theme: string) => void;
    locales?: string[];
    themes?: ITheme[];
    activeTheme?: ITheme;
    frameworks?: Framework | Framework[];
    activeFramework?: Framework;
    collapsed?: boolean;
    componentBackgroundTransparent?: boolean;
    showComponentStatus?: boolean;
    showTransparencyToggle?: boolean;
}
export interface IFormChildOption {
    component: any;
    schema: any;
    name: string;
}
export interface IComponentRoute {
    route: string;
    schema: any;
    componentMapping: any;
    exampleView: JSX.Element[];
    detailView: JSX.Element[];
    status: Status;
}
export interface IComponentData {
    [T: string]: any[];
}
export interface ISiteState {
    currentPath: string;
    activeComponentIndex: number;
    componentName: string;
    componentData: IComponentData;
    componentStatus: Status;
    detailViewComponentData: IComponentData;
    tableOfContentsCollapsed: boolean;
    componentView: ComponentViewTypes;
    componentBackgroundTransparent: boolean;
    formView: boolean;
    devToolsView: boolean;
    locale: string;
    theme: ITheme;
}
export declare enum SiteSlot {
    category = "category",
    categoryIcon = "category-icon"
}
export interface ITheme {
    id: string;
    displayName: string;
    background?: string;
}
export interface ISiteManagedClasses {
    "@global": string;
    site_canvasContent: string;
    site_headerTitle: string;
    site_infoBarConfiguration: string;
    site_infoBarConfiguration_base: string;
    site_infoBarConfiguration_input: string;
    site_infoBarConfiguration_theme: string;
    site_paneForm: string;
    site_paneToc: string;
    site_paneTocRow: string;
    site_paneTocTitle: string;
    site_paneToggleButton: string;
    site_paneToggleButtonIcon: string;
    site_paneToggleButtonIconLayout: string;
    site_transparencyToggleButton: string;
    site_transparencyToggleButtonIcon: string;
    site_statusBar: string;
    site_statusComponentName: string;
    site_statusIndicator: string;
    site_statusReleased: string;
    site_statusAlpha: string;
    site_statusBeta: string;
}
declare const _default: React.ComponentClass<ISiteProps & IJSSManagerProps<ISiteManagedClasses, IDevSiteDesignSystem>, any>;
export default _default;
export { SiteTitle, SiteTitleBrand, SiteMenu, SiteMenuItem, SiteCategory, SiteCategoryDocumentation, SiteCategoryIcon, SiteCategoryItem };
