import { HTMLAttributes } from 'react';
/**
 * Signature component size variants
 */
export type SignatureSize = 'sm' | 'md' | 'lg';
/**
 * Signature component state variants
 */
export type SignatureState = 'default' | 'disabled' | 'invalid';
/**
 * Signature theme configuration
 */
export interface SignatureTheme {
    /** Wrapper container style */
    wrapperStyle: string;
    /** Input group container style (border, focus, states) */
    inputGroupStyle: string;
    /** Canvas wrapper style */
    baseStyle: string;
    /** Canvas element style */
    canvasStyle: string;
    /** Placeholder text style */
    placeholderStyle: string;
    /** Control buttons container style */
    controlsStyle: string;
    /** Size variants */
    sizes?: Record<SignatureSize, string>;
    /** State variants */
    states?: Record<SignatureState, string>;
    /** Helper text style */
    helperText?: string;
}
/**
 * Theme overrides for the Signature component
 */
export interface SignatureThemeOverrides {
    wrapperStyle?: string;
    inputGroupStyle?: string;
    baseStyle?: string;
    canvasStyle?: string;
    placeholderStyle?: string;
    controlsStyle?: string;
    sizes?: Partial<Record<SignatureSize, string>>;
    states?: Partial<Record<SignatureState, string>>;
    helperText?: string;
}
/**
 * Signature component props
 */
export interface SignatureProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
    /** Unique identifier for the signature field */
    id?: string;
    /** Label text for the signature */
    label?: string;
    /** Additional class name for the label */
    labelClassName?: string;
    /** Helper text displayed below the signature */
    helperText?: string;
    /** Additional class name for the helper text */
    helperTextClassName?: string;
    /** Additional class name for the wrapper */
    wrapperClassName?: string;
    /** Size variant of the signature component */
    size?: SignatureSize;
    /** State of the signature component */
    state?: SignatureState;
    /** Whether the signature is required */
    required?: boolean;
    /** Whether the signature is disabled */
    disabled?: boolean;
    /** Canvas width */
    width?: number;
    /** Canvas height */
    height?: number;
    /** Stroke color */
    strokeColor?: string;
    /** Stroke width */
    strokeWidth?: number;
    /** Background color */
    backgroundColor?: string;
    /** Custom class name */
    className?: string;
    /** Theme overrides */
    theme?: SignatureThemeOverrides;
    /** Called when signature changes */
    onChange?: (dataURL: string) => void;
    /** Called when signature is cleared */
    onClear?: () => void;
    /** Show control buttons */
    showControls?: boolean;
    /** Placeholder text when empty */
    placeholder?: string;
}
