import { FlatfileListener } from '@flatfile/listener';

interface StringValidationConfig {
    fields: string[];
    sheetSlug?: string;
    pattern?: keyof typeof commonRegexPatterns | RegExp;
    minLength?: number;
    maxLength?: number;
    exactLength?: number;
    caseType?: 'lowercase' | 'uppercase' | 'titlecase';
    trim?: {
        leading?: boolean;
        trailing?: boolean;
    };
    emptyStringAllowed?: boolean;
    errorMessages?: {
        pattern?: string;
        length?: string;
        case?: string;
        trim?: string;
    };
}
declare const commonRegexPatterns: {
    email: RegExp;
    phone: RegExp;
    url: RegExp;
};
interface ValidationResult {
    value: string;
    error: string | null;
}
declare function validateAndTransformString(value: string, config: StringValidationConfig): ValidationResult;

declare function validateString(config: StringValidationConfig): (listener: FlatfileListener) => void;

export { type StringValidationConfig, type ValidationResult, commonRegexPatterns, validateAndTransformString, validateString };
