/* 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 { VisageTexts } from "./components/face-detector/face-detector";
export { VisageTexts } from "./components/face-detector/face-detector";
export namespace Components {
    interface JaakVisage {
        /**
          * @default 'jaak-visage-web'
         */
        "appId"?: string;
        /**
          * @default 'auto'
         */
        "camera": 'front' | 'back' | 'auto';
        /**
          * @default 'auto'
         */
        "captureMode": 'auto' | 'manual';
        "captureNow": () => Promise<void>;
        "customerId"?: string;
        /**
          * @default false
         */
        "debug": boolean;
        /**
          * @default 'auto'
         */
        "detectionMode": 'full' | 'light' | 'auto';
        /**
          * @default true
         */
        "enableMetrics": boolean;
        /**
          * @default true
         */
        "enableTelemetry": boolean;
        /**
          * @default 'production'
         */
        "environment"?: string;
        "getAvailableCameras": () => Promise<MediaDeviceInfo[]>;
        "getCameraDevices": () => Promise<MediaDeviceInfo[]>;
        "getCurrentCameraId": () => Promise<string>;
        /**
          * @default 'es'
         */
        "language": 'es' | 'en';
        "license"?: string;
        /**
          * @default 'prod'
         */
        "licenseEnvironment"?: 'dev' | 'qa' | 'sandbox' | 'prod';
        /**
          * @default 'https://collector.jaak.ai/v1/metrics'
         */
        "metricsCollectorUrl"?: string;
        /**
          * @default 60000
         */
        "metricsExportIntervalMillis"?: number;
        "preload": () => Promise<void>;
        "propagateTraceHeaderCorsUrls"?: string;
        "restart": () => Promise<void>;
        "showHelp": () => Promise<void>;
        /**
          * @default false
         */
        "showHelpOnStart": boolean;
        "start": () => Promise<void>;
        "startCamera": () => Promise<void>;
        "stop": () => Promise<void>;
        "stopCamera": () => Promise<void>;
        "switchCamera": (deviceId?: string) => Promise<void>;
        /**
          * @default 'https://collector.jaak.ai/v1/traces'
         */
        "telemetryCollectorUrl"?: string;
        "tenantId"?: string;
        /**
          * @default {}
         */
        "texts": VisageTexts;
        "traceId"?: string;
    }
}
export interface JaakVisageCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLJaakVisageElement;
}
declare global {
    interface HTMLJaakVisageElementEventMap {
        "videoCaptured": {base64: string};
        "statusUpdated": {status: string, message: string};
        "traceIdGenerated": {traceId: string};
    }
    interface HTMLJaakVisageElement extends Components.JaakVisage, HTMLStencilElement {
        addEventListener<K extends keyof HTMLJaakVisageElementEventMap>(type: K, listener: (this: HTMLJaakVisageElement, ev: JaakVisageCustomEvent<HTMLJaakVisageElementEventMap[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 HTMLJaakVisageElementEventMap>(type: K, listener: (this: HTMLJaakVisageElement, ev: JaakVisageCustomEvent<HTMLJaakVisageElementEventMap[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 HTMLJaakVisageElement: {
        prototype: HTMLJaakVisageElement;
        new (): HTMLJaakVisageElement;
    };
    interface HTMLElementTagNameMap {
        "jaak-visage": HTMLJaakVisageElement;
    }
}
declare namespace LocalJSX {
    interface JaakVisage {
        /**
          * @default 'jaak-visage-web'
         */
        "appId"?: string;
        /**
          * @default 'auto'
         */
        "camera"?: 'front' | 'back' | 'auto';
        /**
          * @default 'auto'
         */
        "captureMode"?: 'auto' | 'manual';
        "customerId"?: string;
        /**
          * @default false
         */
        "debug"?: boolean;
        /**
          * @default 'auto'
         */
        "detectionMode"?: 'full' | 'light' | 'auto';
        /**
          * @default true
         */
        "enableMetrics"?: boolean;
        /**
          * @default true
         */
        "enableTelemetry"?: boolean;
        /**
          * @default 'production'
         */
        "environment"?: string;
        /**
          * @default 'es'
         */
        "language"?: 'es' | 'en';
        "license"?: string;
        /**
          * @default 'prod'
         */
        "licenseEnvironment"?: 'dev' | 'qa' | 'sandbox' | 'prod';
        /**
          * @default 'https://collector.jaak.ai/v1/metrics'
         */
        "metricsCollectorUrl"?: string;
        /**
          * @default 60000
         */
        "metricsExportIntervalMillis"?: number;
        "onStatusUpdated"?: (event: JaakVisageCustomEvent<{status: string, message: string}>) => void;
        "onTraceIdGenerated"?: (event: JaakVisageCustomEvent<{traceId: string}>) => void;
        "onVideoCaptured"?: (event: JaakVisageCustomEvent<{base64: string}>) => void;
        "propagateTraceHeaderCorsUrls"?: string;
        /**
          * @default false
         */
        "showHelpOnStart"?: boolean;
        /**
          * @default 'https://collector.jaak.ai/v1/traces'
         */
        "telemetryCollectorUrl"?: string;
        "tenantId"?: string;
        /**
          * @default {}
         */
        "texts"?: VisageTexts;
        "traceId"?: string;
    }
    interface IntrinsicElements {
        "jaak-visage": JaakVisage;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "jaak-visage": LocalJSX.JaakVisage & JSXBase.HTMLAttributes<HTMLJaakVisageElement>;
        }
    }
}
