declare module "*";

interface LayoutProps {
  children: React.ReactNode;
  UserMenu?: React.ReactNode;
}

/**
 * Default Layout with Header (Helmet & SEO) and Footer
 * @param {LayoutProps} props - Page content
 * @returns {JSX.Element} The complete page
 */
export function Layout(props: LayoutProps): JSX.Element;

interface ContentProps {
  children: React.ReactNode;
  className?: string;
}

/**
 * Centered section for page content
 * @param {ContentProps} props - Section content
 * @returns {JSX.Element} The complete section
 */
export function Content(props: ContentProps): JSX.Element;

interface ButtonProps {
  children?: React.ReactNode;
  title?: string;
  to?: string;
  className?: string;
}
export function Button(props: ButtonProps): JSX.Element;

interface CardProps {
  title?: string;
  content?: string;
  image?: string;
  to?: string;
  anime?: boolean;
  layout?: "top" | "left";
  className?: string;
}
export function Card(props: CardProps): JSX.Element;

interface BadgeProps {
  children?: React.ReactNode;
  title?: string;
  className?: string;
}
export function Badge(props: BadgeProps): JSX.Element;

interface TocProps {
  children?: React.ReactNode;
  className?: string;
}
export function Toc(props: TocProps): JSX.Element;

interface LinkProps {
  children?: React.ReactNode;
  to: string;
  activeClassName?: string;
  partiallyActive?: string;
}
export function Link(props: LinkProps): JSX.Element;

interface SearchProps {}
export function Search(props: SearchProps): JSX.Element;

interface IMenu {}
export function Menu(props: IMenu): JSX.Element;

interface Ilogo {
  to?: string;
  className?: string;
  src?: string;
  title: string;
  image: any
}
export function Logo(props:Ilogo): JSX.Element;

interface Service {
  title: string;
  subtitle: string;
  icon: string;
}
interface Action {
  title: string;
  to: string;
}
interface HeroProps {
  title?: string;
  subtitle?: string;
  description?: string;
  action: Action;
  services?: Array<Service>;
}

/**
 * Hero section with background image and buttons action
 * @param {HeroProps} props - Section content
 * @returns {JSX.Element} The complete section
 */
export function Hero(props: HeroProps): JSX.Element;

interface MapProps {
  idMap: number;
}
export function Map(props: MapProps): JSX.Element;

declare module "@onegeo/gatsby-theme-onegeo";