import type React from "react";

export interface TopProps {
  className?: string;
  size?: "320-429" | "430-639" | "640-1023" | "1024-1440" | "1440+";
  loggedIn?: boolean;
  folderTop?: boolean;
  profile?: boolean;
  logIn?: boolean;
}

/** Breakpoint slot passed from {@link Top.view} into nav render helpers. */
export type NavSize =
  | "xsmall"
  | "homeMd"
  | "large"
  | "homeXlarge"
  | "xlarge";

export interface TopViewProps {
  folderTop: boolean;
  loggedIn: boolean;
  profile: boolean;
  logIn: boolean;
  schemaData: {
    "@context": string;
    "@type": string;
    name: string;
    url: string;
    description?: string;
    potentialAction: {
      "@type": string;
      target: string;
      "query-input": string;
    };
  };
  logoSize: "topNavFolderTop" | "topNavHeader";
  renderNavigationItems: (_size: NavSize) => React.ReactNode;
  renderLoginButton: (_size: NavSize) => React.ReactNode;
  renderCreateRuleButton: (
    _buttonSize: "xsmall" | "small" | "medium" | "large" | "xlarge",
    _containerSize: "small" | "medium" | "large" | "xlarge",
    _avatarSize: "small" | "medium" | "large" | "xlarge",
  ) => React.ReactNode;
}
