type Tone = "casual" | "dark" | "dramatic" | "friendly" | "funny" | "genZ" | "millennial" | "motivational" | "mysterious" | "nerdy" | "poetic" | "popCulture" | "professional" | "sarcastic" | "witty";
type FieldType = "address" | "checkbox" | "creditCard" | "date" | "email" | "file" | "general" | "name" | "password" | "phone" | "radio" | "select" | "time" | "url" | "zipcode";
type ErrorType = "doesntMatch" | "duplicate" | "expired" | "exists" | "format" | "inFuture" | "inPast" | "invalid" | "invalidCVV" | "invalidType" | "notSelected" | "outOfRange" | "required" | "tooLarge" | "tooLong" | "tooShort" | "tooSmall" | "tooWeak";
interface ValidationMessage {
    id: string;
    message: string;
    tone: Tone;
    fieldType: FieldType;
    errorType: ErrorType;
    category: string;
}
interface GetMessageOptions {
    fieldType: FieldType;
    errorType: ErrorType;
    tone?: Tone;
    excludeUsed?: boolean;
}
interface ValidationMessageMap {
    [key: string]: ValidationMessage[];
}
interface GiggleGuardConfig {
    defaultTone?: Tone | "random";
    trackUsedMessages?: boolean;
    fallbackToGeneric?: boolean;
    strictValidation?: boolean;
}

declare const addressMessages: ValidationMessage[];

declare const checkboxMessages: ValidationMessage[];

declare const creditCardMessages: ValidationMessage[];

declare const dateMessages: ValidationMessage[];

declare const emailMessages: ValidationMessage[];

declare const fileMessages: ValidationMessage[];

declare const generalMessages: ValidationMessage[];

declare const nameMessages: ValidationMessage[];

declare const passwordMessages: ValidationMessage[];

declare const phoneMessages: ValidationMessage[];

declare const radioMessages: ValidationMessage[];

declare const selectMessages: ValidationMessage[];

declare const timeMessages: ValidationMessage[];

declare const urlMessages: ValidationMessage[];

declare const zipcodeMessages: ValidationMessage[];

declare const allMessages: ValidationMessage[];

declare const validateFieldErrorCombo: (fieldType: FieldType, errorType: ErrorType) => {
    valid: boolean;
    allowedErrors?: ErrorType[];
};

declare class GiggleGuard {
    private config;
    private usedMessages;
    constructor(config?: GiggleGuardConfig);
    /**
     * Get a random validation message based on field type and error type
     */
    getMessage(options: GetMessageOptions): string;
    /**
     * Get multiple messages for the same validation
     */
    getMessages(options: GetMessageOptions, count?: number): string[];
    /**
     * Get a message by specific ID
     */
    getMessageById(id: string): ValidationMessage | undefined;
    /**
     * Get all messages for a specific field type
     */
    getMessagesByField(fieldType: FieldType): ValidationMessage[];
    /**
     * Get all messages with a specific tone
     */
    getMessagesByTone(tone: Tone): ValidationMessage[];
    /**
     * Reset used messages tracking
     */
    resetUsedMessages(): void;
    /**
     * Get statistics about available messages
     */
    getStats(): {
        total: number;
        byFieldType: Record<FieldType, number>;
        byTone: Record<Tone, number>;
        byErrorType: Record<ErrorType, number>;
    };
    /**
     * Update configuration
     */
    updateConfig(newConfig: Partial<GiggleGuardConfig>): void;
}
declare const getMessage: (options: GetMessageOptions) => string;
declare const getMessages: (options: GetMessageOptions, count?: number) => string[];

export { GiggleGuard, addressMessages, allMessages, checkboxMessages, creditCardMessages, dateMessages, GiggleGuard as default, emailMessages, fileMessages, generalMessages, getMessage, getMessages, nameMessages, passwordMessages, phoneMessages, radioMessages, selectMessages, timeMessages, urlMessages, validateFieldErrorCombo, zipcodeMessages };
export type { ErrorType, FieldType, GetMessageOptions, GiggleGuardConfig, Tone, ValidationMessage, ValidationMessageMap };
