import * as React from 'react';
import { FlexProps } from 'rebass';
/**
 * A panel can be:
 * - icon
 * - icon & text
 * - icon & text
 * - icon & text+popover
 * - icon & text+popover & extra actions
 *
 * <icon> <text-with-dropdown> <extra-action>
 * <dropdown-component>
 *
 * Extra actions are components so the components can call inside hooks.
 */
export interface StatusBarPanelProps extends Omit<FlexProps, 'content' | 'popover'> {
    icon?: string;
    content?: React.ReactNode | React.FunctionComponent<React.PropsWithChildren<unknown>>;
    /**
     * Whether to trigger onAction when Wrapper is clicked
     */
    triggerActionOnWrapperClick?: boolean;
    /**
     * If specified this content will be rendered when text is clicked
     */
    popover?: React.ReactNode | React.FunctionComponent<React.PropsWithChildren<unknown>>;
    popoverMinWidth?: number;
    /**
     * Can render custom content
     */
    view?: React.FunctionComponent<React.PropsWithChildren<unknown>>;
    onAction?: () => void;
    extraActions?: React.FunctionComponent<React.PropsWithChildren<unknown>>[];
    tooltip?: string;
}
/**
 * Statusbar sub panel are similar to vs code:
 * - text
 * - action
 * - icon
 */
export declare const StatusBarPanel: React.FunctionComponent<StatusBarPanelProps>;
