import { type HTMLAttributes, type ReactNode } from 'react';
import { type VariantProps } from 'class-variance-authority';
import { type ErrorCorrectionLevel } from './qr-encode';
declare const qrCodeVariants: (props?: ({
variant?: "plain" | "framed" | "with-caption" | null | undefined;
size?: "sm" | "md" | "lg" | null | undefined;
tone?: "default" | "inverted" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type QrCodeVariantProps = VariantProps;
interface QrCodeBase extends Omit, 'role' | 'aria-label' | 'aria-hidden' | 'children' | 'color'>, QrCodeVariantProps {
/**
* The string encoded into the QR — typically an absolute https URL
* (check-in landing or patient-portal link), but any text is valid. An
* empty string renders the empty state. Not validated as a URL: the kit
* is byte-transparent and the consumer passes a fully-formed value.
*/
value: string;
/**
* Reed-Solomon redundancy. When omitted it defaults to `H` (high, ~30%
* recovery) whenever a centre logo is shown — the obscured centre still
* decodes — and to `M` when the logo is disabled (`logo={false}`). Pass an
* explicit level to override (raising to `Q`/`H` is required if a logo
* occludes the centre).
*/
errorCorrectionLevel?: ErrorCorrectionLevel;
/**
* Centre mark over the matrix. The product wants the AlfaDocs mark present
* on every code, so this defaults to the canonical mark
* ({@link AlfadocsLogoMark}, decorative). Pass `logo={false}` to disable it,
* or `logo={}` to override with your own node. The mark is clamped
* to ~22% of the edge and seated on a tone-matched opaque knockout so the
* modules beneath it are visually cleared; ECC-H reconstructs them on scan.
*/
logo?: ReactNode | false;
/** Caption for `variant="with-caption"`. Defaults to the i18n caption. */
caption?: string;
/** Quiet-zone width in MODULES. Clamped up to the spec minimum of 4. */
quietZone?: number;
}
type QrCodeA11y = {
/**
* Human-readable destination woven into the accessible name, e.g. a
* practice name → "QR code to check in at Studio Dentistico Rossi".
* Not rendered visually.
*/
label?: string;
decorative?: never;
} | {
label?: never;
/**
* Decorative usage — the code is hidden from assistive tech (rare; the
* same QR is duplicated purely ornamentally next to a real one).
*/
decorative: true;
};
export type QrCodeProps = QrCodeBase & QrCodeA11y;
export declare const QrCode: import("react").ForwardRefExoticComponent>;
export {};
//# sourceMappingURL=qr-code.d.ts.map