import { Tag } from "@carbon/react";
import { Endpoints, Stage } from "../../api/endpoints.const";
import { C3NavigationAppBarProps, C3NavigationInfoSideBarProps, C3NavigationNotificationsSideBarProps, C3NavigationOrgSideBarProps, C3NavigationUserSideBarProps } from "./c3-navigation-sidebar/c3-navigation-sidebar.types";
import { C3ActionButtonsProps } from "./c3-navigation-actions/c3-action-buttons.types";
import { C3HelpCenterProps } from "../c3-help-center/c3-help-center";
import { CamundaClusterStage } from "../c3-cluster-tag/c3-cluster-tag.types";
import { CarbonIconType } from "@carbon/react/icons";
export interface C3NavigationAppProps {
    prefix?: string;
    name: string;
    ariaLabel: string;
    routeProps: any;
}
export interface C3NavigationElementProps {
    ariaLabel?: string;
    key: string;
    label: string;
    kind?: "ghost" | "danger--ghost";
    active?: boolean;
    isActive?: boolean;
    renderIcon?: any;
    routeProps?: any;
    href?: string;
    target?: "_blank" | "_self" | "_parent" | "_top";
    onClick?: () => void;
    subElements?: C3NavigationElementProps[];
    preceedingDivider?: boolean;
    overflowMenu?: React.ReactNode;
}
export interface C3NavigationNavBarProps {
    elements: Array<{
        label: string;
        key: string;
        routeProps: any;
        isCurrentPage: boolean;
    }>;
    tags?: Array<{
        label: string;
        key: string;
        color?: React.ComponentProps<typeof Tag>["type"];
        renderIcon?: CarbonIconType;
        tooltip?: {
            content: React.ReactNode;
            buttonLabel: string;
        };
    }>;
    licenseTag?: {
        show: boolean;
        isProductionLicense: boolean;
        isCommercial?: boolean;
        expiresAt?: number | string;
    };
    orgName?: string;
}
export interface C3NotificationsProps {
    stage?: Stage;
    endpoints?: Endpoints;
    activeOrganizationId: string;
    userToken: string;
    getNewUserToken: () => Promise<string>;
    enableLogs?: boolean;
}
type WithoutType<P> = Omit<P, "type">;
export interface C3NavigationProps {
    app: C3NavigationAppProps;
    appBar: WithoutType<C3NavigationAppBarProps>;
    orgSideBar?: WithoutType<C3NavigationOrgSideBarProps>;
    infoSideBar?: WithoutType<C3NavigationInfoSideBarProps>;
    infoButton?: {
        onClick: () => void;
    };
    helpCenter?: C3HelpCenterProps;
    actionButtons?: C3ActionButtonsProps;
    userSideBar?: WithoutType<C3NavigationUserSideBarProps>;
    notificationSideBar?: WithoutType<C3NavigationNotificationsSideBarProps>;
    navbar: C3NavigationNavBarProps;
    forwardRef?: React.ForwardRefExoticComponent<any>;
    clusterUuid?: string;
    options?: {
        conditionalTagRendering?: (stage: CamundaClusterStage) => boolean;
    };
}
export type LinkProps = {
    element?: React.ElementType;
    isSideNavExpanded?: boolean;
    children: React.ReactNode;
    className?: string;
    isActive?: boolean;
    large?: boolean;
    renderIcon?: (() => React.ReactNode) | object;
};
export {};
