/**
 * Style options for QR code dots (data modules).
 */
export type QrDotsStyle = 'square' | 'dots' | 'rounded' | 'extra-rounded' | 'classy' | 'classy-rounded';
/**
 * Style options for QR code corner squares.
 */
export type QrCornersSquareStyle = 'square' | 'dot' | 'extra-rounded';
/**
 * Style options for QR code corner dots.
 */
export type QrCornersDotStyle = 'square' | 'dot';
/**
 * Output format for the generated QR code.
 */
export type QrOutputFormat = 'svg' | 'png' | 'jpeg' | 'webp';
/**
 * Error correction level for QR codes.
 * Higher levels allow more damage tolerance but reduce data capacity.
 */
export type QrErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H';
/**
 * Logo/image configuration for the QR code center.
 */
export interface QrLogoConfig {
    /** Image source URL or base64 */
    src: string;
    /** Logo width (default: 25% of QR size) */
    width?: number;
    /** Logo height (default: same as width) */
    height?: number;
    /** Margin around the logo */
    margin?: number;
    /** Border radius for rounded corners */
    borderRadius?: number;
    /** Whether to hide dots behind the logo */
    hideBackgroundDots?: boolean;
}
/**
 * Gradient configuration for QR elements.
 */
export interface QrGradient {
    /** Gradient type */
    type: 'linear' | 'radial';
    /** Rotation angle in degrees (for linear) */
    rotation?: number;
    /** Color stops */
    colorStops: Array<{
        offset: number;
        color: string;
    }>;
}
/**
 * Color configuration - can be solid color or gradient.
 */
export type QrColorConfig = string | QrGradient;
/**
 * Complete configuration for QR code generation.
 */
export interface QrConfig {
    /** The data to encode (URL, text, etc.) */
    data: string;
    /** QR code width in pixels (default: 300) */
    width?: number;
    /** QR code height in pixels (default: same as width) */
    height?: number;
    /** Quiet zone margin in modules (default: 0) */
    margin?: number;
    /** Color/gradient for data dots */
    dotsColor?: QrColorConfig;
    /** Background color (default: white) */
    backgroundColor?: QrColorConfig;
    /** Color for corner squares */
    cornersSquareColor?: QrColorConfig;
    /** Color for corner dots */
    cornersDotColor?: QrColorConfig;
    /** Style of data dots (default: 'square') */
    dotsStyle?: QrDotsStyle;
    /** Style of corner squares (default: 'square') */
    cornersSquareStyle?: QrCornersSquareStyle;
    /** Style of corner dots (default: 'square') */
    cornersDotStyle?: QrCornersDotStyle;
    /** Logo/image configuration */
    logo?: QrLogoConfig;
    /** Error correction level (default: 'M') */
    errorCorrectionLevel?: QrErrorCorrectionLevel;
    /** Output format (default: 'png') */
    format?: QrOutputFormat;
    /** Quality for jpeg/webp (0-1, default: 1) */
    quality?: number;
}
/**
 * Result from QR code generation.
 */
export interface QrResult {
    /** Original configuration used */
    config: QrConfig;
    /** Generated data as base64 data URL */
    dataUrl: string;
    /** Generated data as Blob */
    blob: Blob;
    /** SVG string (only when format is 'svg') */
    svg?: string;
    /** MIME type of the generated image */
    mimeType: string;
    /** File extension */
    extension: string;
    /** Timestamp of generation */
    generatedAt: Date;
}
/**
 * Options for downloading the QR code.
 */
export interface QrDownloadOptions {
    /** Custom filename (without extension) */
    filename?: string;
    /** Override format for download */
    format?: QrOutputFormat;
}
/**
 * Options for sharing the QR code.
 */
export interface QrShareOptions {
    /** Share title */
    title?: string;
    /** Share text/description */
    text?: string;
    /** Custom filename for the shared file */
    filename?: string;
}
/**
 * Preset configurations for common use cases.
 */
export interface QrPreset {
    name: string;
    config: Partial<QrConfig>;
}
/**
 * Default presets for quick styling.
 */
export declare const QR_PRESETS: Record<string, Partial<QrConfig>>;
