/**
 * Copyright (c) Adaptavist, Inc.
 */
import { GenericProps } from '@/src/utilities';
import { HTMLAttributes } from 'react';
export interface ISidebar extends GenericProps, HTMLAttributes<HTMLDivElement> {
    /**
     * Prop to control the width of the Sidebar
     */
    width?: number;
    /**
     * Prop to control the height of the Sidebar
     */
    height?: string;
    /**
     * Sidebar is hidden automatically on smaller devices
     *
     * Use this to show and hide when needed
     */
    showCollapsedMenu?: boolean;
    /**
     * Prop to control the function to run on close of the sidebar
     */
    onClose?: () => void;
    /**
     * Prop to control displaying an icon at the top of the sidebar
     */
    icon?: React.ReactNode;
}
export interface ISidebarContent extends GenericProps {
    contents?: {
        /**
         * Prop to add a subtitle to a content section of the sidebar
         */
        subTitle?: string;
        /**
         * Prop to control the contents of a section of the sidebar
         */
        contents: ISidebarNavContent[];
    };
    position?: 'top';
}
export interface ISidebarNavContent {
    /**
     * Control the title used for a sidebar item
     */
    title: string;
    /**
     * Control the icon displayed for a sidebar item
     */
    icon?: React.ReactNode;
    /**
     * If no `ariaLabel` is provided, the `title` is used
     */
    ariaLabel?: string;
    /**
     * Control if a sidebar item is active or not
     */
    active?: boolean;
    /**
     * Control if a sidebar item is disabled or not
     */
    disabled?: boolean;
    /**
     * Prop to control the function to run on click of a sidebar item
     */
    onClick: () => void;
}
export declare type ISidebarItem = Pick<ISidebarNavContent, 'active' | 'disabled'> & GenericProps;
