export interface ValidationResult {
    isValid: boolean;
    error?: string;
    errors?: string[];
}
export interface ValidationRule {
    (value: any): ValidationResult | Promise<ValidationResult>;
}
export declare const required: (message?: string) => ValidationRule;
export declare const minLength: (min: number, message?: string) => ValidationRule;
export declare const maxLength: (max: number, message?: string) => ValidationRule;
export declare const pattern: (regex: RegExp, message?: string) => ValidationRule;
export declare const email: (message?: string) => ValidationRule;
export declare const phone: (message?: string) => ValidationRule;
export declare const username: (message?: string) => ValidationRule;
export declare const password: (options?: {
    minLength?: number;
    requireUppercase?: boolean;
    requireLowercase?: boolean;
    requireNumbers?: boolean;
    requireSymbols?: boolean;
    message?: string;
}) => ValidationRule;
export declare const confirmPassword: (originalPassword: string, message?: string) => ValidationRule;
export declare const url: (message?: string) => ValidationRule;
export declare const number: (options?: {
    min?: number;
    max?: number;
    integer?: boolean;
    message?: string;
}) => ValidationRule;
export declare const oneOf: (options: any[], message?: string) => ValidationRule;
export declare const custom: (validator: (value: any) => boolean | string, message?: string) => ValidationRule;
export declare const asyncValidation: (validator: (value: any) => Promise<boolean | string>, message?: string) => ValidationRule;
export declare const combine: (...rules: ValidationRule[]) => ValidationRule;
export interface FormValidationRules {
    [fieldName: string]: ValidationRule | ValidationRule[];
}
export interface FormValidationResult {
    isValid: boolean;
    errors: Record<string, string>;
    fieldErrors: Record<string, string[]>;
}
export declare const validateForm: (data: Record<string, any>, rules: FormValidationRules) => Promise<FormValidationResult>;
export declare const validateField: (value: any, rules: ValidationRule | ValidationRule[]) => Promise<ValidationResult>;
export declare const validateSignInForm: (data: {
    identifier: string;
    password?: string;
}) => Promise<FormValidationResult>;
export declare const validateSignUpForm: (data: {
    emailAddress?: string;
    username?: string;
    password?: string;
    confirmPassword?: string;
    firstName?: string;
    lastName?: string;
    phoneNumber?: string;
}) => Promise<FormValidationResult>;
export declare const validatePasswordResetForm: (data: {
    emailAddress: string;
}) => Promise<FormValidationResult>;
export declare const validatePasswordChangeForm: (data: {
    currentPassword: string;
    newPassword: string;
    confirmPassword: string;
}) => Promise<FormValidationResult>;
export declare const validateProfileForm: (data: {
    firstName?: string;
    lastName?: string;
    username?: string;
    emailAddress?: string;
    phoneNumber?: string;
    bio?: string;
    website?: string;
}) => Promise<FormValidationResult>;
export declare const validateOrganizationForm: (data: {
    name: string;
    slug?: string;
    description?: string;
    website?: string;
    billingEmail?: string;
}) => Promise<FormValidationResult>;
export declare const validateInvitationForm: (data: {
    emailAddress: string;
    roleId: string;
    customMessage?: string;
}) => Promise<FormValidationResult>;
export declare const isValidEmail: (email: string) => boolean;
export declare const isValidPhone: (phone: string) => boolean;
export declare const isValidUsername: (username: string) => boolean;
export declare const isValidUrl: (url: string) => boolean;
export declare const sanitizeInput: (input: string) => string;
export declare const normalizeEmail: (email: string) => string;
export declare const normalizePhone: (phone: string) => string;
//# sourceMappingURL=validation.d.ts.map