import type { IncomingMessage } from 'node:http';
import { type IParseOptions } from '@poppinss/qs';
import { type Encoding, type Options as RawBodyOptions } from 'raw-body';
import { type BodyParserFormConfig } from '../types.ts';
/**
 * Prepares parser options for URL-encoded form data by configuring
 * query string parsing and value normalization.
 *
 * @param options - Form body parser configuration
 */
export declare function prepareFormParserOptions(options: Partial<BodyParserFormConfig>): RawBodyOptions & {
    encoding: Encoding;
    qs: IParseOptions;
};
/**
 * Parses URL-encoded form data (application/x-www-form-urlencoded) from
 * the request body and returns both parsed and raw representations.
 *
 * @param req - The incoming HTTP request
 * @param options - Parser options including encoding, limits, and query string config
 *
 * @example
 * ```ts
 * const { parsed, raw } = await parseForm(request, options)
 * // parsed: { username: 'virk', tags: ['node', 'typescript'] }
 * // raw: 'username=virk&tags=node&tags=typescript'
 * ```
 */
export declare function parseForm(req: IncomingMessage, options: ReturnType<typeof prepareFormParserOptions>): Promise<{
    parsed: {
        [key: string]: unknown;
    };
    raw: string;
}>;
