'use client';

/**
 * This file was automatically generated by the Stencil React Output Target.
 * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
 */

/* eslint-disable */

import { type ProviderTypeEnum, type UnlockPanelCustomEvent } from "@multiversx/sdk-dapp-core-ui";
import { CopyButton as CopyButtonElement, defineCustomElement as defineCopyButton } from "@multiversx/sdk-dapp-core-ui/dist/components/copy-button.js";
import { ExplorerLink as ExplorerLinkElement, defineCustomElement as defineExplorerLink } from "@multiversx/sdk-dapp-core-ui/dist/components/explorer-link.js";
import { FaIcon as FaIconElement, defineCustomElement as defineFaIcon } from "@multiversx/sdk-dapp-core-ui/dist/components/fa-icon.js";
import { FormatAmount as FormatAmountElement, defineCustomElement as defineFormatAmount } from "@multiversx/sdk-dapp-core-ui/dist/components/format-amount.js";
import { GenericModal as GenericModalElement, defineCustomElement as defineGenericModal } from "@multiversx/sdk-dapp-core-ui/dist/components/generic-modal.js";
import { GenericSpinner as GenericSpinnerElement, defineCustomElement as defineGenericSpinner } from "@multiversx/sdk-dapp-core-ui/dist/components/generic-spinner.js";
import { NotificationsFeed as NotificationsFeedElement, defineCustomElement as defineNotificationsFeed } from "@multiversx/sdk-dapp-core-ui/dist/components/notifications-feed.js";
import { ProviderButton as ProviderButtonElement, defineCustomElement as defineProviderButton } from "@multiversx/sdk-dapp-core-ui/dist/components/provider-button.js";
import { SidePanel as SidePanelElement, defineCustomElement as defineSidePanel } from "@multiversx/sdk-dapp-core-ui/dist/components/side-panel.js";
import { TransactionAccountName as TransactionAccountNameElement, defineCustomElement as defineTransactionAccountName } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-account-name.js";
import { TransactionAccount as TransactionAccountElement, defineCustomElement as defineTransactionAccount } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-account.js";
import { TransactionAge as TransactionAgeElement, defineCustomElement as defineTransactionAge } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-age.js";
import { TransactionDirectionBadge as TransactionDirectionBadgeElement, defineCustomElement as defineTransactionDirectionBadge } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-direction-badge.js";
import { TransactionHash as TransactionHashElement, defineCustomElement as defineTransactionHash } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-hash.js";
import { TransactionIcon as TransactionIconElement, defineCustomElement as defineTransactionIcon } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-icon.js";
import { TransactionListItem as TransactionListItemElement, defineCustomElement as defineTransactionListItem } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-list-item.js";
import { TransactionMethod as TransactionMethodElement, defineCustomElement as defineTransactionMethod } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-method.js";
import { TransactionShards as TransactionShardsElement, defineCustomElement as defineTransactionShards } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-shards.js";
import { TransactionValue as TransactionValueElement, defineCustomElement as defineTransactionValue } from "@multiversx/sdk-dapp-core-ui/dist/components/transaction-value.js";
import { TransactionsTable as TransactionsTableElement, defineCustomElement as defineTransactionsTable } from "@multiversx/sdk-dapp-core-ui/dist/components/transactions-table.js";
import { TrimText as TrimTextElement, defineCustomElement as defineTrimText } from "@multiversx/sdk-dapp-core-ui/dist/components/trim-text.js";
import { UnlockButton as UnlockButtonElement, defineCustomElement as defineUnlockButton } from "@multiversx/sdk-dapp-core-ui/dist/components/unlock-button.js";
import { UnlockHeader as UnlockHeaderElement, defineCustomElement as defineUnlockHeader } from "@multiversx/sdk-dapp-core-ui/dist/components/unlock-header.js";
import { UnlockPanel as UnlockPanelElement, defineCustomElement as defineUnlockPanel } from "@multiversx/sdk-dapp-core-ui/dist/components/unlock-panel.js";
import { WalletConnectBody as WalletConnectBodyElement, defineCustomElement as defineWalletConnectBody } from "@multiversx/sdk-dapp-core-ui/dist/components/wallet-connect-body.js";
import type { EventName, StencilReactComponent } from '@stencil/react-output-target/runtime';
import { createComponent } from '@stencil/react-output-target/runtime';
import React from 'react';

type CopyButtonEvents = NonNullable<unknown>;

export const CopyButton: StencilReactComponent<CopyButtonElement, CopyButtonEvents> = /*@__PURE__*/ createComponent<CopyButtonElement, CopyButtonEvents>({
    tagName: 'copy-button',
    elementClass: CopyButtonElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as CopyButtonEvents,
    defineCustomElement: defineCopyButton
});

type ExplorerLinkEvents = NonNullable<unknown>;

export const ExplorerLink: StencilReactComponent<ExplorerLinkElement, ExplorerLinkEvents> = /*@__PURE__*/ createComponent<ExplorerLinkElement, ExplorerLinkEvents>({
    tagName: 'explorer-link',
    elementClass: ExplorerLinkElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as ExplorerLinkEvents,
    defineCustomElement: defineExplorerLink
});

type FaIconEvents = NonNullable<unknown>;

export const FaIcon: StencilReactComponent<FaIconElement, FaIconEvents> = /*@__PURE__*/ createComponent<FaIconElement, FaIconEvents>({
    tagName: 'fa-icon',
    elementClass: FaIconElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as FaIconEvents,
    defineCustomElement: defineFaIcon
});

type FormatAmountEvents = NonNullable<unknown>;

export const FormatAmount: StencilReactComponent<FormatAmountElement, FormatAmountEvents> = /*@__PURE__*/ createComponent<FormatAmountElement, FormatAmountEvents>({
    tagName: 'format-amount',
    elementClass: FormatAmountElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as FormatAmountEvents,
    defineCustomElement: defineFormatAmount
});

type GenericModalEvents = { onClose: EventName<CustomEvent<any>> };

export const GenericModal: StencilReactComponent<GenericModalElement, GenericModalEvents> = /*@__PURE__*/ createComponent<GenericModalElement, GenericModalEvents>({
    tagName: 'generic-modal',
    elementClass: GenericModalElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: { onClose: 'close' } as GenericModalEvents,
    defineCustomElement: defineGenericModal
});

type GenericSpinnerEvents = NonNullable<unknown>;

export const GenericSpinner: StencilReactComponent<GenericSpinnerElement, GenericSpinnerEvents> = /*@__PURE__*/ createComponent<GenericSpinnerElement, GenericSpinnerEvents>({
    tagName: 'generic-spinner',
    elementClass: GenericSpinnerElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as GenericSpinnerEvents,
    defineCustomElement: defineGenericSpinner
});

type NotificationsFeedEvents = NonNullable<unknown>;

export const NotificationsFeed: StencilReactComponent<NotificationsFeedElement, NotificationsFeedEvents> = /*@__PURE__*/ createComponent<NotificationsFeedElement, NotificationsFeedEvents>({
    tagName: 'notifications-feed',
    elementClass: NotificationsFeedElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as NotificationsFeedEvents,
    defineCustomElement: defineNotificationsFeed
});

type ProviderButtonEvents = NonNullable<unknown>;

export const ProviderButton: StencilReactComponent<ProviderButtonElement, ProviderButtonEvents> = /*@__PURE__*/ createComponent<ProviderButtonElement, ProviderButtonEvents>({
    tagName: 'provider-button',
    elementClass: ProviderButtonElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as ProviderButtonEvents,
    defineCustomElement: defineProviderButton
});

type SidePanelEvents = { onClose: EventName<CustomEvent<any>> };

export const SidePanel: StencilReactComponent<SidePanelElement, SidePanelEvents> = /*@__PURE__*/ createComponent<SidePanelElement, SidePanelEvents>({
    tagName: 'side-panel',
    elementClass: SidePanelElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: { onClose: 'close' } as SidePanelEvents,
    defineCustomElement: defineSidePanel
});

type TransactionAccountEvents = NonNullable<unknown>;

export const TransactionAccount: StencilReactComponent<TransactionAccountElement, TransactionAccountEvents> = /*@__PURE__*/ createComponent<TransactionAccountElement, TransactionAccountEvents>({
    tagName: 'transaction-account',
    elementClass: TransactionAccountElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionAccountEvents,
    defineCustomElement: defineTransactionAccount
});

type TransactionAccountNameEvents = NonNullable<unknown>;

export const TransactionAccountName: StencilReactComponent<TransactionAccountNameElement, TransactionAccountNameEvents> = /*@__PURE__*/ createComponent<TransactionAccountNameElement, TransactionAccountNameEvents>({
    tagName: 'transaction-account-name',
    elementClass: TransactionAccountNameElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionAccountNameEvents,
    defineCustomElement: defineTransactionAccountName
});

type TransactionAgeEvents = NonNullable<unknown>;

export const TransactionAge: StencilReactComponent<TransactionAgeElement, TransactionAgeEvents> = /*@__PURE__*/ createComponent<TransactionAgeElement, TransactionAgeEvents>({
    tagName: 'transaction-age',
    elementClass: TransactionAgeElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionAgeEvents,
    defineCustomElement: defineTransactionAge
});

type TransactionDirectionBadgeEvents = NonNullable<unknown>;

export const TransactionDirectionBadge: StencilReactComponent<TransactionDirectionBadgeElement, TransactionDirectionBadgeEvents> = /*@__PURE__*/ createComponent<TransactionDirectionBadgeElement, TransactionDirectionBadgeEvents>({
    tagName: 'transaction-direction-badge',
    elementClass: TransactionDirectionBadgeElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionDirectionBadgeEvents,
    defineCustomElement: defineTransactionDirectionBadge
});

type TransactionHashEvents = NonNullable<unknown>;

export const TransactionHash: StencilReactComponent<TransactionHashElement, TransactionHashEvents> = /*@__PURE__*/ createComponent<TransactionHashElement, TransactionHashEvents>({
    tagName: 'transaction-hash',
    elementClass: TransactionHashElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionHashEvents,
    defineCustomElement: defineTransactionHash
});

type TransactionIconEvents = NonNullable<unknown>;

export const TransactionIcon: StencilReactComponent<TransactionIconElement, TransactionIconEvents> = /*@__PURE__*/ createComponent<TransactionIconElement, TransactionIconEvents>({
    tagName: 'transaction-icon',
    elementClass: TransactionIconElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionIconEvents,
    defineCustomElement: defineTransactionIcon
});

type TransactionListItemEvents = NonNullable<unknown>;

export const TransactionListItem: StencilReactComponent<TransactionListItemElement, TransactionListItemEvents> = /*@__PURE__*/ createComponent<TransactionListItemElement, TransactionListItemEvents>({
    tagName: 'transaction-list-item',
    elementClass: TransactionListItemElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionListItemEvents,
    defineCustomElement: defineTransactionListItem
});

type TransactionMethodEvents = NonNullable<unknown>;

export const TransactionMethod: StencilReactComponent<TransactionMethodElement, TransactionMethodEvents> = /*@__PURE__*/ createComponent<TransactionMethodElement, TransactionMethodEvents>({
    tagName: 'transaction-method',
    elementClass: TransactionMethodElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionMethodEvents,
    defineCustomElement: defineTransactionMethod
});

type TransactionShardsEvents = NonNullable<unknown>;

export const TransactionShards: StencilReactComponent<TransactionShardsElement, TransactionShardsEvents> = /*@__PURE__*/ createComponent<TransactionShardsElement, TransactionShardsEvents>({
    tagName: 'transaction-shards',
    elementClass: TransactionShardsElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionShardsEvents,
    defineCustomElement: defineTransactionShards
});

type TransactionValueEvents = NonNullable<unknown>;

export const TransactionValue: StencilReactComponent<TransactionValueElement, TransactionValueEvents> = /*@__PURE__*/ createComponent<TransactionValueElement, TransactionValueEvents>({
    tagName: 'transaction-value',
    elementClass: TransactionValueElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionValueEvents,
    defineCustomElement: defineTransactionValue
});

type TransactionsTableEvents = NonNullable<unknown>;

export const TransactionsTable: StencilReactComponent<TransactionsTableElement, TransactionsTableEvents> = /*@__PURE__*/ createComponent<TransactionsTableElement, TransactionsTableEvents>({
    tagName: 'transactions-table',
    elementClass: TransactionsTableElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TransactionsTableEvents,
    defineCustomElement: defineTransactionsTable
});

type TrimTextEvents = NonNullable<unknown>;

export const TrimText: StencilReactComponent<TrimTextElement, TrimTextEvents> = /*@__PURE__*/ createComponent<TrimTextElement, TrimTextEvents>({
    tagName: 'trim-text',
    elementClass: TrimTextElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as TrimTextEvents,
    defineCustomElement: defineTrimText
});

type UnlockButtonEvents = NonNullable<unknown>;

export const UnlockButton: StencilReactComponent<UnlockButtonElement, UnlockButtonEvents> = /*@__PURE__*/ createComponent<UnlockButtonElement, UnlockButtonEvents>({
    tagName: 'unlock-button',
    elementClass: UnlockButtonElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as UnlockButtonEvents,
    defineCustomElement: defineUnlockButton
});

type UnlockHeaderEvents = {
    onBack: EventName<CustomEvent<void>>,
    onClose: EventName<CustomEvent<void>>
};

export const UnlockHeader: StencilReactComponent<UnlockHeaderElement, UnlockHeaderEvents> = /*@__PURE__*/ createComponent<UnlockHeaderElement, UnlockHeaderEvents>({
    tagName: 'unlock-header',
    elementClass: UnlockHeaderElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {
        onBack: 'back',
        onClose: 'close'
    } as UnlockHeaderEvents,
    defineCustomElement: defineUnlockHeader
});

type UnlockPanelEvents = {
    onClose: EventName<CustomEvent<any>>,
    onLogin: EventName<UnlockPanelCustomEvent<{ provider: ProviderTypeEnum; anchor?: HTMLElement }>>
};

export const UnlockPanel: StencilReactComponent<UnlockPanelElement, UnlockPanelEvents> = /*@__PURE__*/ createComponent<UnlockPanelElement, UnlockPanelEvents>({
    tagName: 'unlock-panel',
    elementClass: UnlockPanelElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {
        onClose: 'close',
        onLogin: 'login'
    } as UnlockPanelEvents,
    defineCustomElement: defineUnlockPanel
});

type WalletConnectBodyEvents = NonNullable<unknown>;

export const WalletConnectBody: StencilReactComponent<WalletConnectBodyElement, WalletConnectBodyEvents> = /*@__PURE__*/ createComponent<WalletConnectBodyElement, WalletConnectBodyEvents>({
    tagName: 'wallet-connect-body',
    elementClass: WalletConnectBodyElement,
    // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.
    react: React,
    events: {} as WalletConnectBodyEvents,
    defineCustomElement: defineWalletConnectBody
});
