/* 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 { TecnologiaTheme } from "./components/interfaces";
import { ButtonPosition } from "./components/bottom-bar/bottom-bar.model";
import { TecStatus } from "./models/status.model";
import { TecButtonColor, TecButtonIconMode, TecButtonMode, TecButtonSize } from "./components/button/button.model";
import { TecStringCase } from "./models/case.model";
import { CodeInputCustomEventValue, CodeInputEvent } from "./components/inputs/code-input/code-input.model";
import { TecSize } from "./models/size.model";
export namespace Components {
    interface TecBottomBar {
        "buttonPosition": ButtonPosition;
        "text": string;
        "theme": TecnologiaTheme;
        "useAnimation": boolean;
    }
    interface TecButton {
        /**
          * Optional ID to be attached on button
         */
        "buttonId": string;
        /**
          * Colors of button (like gradient)
         */
        "color": TecButtonColor;
        /**
          * Boolean to indicate if button is disabled
         */
        "disabled": boolean;
        /**
          * If `true` button use `width: 100%`
         */
        "fullWidth": boolean;
        /**
          * Icon class from FontAwesome 5 Free Allows to use: brands, regular, solid Example: 'far fa-paper-plane'
         */
        "icon": string;
        /**
          * Position of icon
         */
        "iconMode": TecButtonIconMode;
        /**
          * Text to show inside button
         */
        "label": string;
        /**
          * Add a loading indicator to button You need add a manual control to remove loading
         */
        "loading": boolean;
        /**
          * Mode of button (like square or rounded)
         */
        "mode": TecButtonMode;
        /**
          * If `true` button removes label
         */
        "onlyIcon": boolean;
        /**
          * Size of button
         */
        "size": TecButtonSize;
        /**
          * The status of button (color)
         */
        "status": TecStatus;
        "theme": TecnologiaTheme;
    }
    interface TecCodeInput {
        /**
          * Auto focus on first input
         */
        "autofocus"?: boolean;
        /**
          * Allow to parse all chars to UPPER or LOWER case
          * @default allow upper and lowercase values
         */
        "case": TecStringCase;
        "clear": () => Promise<void>;
        "disabled"?: boolean;
        "initialValue"?: string;
        /**
          * Inputs quantity
         */
        "length": number;
        "placeholder"?: string;
        "responsive": boolean;
        "theme": TecnologiaTheme;
        /**
          * Type of inputs
         */
        "type"?: 'text' | 'password';
        /**
          * Add margin between inputs
         */
        "useMargin": boolean;
    }
    interface TecModal {
        "blockBodyScroll": boolean;
        "closeOnEscape": boolean;
        "dismissOnBackdrop": boolean;
        "footerAlign": TecAlign;
        "fullWidth": boolean;
        "modalTitle": string;
        "opened": boolean;
        "responsive": boolean;
        "showCloseIcon": boolean;
        "size": TecSize;
        "theme": TecnologiaTheme;
    }
    interface TecProductHeader {
        /**
          * Use to make a bar fixed on top
          * @default true
         */
        "sticky": boolean;
        "theme": TecnologiaTheme;
        /**
          * Set `false` to remove `cursor: pointer` from title
          * @summary when `false` this property disable `titleClicked` event.
          * @default true
         */
        "titleCursorPointer": boolean;
        /**
          * The product name
         */
        "titleProduct": string;
    }
    interface TecStatusBadge {
        /**
          * Text to show inside badge
         */
        "badgeText": string;
        /**
          * The status of badge (color)
         */
        "status": TecStatus;
    }
}
declare global {
    interface HTMLTecBottomBarElement extends Components.TecBottomBar, HTMLStencilElement {
    }
    var HTMLTecBottomBarElement: {
        prototype: HTMLTecBottomBarElement;
        new (): HTMLTecBottomBarElement;
    };
    interface HTMLTecButtonElement extends Components.TecButton, HTMLStencilElement {
    }
    var HTMLTecButtonElement: {
        prototype: HTMLTecButtonElement;
        new (): HTMLTecButtonElement;
    };
    interface HTMLTecCodeInputElement extends Components.TecCodeInput, HTMLStencilElement {
    }
    var HTMLTecCodeInputElement: {
        prototype: HTMLTecCodeInputElement;
        new (): HTMLTecCodeInputElement;
    };
    interface HTMLTecModalElement extends Components.TecModal, HTMLStencilElement {
    }
    var HTMLTecModalElement: {
        prototype: HTMLTecModalElement;
        new (): HTMLTecModalElement;
    };
    interface HTMLTecProductHeaderElement extends Components.TecProductHeader, HTMLStencilElement {
    }
    var HTMLTecProductHeaderElement: {
        prototype: HTMLTecProductHeaderElement;
        new (): HTMLTecProductHeaderElement;
    };
    interface HTMLTecStatusBadgeElement extends Components.TecStatusBadge, HTMLStencilElement {
    }
    var HTMLTecStatusBadgeElement: {
        prototype: HTMLTecStatusBadgeElement;
        new (): HTMLTecStatusBadgeElement;
    };
    interface HTMLElementTagNameMap {
        "tec-bottom-bar": HTMLTecBottomBarElement;
        "tec-button": HTMLTecButtonElement;
        "tec-code-input": HTMLTecCodeInputElement;
        "tec-modal": HTMLTecModalElement;
        "tec-product-header": HTMLTecProductHeaderElement;
        "tec-status-badge": HTMLTecStatusBadgeElement;
    }
}
declare namespace LocalJSX {
    interface TecBottomBar {
        "buttonPosition"?: ButtonPosition;
        "text"?: string;
        "theme"?: TecnologiaTheme;
        "useAnimation"?: boolean;
    }
    interface TecButton {
        /**
          * Optional ID to be attached on button
         */
        "buttonId"?: string;
        /**
          * Colors of button (like gradient)
         */
        "color"?: TecButtonColor;
        /**
          * Boolean to indicate if button is disabled
         */
        "disabled"?: boolean;
        /**
          * If `true` button use `width: 100%`
         */
        "fullWidth"?: boolean;
        /**
          * Icon class from FontAwesome 5 Free Allows to use: brands, regular, solid Example: 'far fa-paper-plane'
         */
        "icon"?: string;
        /**
          * Position of icon
         */
        "iconMode"?: TecButtonIconMode;
        /**
          * Text to show inside button
         */
        "label": string;
        /**
          * Add a loading indicator to button You need add a manual control to remove loading
         */
        "loading"?: boolean;
        /**
          * Mode of button (like square or rounded)
         */
        "mode"?: TecButtonMode;
        /**
          * Emitted when button is clicked Captured by onClick listener. > Note: if button was disabled event can't be dispatch
         */
        "onClicked"?: (event: CustomEvent<UIEvent>) => void;
        /**
          * If `true` button removes label
         */
        "onlyIcon"?: boolean;
        /**
          * Size of button
         */
        "size"?: TecButtonSize;
        /**
          * The status of button (color)
         */
        "status"?: TecStatus;
        "theme"?: TecnologiaTheme;
    }
    interface TecCodeInput {
        /**
          * Auto focus on first input
         */
        "autofocus"?: boolean;
        /**
          * Allow to parse all chars to UPPER or LOWER case
          * @default allow upper and lowercase values
         */
        "case"?: TecStringCase;
        "disabled"?: boolean;
        "initialValue"?: string;
        /**
          * Inputs quantity
         */
        "length"?: number;
        /**
          * Emitted when the input was cleared
         */
        "onCleared"?: (event: CustomEvent<void>) => void;
        "onCodeBlur"?: (event: CustomEvent<void>) => void;
        /**
          * When `value` property changes
         */
        "onCodeChange"?: (event: CustomEvent<CodeInputEvent<string>>) => void;
        "onCodeFocus"?: (event: CustomEvent<void>) => void;
        "onCompleted"?: (event: CustomEvent<CodeInputEvent<string>>) => void;
        "onInputBlur"?: (event: CustomEvent<CodeInputEvent<CodeInputCustomEventValue>>) => void;
        "onInputChange"?: (event: CustomEvent<CodeInputEvent<string>>) => void;
        "onInputFocus"?: (event: CustomEvent<CodeInputEvent<CodeInputCustomEventValue>>) => void;
        "placeholder"?: string;
        "responsive"?: boolean;
        "theme"?: TecnologiaTheme;
        /**
          * Type of inputs
         */
        "type"?: 'text' | 'password';
        /**
          * Add margin between inputs
         */
        "useMargin"?: boolean;
    }
    interface TecModal {
        "blockBodyScroll"?: boolean;
        "closeOnEscape"?: boolean;
        "dismissOnBackdrop"?: boolean;
        "footerAlign"?: TecAlign;
        "fullWidth"?: boolean;
        "modalTitle"?: string;
        "onHidden"?: (event: CustomEvent<UIEvent>) => void;
        "opened"?: boolean;
        "responsive"?: boolean;
        "showCloseIcon"?: boolean;
        "size"?: TecSize;
        "theme"?: TecnologiaTheme;
    }
    interface TecProductHeader {
        /**
          * Emitted when the title was clicked
          * @returns void
         */
        "onTitle-clicked"?: (event: CustomEvent<void>) => void;
        /**
          * Use to make a bar fixed on top
          * @default true
         */
        "sticky"?: boolean;
        "theme"?: TecnologiaTheme;
        /**
          * Set `false` to remove `cursor: pointer` from title
          * @summary when `false` this property disable `titleClicked` event.
          * @default true
         */
        "titleCursorPointer"?: boolean;
        /**
          * The product name
         */
        "titleProduct"?: string;
    }
    interface TecStatusBadge {
        /**
          * Text to show inside badge
         */
        "badgeText"?: string;
        /**
          * The status of badge (color)
         */
        "status"?: TecStatus;
    }
    interface IntrinsicElements {
        "tec-bottom-bar": TecBottomBar;
        "tec-button": TecButton;
        "tec-code-input": TecCodeInput;
        "tec-modal": TecModal;
        "tec-product-header": TecProductHeader;
        "tec-status-badge": TecStatusBadge;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "tec-bottom-bar": LocalJSX.TecBottomBar & JSXBase.HTMLAttributes<HTMLTecBottomBarElement>;
            "tec-button": LocalJSX.TecButton & JSXBase.HTMLAttributes<HTMLTecButtonElement>;
            "tec-code-input": LocalJSX.TecCodeInput & JSXBase.HTMLAttributes<HTMLTecCodeInputElement>;
            "tec-modal": LocalJSX.TecModal & JSXBase.HTMLAttributes<HTMLTecModalElement>;
            "tec-product-header": LocalJSX.TecProductHeader & JSXBase.HTMLAttributes<HTMLTecProductHeaderElement>;
            "tec-status-badge": LocalJSX.TecStatusBadge & JSXBase.HTMLAttributes<HTMLTecStatusBadgeElement>;
        }
    }
}
