import * as v from 'valibot';
/**
 * Validation schemas for Stripe operations
 */
export declare const StripeValidationSchemas: {
    webhookEvent: v.ObjectSchema<{
        readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, "Event ID is required">]>;
        readonly type: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, "Event type is required">]>;
        readonly data: v.ObjectSchema<{
            readonly object: v.AnySchema;
        }, undefined>;
        readonly created: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, "Valid timestamp required">]>;
    }, undefined>;
    purchaseRequest: v.ObjectSchema<{
        readonly userId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, "User ID is required">]>;
        readonly productType: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, "Product type is required">]>;
        readonly githubUsername: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "Invalid GitHub username">]>, undefined>;
        readonly sessionId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, "Session ID is required">]>;
        readonly amount: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, "Amount must be positive">]>, undefined>;
        readonly currency: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.LengthAction<string, 3, "Currency must be 3 characters">]>, undefined>;
    }, undefined>;
};
/**
 * Validation result interface
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export interface ValidationResult {
    isValid: boolean;
    errors: string[];
    data?: any;
}
/**
 * Validate webhook event
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function validateWebhookEvent(data: any): ValidationResult;
/**
 * Validate purchase request
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function validatePurchaseRequest(data: any): ValidationResult;
/**
 * Validate GitHub username format
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function validateGitHubUsername(username: string): boolean;
/**
 * Validate email format
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function validateEmail(email: string): boolean;
/**
 * Validate price ID format (Stripe price IDs start with 'price_')
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function validateStripePriceId(priceId: string): boolean;
/**
 * Validate session ID format (Stripe session IDs start with 'cs_')
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function validateStripeSessionId(sessionId: string): boolean;
/**
 * Validate URL format
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function validateUrl(url: string, name?: string): string;
/**
 * Validate and sanitize metadata object
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function validateMetadata(metadata: Record<string, any>): Record<string, string>;
