/**
 * @fileoverview DRY utilities for schema validation across all functions
 * @description Provides reusable patterns for Firebase and Vercel functions
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
import * as v from 'valibot';
import type { CallableRequest } from 'firebase-functions/v2/https';
import type { NextApiRequest, NextApiResponse } from 'next';
/**
 * Validates request data using a schema with custom override support
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function validateRequestData<T>(data: any, defaultSchema: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>, customSchema?: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>): {
    success: true;
    data: T;
} | {
    success: false;
    error: string;
};
/**
 * Firebase function wrapper that adds schema validation
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function withSchemaValidation<TRequest, TResponse>(defaultSchema: v.BaseSchema<unknown, TRequest, v.BaseIssue<unknown>>, handler: (request: CallableRequest<TRequest>, validatedData: TRequest) => Promise<TResponse>): (request: CallableRequest<TRequest>, customSchema?: v.BaseSchema<unknown, TRequest, v.BaseIssue<unknown>>) => Promise<TResponse>;
/**
 * Vercel function wrapper that adds schema validation
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function withVercelSchemaValidation<TRequest, TResponse>(defaultSchema: v.BaseSchema<unknown, TRequest, v.BaseIssue<unknown>>, handler: (req: NextApiRequest, res: NextApiResponse, validatedData: TRequest) => Promise<TResponse>): (req: NextApiRequest, res: NextApiResponse, customSchema?: v.BaseSchema<unknown, TRequest, v.BaseIssue<unknown>>) => Promise<TResponse>;
/**
 * Creates both standard and custom schema versions of a Firebase function
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function createFirebaseFunction<TRequest, TResponse>(defaultSchema: v.BaseSchema<unknown, TRequest, v.BaseIssue<unknown>>, handler: (request: CallableRequest<TRequest>, validatedData: TRequest) => Promise<TResponse>): {
    standard: (request: CallableRequest<TRequest>) => Promise<TResponse>;
    withSchema: (request: CallableRequest<TRequest>, customSchema: v.BaseSchema<unknown, TRequest, v.BaseIssue<unknown>>) => Promise<TResponse>;
};
/**
 * Creates a Vercel function with schema validation
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function createVercelFunction<TRequest, TResponse>(defaultSchema: v.BaseSchema<unknown, TRequest, v.BaseIssue<unknown>>, handler: (req: NextApiRequest, res: NextApiResponse, validatedData: TRequest) => Promise<TResponse>): (req: NextApiRequest, res: NextApiResponse, customSchema?: v.BaseSchema<unknown, TRequest, v.BaseIssue<unknown>> | undefined) => Promise<TResponse>;
