/* eslint-disable */
/* tslint:disable */
/**
 * This is an autogenerated file created by the Stencil compiler.
 * It contains typing information for all components that exist in this project.
 */
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
import { LocalJSX as JSX, VNode } from "./stencil-public-runtime";
import { ILedgerConnectModalData } from "./components/ledger-connect-modal/ledger-connect-modal.types";
import { IEventBus } from "./utils/EventBus";
import { IPendingTransactionsModalData } from "./components/pending-transactions-modal/pending-transactions-modal.types";
import { ISignTransactionsModalData } from "./components/sign-transactions-modal/sign-transactions-modal.types";
import { IToastDataState, ITransaction, ITransactionProgressState, ITransactionToast } from "./components/transaction-toast/transaction-toast.type";
import { IWalletConnectModalData } from "./components/wallet-connect-modal/wallet-connect-modal.types";
export { LocalJSX as JSX, VNode } from "./stencil-public-runtime";
export { ILedgerConnectModalData } from "./components/ledger-connect-modal/ledger-connect-modal.types";
export { IEventBus } from "./utils/EventBus";
export { IPendingTransactionsModalData } from "./components/pending-transactions-modal/pending-transactions-modal.types";
export { ISignTransactionsModalData } from "./components/sign-transactions-modal/sign-transactions-modal.types";
export { IToastDataState, ITransaction, ITransactionProgressState, ITransactionToast } from "./components/transaction-toast/transaction-toast.type";
export { IWalletConnectModalData } from "./components/wallet-connect-modal/wallet-connect-modal.types";
export namespace Components {
    interface BalanceComponent {
        "amount": string;
        "header"?: string;
        "ticker": string;
        "usdValue"?: string;
    }
    interface FormatAmount {
        "class"?: string;
        "decimals"?: number;
        "digits"?: number;
        "egldLabel"?: string;
        "showLabel"?: boolean;
        "showLastNonZeroDecimal"?: boolean;
        "token"?: string;
        "value": string;
    }
    interface FungibleComponent {
    }
    interface GenericModal {
        "body": VNode;
        "modalSubtitle"?: string | VNode;
        "modalTitle": string | VNode;
        "onClose": () => void;
    }
    interface GenericSpinner {
    }
    interface LedgerConnectModal {
        "data": ILedgerConnectModalData;
        "getEventBus": () => Promise<IEventBus>;
    }
    interface MyComponent {
        /**
          * The first name
         */
        "first": string;
        /**
          * The last name
         */
        "last": string;
        /**
          * The middle name
         */
        "middle": string;
    }
    interface PendingTransactionsModal {
        "data": IPendingTransactionsModalData;
        "getEventBus": () => Promise<IEventBus>;
    }
    interface SignTransactionComponent {
        "header": VNode;
    }
    interface SignTransactionsModal {
        "data": ISignTransactionsModalData;
        "getEventBus": () => Promise<IEventBus>;
    }
    interface TokenComponent {
    }
    interface TransactionToast {
        "processedTransactionsStatus": string | JSX.Element;
        "toastDataState": IToastDataState;
        "toastId": string;
        "transactionProgressState"?: ITransactionProgressState;
        "transactions": ITransaction[];
        "wrapperClass": string;
    }
    interface TransactionToastContent {
        "processedTransactionsStatus"?: string | JSX.Element;
        "toastDataState": IToastDataState;
        "transactions": ITransaction[];
    }
    interface TransactionToastDetails {
        "processedTransactionsStatus"?: JSX.Element | string;
        "transactionClass": string;
        "transactions"?: ITransaction[];
    }
    interface TransactionToastDetailsBody {
        "hash": string;
        "status"?: string;
        "transactionClass"?: string;
    }
    interface TransactionToastList {
        "data": ITransactionToast[];
        "getEventBus": () => Promise<IEventBus>;
    }
    interface TransactionToastProgress {
        "currentRemaining"?: number;
        "progressClass": string;
    }
    interface TransactionToastWrapper {
        "wrapperClass": string;
        "wrapperId"?: string;
    }
    interface WalletConnectModal {
        "data": IWalletConnectModalData;
        "getEventBus": () => Promise<IEventBus>;
    }
}
export interface TransactionToastCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLTransactionToastElement;
}
export interface TransactionToastContentCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLTransactionToastContentElement;
}
declare global {
    interface HTMLBalanceComponentElement extends Components.BalanceComponent, HTMLStencilElement {
    }
    var HTMLBalanceComponentElement: {
        prototype: HTMLBalanceComponentElement;
        new (): HTMLBalanceComponentElement;
    };
    interface HTMLFormatAmountElement extends Components.FormatAmount, HTMLStencilElement {
    }
    var HTMLFormatAmountElement: {
        prototype: HTMLFormatAmountElement;
        new (): HTMLFormatAmountElement;
    };
    interface HTMLFungibleComponentElement extends Components.FungibleComponent, HTMLStencilElement {
    }
    var HTMLFungibleComponentElement: {
        prototype: HTMLFungibleComponentElement;
        new (): HTMLFungibleComponentElement;
    };
    interface HTMLGenericModalElement extends Components.GenericModal, HTMLStencilElement {
    }
    var HTMLGenericModalElement: {
        prototype: HTMLGenericModalElement;
        new (): HTMLGenericModalElement;
    };
    interface HTMLGenericSpinnerElement extends Components.GenericSpinner, HTMLStencilElement {
    }
    var HTMLGenericSpinnerElement: {
        prototype: HTMLGenericSpinnerElement;
        new (): HTMLGenericSpinnerElement;
    };
    interface HTMLLedgerConnectModalElement extends Components.LedgerConnectModal, HTMLStencilElement {
    }
    var HTMLLedgerConnectModalElement: {
        prototype: HTMLLedgerConnectModalElement;
        new (): HTMLLedgerConnectModalElement;
    };
    interface HTMLMyComponentElement extends Components.MyComponent, HTMLStencilElement {
    }
    var HTMLMyComponentElement: {
        prototype: HTMLMyComponentElement;
        new (): HTMLMyComponentElement;
    };
    interface HTMLPendingTransactionsModalElement extends Components.PendingTransactionsModal, HTMLStencilElement {
    }
    var HTMLPendingTransactionsModalElement: {
        prototype: HTMLPendingTransactionsModalElement;
        new (): HTMLPendingTransactionsModalElement;
    };
    interface HTMLSignTransactionComponentElement extends Components.SignTransactionComponent, HTMLStencilElement {
    }
    var HTMLSignTransactionComponentElement: {
        prototype: HTMLSignTransactionComponentElement;
        new (): HTMLSignTransactionComponentElement;
    };
    interface HTMLSignTransactionsModalElement extends Components.SignTransactionsModal, HTMLStencilElement {
    }
    var HTMLSignTransactionsModalElement: {
        prototype: HTMLSignTransactionsModalElement;
        new (): HTMLSignTransactionsModalElement;
    };
    interface HTMLTokenComponentElement extends Components.TokenComponent, HTMLStencilElement {
    }
    var HTMLTokenComponentElement: {
        prototype: HTMLTokenComponentElement;
        new (): HTMLTokenComponentElement;
    };
    interface HTMLTransactionToastElementEventMap {
        "handleDeleteToast": string;
    }
    interface HTMLTransactionToastElement extends Components.TransactionToast, HTMLStencilElement {
        addEventListener<K extends keyof HTMLTransactionToastElementEventMap>(type: K, listener: (this: HTMLTransactionToastElement, ev: TransactionToastCustomEvent<HTMLTransactionToastElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLTransactionToastElementEventMap>(type: K, listener: (this: HTMLTransactionToastElement, ev: TransactionToastCustomEvent<HTMLTransactionToastElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLTransactionToastElement: {
        prototype: HTMLTransactionToastElement;
        new (): HTMLTransactionToastElement;
    };
    interface HTMLTransactionToastContentElementEventMap {
        "deleteToast": void;
    }
    interface HTMLTransactionToastContentElement extends Components.TransactionToastContent, HTMLStencilElement {
        addEventListener<K extends keyof HTMLTransactionToastContentElementEventMap>(type: K, listener: (this: HTMLTransactionToastContentElement, ev: TransactionToastContentCustomEvent<HTMLTransactionToastContentElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLTransactionToastContentElementEventMap>(type: K, listener: (this: HTMLTransactionToastContentElement, ev: TransactionToastContentCustomEvent<HTMLTransactionToastContentElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLTransactionToastContentElement: {
        prototype: HTMLTransactionToastContentElement;
        new (): HTMLTransactionToastContentElement;
    };
    interface HTMLTransactionToastDetailsElement extends Components.TransactionToastDetails, HTMLStencilElement {
    }
    var HTMLTransactionToastDetailsElement: {
        prototype: HTMLTransactionToastDetailsElement;
        new (): HTMLTransactionToastDetailsElement;
    };
    interface HTMLTransactionToastDetailsBodyElement extends Components.TransactionToastDetailsBody, HTMLStencilElement {
    }
    var HTMLTransactionToastDetailsBodyElement: {
        prototype: HTMLTransactionToastDetailsBodyElement;
        new (): HTMLTransactionToastDetailsBodyElement;
    };
    interface HTMLTransactionToastListElement extends Components.TransactionToastList, HTMLStencilElement {
    }
    var HTMLTransactionToastListElement: {
        prototype: HTMLTransactionToastListElement;
        new (): HTMLTransactionToastListElement;
    };
    interface HTMLTransactionToastProgressElement extends Components.TransactionToastProgress, HTMLStencilElement {
    }
    var HTMLTransactionToastProgressElement: {
        prototype: HTMLTransactionToastProgressElement;
        new (): HTMLTransactionToastProgressElement;
    };
    interface HTMLTransactionToastWrapperElement extends Components.TransactionToastWrapper, HTMLStencilElement {
    }
    var HTMLTransactionToastWrapperElement: {
        prototype: HTMLTransactionToastWrapperElement;
        new (): HTMLTransactionToastWrapperElement;
    };
    interface HTMLWalletConnectModalElement extends Components.WalletConnectModal, HTMLStencilElement {
    }
    var HTMLWalletConnectModalElement: {
        prototype: HTMLWalletConnectModalElement;
        new (): HTMLWalletConnectModalElement;
    };
    interface HTMLElementTagNameMap {
        "balance-component": HTMLBalanceComponentElement;
        "format-amount": HTMLFormatAmountElement;
        "fungible-component": HTMLFungibleComponentElement;
        "generic-modal": HTMLGenericModalElement;
        "generic-spinner": HTMLGenericSpinnerElement;
        "ledger-connect-modal": HTMLLedgerConnectModalElement;
        "my-component": HTMLMyComponentElement;
        "pending-transactions-modal": HTMLPendingTransactionsModalElement;
        "sign-transaction-component": HTMLSignTransactionComponentElement;
        "sign-transactions-modal": HTMLSignTransactionsModalElement;
        "token-component": HTMLTokenComponentElement;
        "transaction-toast": HTMLTransactionToastElement;
        "transaction-toast-content": HTMLTransactionToastContentElement;
        "transaction-toast-details": HTMLTransactionToastDetailsElement;
        "transaction-toast-details-body": HTMLTransactionToastDetailsBodyElement;
        "transaction-toast-list": HTMLTransactionToastListElement;
        "transaction-toast-progress": HTMLTransactionToastProgressElement;
        "transaction-toast-wrapper": HTMLTransactionToastWrapperElement;
        "wallet-connect-modal": HTMLWalletConnectModalElement;
    }
}
declare namespace LocalJSX {
    interface BalanceComponent {
        "amount"?: string;
        "header"?: string;
        "ticker"?: string;
        "usdValue"?: string;
    }
    interface FormatAmount {
        "class"?: string;
        "decimals"?: number;
        "digits"?: number;
        "egldLabel"?: string;
        "showLabel"?: boolean;
        "showLastNonZeroDecimal"?: boolean;
        "token"?: string;
        "value"?: string;
    }
    interface FungibleComponent {
    }
    interface GenericModal {
        "body"?: VNode;
        "modalSubtitle"?: string | VNode;
        "modalTitle"?: string | VNode;
        "onClose"?: () => void;
    }
    interface GenericSpinner {
    }
    interface LedgerConnectModal {
        "data"?: ILedgerConnectModalData;
    }
    interface MyComponent {
        /**
          * The first name
         */
        "first"?: string;
        /**
          * The last name
         */
        "last"?: string;
        /**
          * The middle name
         */
        "middle"?: string;
    }
    interface PendingTransactionsModal {
        "data"?: IPendingTransactionsModalData;
    }
    interface SignTransactionComponent {
        "header"?: VNode;
    }
    interface SignTransactionsModal {
        "data"?: ISignTransactionsModalData;
    }
    interface TokenComponent {
    }
    interface TransactionToast {
        "onHandleDeleteToast"?: (event: TransactionToastCustomEvent<string>) => void;
        "processedTransactionsStatus"?: string | JSX.Element;
        "toastDataState"?: IToastDataState;
        "toastId"?: string;
        "transactionProgressState"?: ITransactionProgressState;
        "transactions"?: ITransaction[];
        "wrapperClass"?: string;
    }
    interface TransactionToastContent {
        "onDeleteToast"?: (event: TransactionToastContentCustomEvent<void>) => void;
        "processedTransactionsStatus"?: string | JSX.Element;
        "toastDataState"?: IToastDataState;
        "transactions"?: ITransaction[];
    }
    interface TransactionToastDetails {
        "processedTransactionsStatus"?: JSX.Element | string;
        "transactionClass"?: string;
        "transactions"?: ITransaction[];
    }
    interface TransactionToastDetailsBody {
        "hash"?: string;
        "status"?: string;
        "transactionClass"?: string;
    }
    interface TransactionToastList {
        "data"?: ITransactionToast[];
    }
    interface TransactionToastProgress {
        "currentRemaining"?: number;
        "progressClass"?: string;
    }
    interface TransactionToastWrapper {
        "wrapperClass"?: string;
        "wrapperId"?: string;
    }
    interface WalletConnectModal {
        "data"?: IWalletConnectModalData;
    }
    interface IntrinsicElements {
        "balance-component": BalanceComponent;
        "format-amount": FormatAmount;
        "fungible-component": FungibleComponent;
        "generic-modal": GenericModal;
        "generic-spinner": GenericSpinner;
        "ledger-connect-modal": LedgerConnectModal;
        "my-component": MyComponent;
        "pending-transactions-modal": PendingTransactionsModal;
        "sign-transaction-component": SignTransactionComponent;
        "sign-transactions-modal": SignTransactionsModal;
        "token-component": TokenComponent;
        "transaction-toast": TransactionToast;
        "transaction-toast-content": TransactionToastContent;
        "transaction-toast-details": TransactionToastDetails;
        "transaction-toast-details-body": TransactionToastDetailsBody;
        "transaction-toast-list": TransactionToastList;
        "transaction-toast-progress": TransactionToastProgress;
        "transaction-toast-wrapper": TransactionToastWrapper;
        "wallet-connect-modal": WalletConnectModal;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "balance-component": LocalJSX.BalanceComponent & JSXBase.HTMLAttributes<HTMLBalanceComponentElement>;
            "format-amount": LocalJSX.FormatAmount & JSXBase.HTMLAttributes<HTMLFormatAmountElement>;
            "fungible-component": LocalJSX.FungibleComponent & JSXBase.HTMLAttributes<HTMLFungibleComponentElement>;
            "generic-modal": LocalJSX.GenericModal & JSXBase.HTMLAttributes<HTMLGenericModalElement>;
            "generic-spinner": LocalJSX.GenericSpinner & JSXBase.HTMLAttributes<HTMLGenericSpinnerElement>;
            "ledger-connect-modal": LocalJSX.LedgerConnectModal & JSXBase.HTMLAttributes<HTMLLedgerConnectModalElement>;
            "my-component": LocalJSX.MyComponent & JSXBase.HTMLAttributes<HTMLMyComponentElement>;
            "pending-transactions-modal": LocalJSX.PendingTransactionsModal & JSXBase.HTMLAttributes<HTMLPendingTransactionsModalElement>;
            "sign-transaction-component": LocalJSX.SignTransactionComponent & JSXBase.HTMLAttributes<HTMLSignTransactionComponentElement>;
            "sign-transactions-modal": LocalJSX.SignTransactionsModal & JSXBase.HTMLAttributes<HTMLSignTransactionsModalElement>;
            "token-component": LocalJSX.TokenComponent & JSXBase.HTMLAttributes<HTMLTokenComponentElement>;
            "transaction-toast": LocalJSX.TransactionToast & JSXBase.HTMLAttributes<HTMLTransactionToastElement>;
            "transaction-toast-content": LocalJSX.TransactionToastContent & JSXBase.HTMLAttributes<HTMLTransactionToastContentElement>;
            "transaction-toast-details": LocalJSX.TransactionToastDetails & JSXBase.HTMLAttributes<HTMLTransactionToastDetailsElement>;
            "transaction-toast-details-body": LocalJSX.TransactionToastDetailsBody & JSXBase.HTMLAttributes<HTMLTransactionToastDetailsBodyElement>;
            "transaction-toast-list": LocalJSX.TransactionToastList & JSXBase.HTMLAttributes<HTMLTransactionToastListElement>;
            "transaction-toast-progress": LocalJSX.TransactionToastProgress & JSXBase.HTMLAttributes<HTMLTransactionToastProgressElement>;
            "transaction-toast-wrapper": LocalJSX.TransactionToastWrapper & JSXBase.HTMLAttributes<HTMLTransactionToastWrapperElement>;
            "wallet-connect-modal": LocalJSX.WalletConnectModal & JSXBase.HTMLAttributes<HTMLWalletConnectModalElement>;
        }
    }
}
