/* 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 { SupportedMessagesType } from "./utils/l10n";
import { TFilters } from "@peculiar/fortify-client-core";
import { ISelectionSuccessEvent } from "./components/fortify-certificates/fortify-certificates";
import { IFormPolicyConfig } from "./components/fortify-enrollment/policyConfig";
import { ICreationSuccessEvent } from "./components/fortify-enrollment/fortify-enrollment";
export { SupportedMessagesType } from "./utils/l10n";
export { TFilters } from "@peculiar/fortify-client-core";
export { ISelectionSuccessEvent } from "./components/fortify-certificates/fortify-certificates";
export { IFormPolicyConfig } from "./components/fortify-enrollment/policyConfig";
export { ICreationSuccessEvent } from "./components/fortify-enrollment/fortify-enrollment";
export namespace Components {
    interface PeculiarFortifyCertificates {
        /**
          * A link to download the application when a connection to Fortify is not found.
         */
        "downloadAppLink"?: string;
        /**
          * Component data filters. KeyUsageType you can find on [certificate specification](https://tools.ietf.org/html/rfc5280#section-4.2.1.3).
         */
        "filters"?: TFilters;
        /**
          * A link to redirect the user to the help page if there are any questions about the operation of the application.
         */
        "helpPageLink"?: string;
        /**
          * If `true`, the component footer will be hidden.
         */
        "hideFooter"?: boolean;
        /**
          * Component language.
         */
        "language"?: SupportedMessagesType;
    }
    interface PeculiarFortifyEnrollment {
        /**
          * A link to download the application when a connection to Fortify is not found.
         */
        "downloadAppLink"?: string;
        /**
          * Object that contains filters for user certificates and providers.
         */
        "filters"?: Pick<TFilters, 'onlySmartcards' | 'providerNameMatch' | 'providerATRMatch'>;
        /**
          * Object that contains configurations for enrollment form.
         */
        "formPolicy"?: IFormPolicyConfig;
        /**
          * A link to redirect the user to the help page if there are any questions about the operation of the application.
         */
        "helpPageLink"?: string;
        /**
          * If `true`, the component footer will be hidden.
         */
        "hideFooter"?: boolean;
        /**
          * Component language.
         */
        "language"?: SupportedMessagesType;
    }
}
export interface PeculiarFortifyCertificatesCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPeculiarFortifyCertificatesElement;
}
export interface PeculiarFortifyEnrollmentCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPeculiarFortifyEnrollmentElement;
}
declare global {
    interface HTMLPeculiarFortifyCertificatesElementEventMap {
        "selectionCancel": void;
        "selectionSuccess": ISelectionSuccessEvent;
    }
    interface HTMLPeculiarFortifyCertificatesElement extends Components.PeculiarFortifyCertificates, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPeculiarFortifyCertificatesElementEventMap>(type: K, listener: (this: HTMLPeculiarFortifyCertificatesElement, ev: PeculiarFortifyCertificatesCustomEvent<HTMLPeculiarFortifyCertificatesElementEventMap[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 HTMLPeculiarFortifyCertificatesElementEventMap>(type: K, listener: (this: HTMLPeculiarFortifyCertificatesElement, ev: PeculiarFortifyCertificatesCustomEvent<HTMLPeculiarFortifyCertificatesElementEventMap[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 HTMLPeculiarFortifyCertificatesElement: {
        prototype: HTMLPeculiarFortifyCertificatesElement;
        new (): HTMLPeculiarFortifyCertificatesElement;
    };
    interface HTMLPeculiarFortifyEnrollmentElementEventMap {
        "creationCancel": void;
        "creationClose": void;
        "creationSuccess": ICreationSuccessEvent;
        "creationFail": Error;
    }
    interface HTMLPeculiarFortifyEnrollmentElement extends Components.PeculiarFortifyEnrollment, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPeculiarFortifyEnrollmentElementEventMap>(type: K, listener: (this: HTMLPeculiarFortifyEnrollmentElement, ev: PeculiarFortifyEnrollmentCustomEvent<HTMLPeculiarFortifyEnrollmentElementEventMap[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 HTMLPeculiarFortifyEnrollmentElementEventMap>(type: K, listener: (this: HTMLPeculiarFortifyEnrollmentElement, ev: PeculiarFortifyEnrollmentCustomEvent<HTMLPeculiarFortifyEnrollmentElementEventMap[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 HTMLPeculiarFortifyEnrollmentElement: {
        prototype: HTMLPeculiarFortifyEnrollmentElement;
        new (): HTMLPeculiarFortifyEnrollmentElement;
    };
    interface HTMLElementTagNameMap {
        "peculiar-fortify-certificates": HTMLPeculiarFortifyCertificatesElement;
        "peculiar-fortify-enrollment": HTMLPeculiarFortifyEnrollmentElement;
    }
}
declare namespace LocalJSX {
    interface PeculiarFortifyCertificates {
        /**
          * A link to download the application when a connection to Fortify is not found.
         */
        "downloadAppLink"?: string;
        /**
          * Component data filters. KeyUsageType you can find on [certificate specification](https://tools.ietf.org/html/rfc5280#section-4.2.1.3).
         */
        "filters"?: TFilters;
        /**
          * A link to redirect the user to the help page if there are any questions about the operation of the application.
         */
        "helpPageLink"?: string;
        /**
          * If `true`, the component footer will be hidden.
         */
        "hideFooter"?: boolean;
        /**
          * Component language.
         */
        "language"?: SupportedMessagesType;
        /**
          * Fires when the user has canceled the selection flow.
         */
        "onSelectionCancel"?: (event: PeculiarFortifyCertificatesCustomEvent<void>) => void;
        /**
          * Fires when the user has successfully selected a certificate.
         */
        "onSelectionSuccess"?: (event: PeculiarFortifyCertificatesCustomEvent<ISelectionSuccessEvent>) => void;
    }
    interface PeculiarFortifyEnrollment {
        /**
          * A link to download the application when a connection to Fortify is not found.
         */
        "downloadAppLink"?: string;
        /**
          * Object that contains filters for user certificates and providers.
         */
        "filters"?: Pick<TFilters, 'onlySmartcards' | 'providerNameMatch' | 'providerATRMatch'>;
        /**
          * Object that contains configurations for enrollment form.
         */
        "formPolicy"?: IFormPolicyConfig;
        /**
          * A link to redirect the user to the help page if there are any questions about the operation of the application.
         */
        "helpPageLink"?: string;
        /**
          * If `true`, the component footer will be hidden.
         */
        "hideFooter"?: boolean;
        /**
          * Component language.
         */
        "language"?: SupportedMessagesType;
        /**
          * Fires when the user has canceled the creation flow.
         */
        "onCreationCancel"?: (event: PeculiarFortifyEnrollmentCustomEvent<void>) => void;
        /**
          * Fires when the user clicks on the "Close" button after successfully creating a certificate or certificate request.
         */
        "onCreationClose"?: (event: PeculiarFortifyEnrollmentCustomEvent<void>) => void;
        /**
          * Fires when the user failed to generate a certificate or certificate request.
         */
        "onCreationFail"?: (event: PeculiarFortifyEnrollmentCustomEvent<Error>) => void;
        /**
          * Fires when the user has successfully created a certificate or certificate request.
         */
        "onCreationSuccess"?: (event: PeculiarFortifyEnrollmentCustomEvent<ICreationSuccessEvent>) => void;
    }
    interface IntrinsicElements {
        "peculiar-fortify-certificates": PeculiarFortifyCertificates;
        "peculiar-fortify-enrollment": PeculiarFortifyEnrollment;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "peculiar-fortify-certificates": LocalJSX.PeculiarFortifyCertificates & JSXBase.HTMLAttributes<HTMLPeculiarFortifyCertificatesElement>;
            "peculiar-fortify-enrollment": LocalJSX.PeculiarFortifyEnrollment & JSXBase.HTMLAttributes<HTMLPeculiarFortifyEnrollmentElement>;
        }
    }
}
