import { PageHeaderActionProps } from './PageHeaderAction/PageHeaderAction.model';
import { PageHeaderActionsGroupProps } from './PageHeaderActionsGroup/PageHeaderActionsGroup';

export interface PageHeaderProps {
  /** Title shown in page header */
  title?: string;
  /** Subtitle shown in page header */
  subtitle?: string;
  /** Array of actions to be rendered. (default: []) */
  actions?: PageHeaderActionItemProps[];
  /** CSS Class name for additional styles */
  className?: string;
  /** Update the tab title using the 'title' field. (default: true) */
  setTabTitle?: boolean;
}

// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface PageHeaderSpacerProps {}

export type PageHeaderActionItemProps =
  | (PageHeaderSpacerProps & { kind: 'spacer' })
  | (PageHeaderActionProps & { kind: 'action' })
  | (PageHeaderActionsGroupProps & { kind: 'group' });
