import * as i0 from '@angular/core';
import { OnChanges, ViewContainerRef } from '@angular/core';
import * as i1 from '@angular/common';

type QrCodeErrorCorrectionLevel = "low" | "medium" | "quartile" | "high" | "L" | "M" | "Q" | "H";
type RGBAColor = `#${string}`;
type QRCodeMaskPattern = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;

declare class QrCodeComponent {
    value?: string;
    size?: string | number;
    style?: {
        [klass: string]: any;
    } | null;
    styleClass?: string;
    darkColor?: RGBAColor;
    lightColor?: RGBAColor;
    errorCorrectionLevel?: QrCodeErrorCorrectionLevel;
    centerImageSrc?: string;
    centerImageSize?: string | number;
    margin?: number;
    scale?: number;
    maskPattern?: QRCodeMaskPattern;
    static ɵfac: i0.ɵɵFactoryDeclaration<QrCodeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QrCodeComponent, "qr-code", never, { "value": { "alias": "value"; "required": false; }; "size": { "alias": "size"; "required": false; }; "style": { "alias": "style"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "darkColor": { "alias": "darkColor"; "required": false; }; "lightColor": { "alias": "lightColor"; "required": false; }; "errorCorrectionLevel": { "alias": "errorCorrectionLevel"; "required": false; }; "centerImageSrc": { "alias": "centerImageSrc"; "required": false; }; "centerImageSize": { "alias": "centerImageSize"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; "maskPattern": { "alias": "maskPattern"; "required": false; }; }, {}, never, never, true, never>;
}

declare class QrCodeDirective implements OnChanges {
    private viewContainerRef;
    static readonly DEFAULT_ERROR_CORRECTION_LEVEL: QrCodeErrorCorrectionLevel;
    static readonly DEFAULT_CENTER_IMAGE_SIZE = 40;
    value: string;
    version?: number;
    errorCorrectionLevel?: QrCodeErrorCorrectionLevel;
    width?: number | string;
    height?: number | string;
    darkColor?: RGBAColor;
    lightColor?: RGBAColor;
    centerImageSrc?: string;
    centerImageWidth?: number | string;
    centerImageHeight?: number | string;
    margin?: number;
    qrScale?: number | undefined;
    qrCodeMaskPattern?: QRCodeMaskPattern | undefined;
    private centerImage?;
    constructor(viewContainerRef: ViewContainerRef);
    ngOnChanges(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<QrCodeDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<QrCodeDirective, "canvas[qrCode]", never, { "value": { "alias": "qrCode"; "required": false; }; "version": { "alias": "qrCodeVersion"; "required": false; }; "errorCorrectionLevel": { "alias": "qrCodeErrorCorrectionLevel"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "darkColor": { "alias": "darkColor"; "required": false; }; "lightColor": { "alias": "lightColor"; "required": false; }; "centerImageSrc": { "alias": "qrCodeCenterImageSrc"; "required": false; }; "centerImageWidth": { "alias": "qrCodeCenterImageWidth"; "required": false; }; "centerImageHeight": { "alias": "qrCodeCenterImageHeight"; "required": false; }; "margin": { "alias": "qrCodeMargin"; "required": false; }; "qrScale": { "alias": "qrScale"; "required": false; }; "qrCodeMaskPattern": { "alias": "qrCodeMaskPattern"; "required": false; }; }, {}, never, never, true, never>;
}
declare function getOptionalInt(value: string | number): number;
declare function getOptionalInt(value: string | number | undefined): number | undefined;
declare function getIntOrDefault(value: string | number | undefined, defaultValue: number): number;

/**
 * @deprecated prefer importing `QrCodeComponent` or `QrCodeDirective` directly
 */
declare class QrCodeModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<QrCodeModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<QrCodeModule, never, [typeof i1.CommonModule, typeof QrCodeComponent, typeof QrCodeDirective], [typeof QrCodeComponent, typeof QrCodeDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<QrCodeModule>;
}

export { QrCodeComponent, QrCodeDirective, QrCodeModule, getIntOrDefault, getOptionalInt };
export type { QRCodeMaskPattern, QrCodeErrorCorrectionLevel, RGBAColor };
