import { ArgumentMetadata, PipeTransform } from '../interfaces/features/pipe-transform.interface.js';
import { ErrorHttpStatusCode } from '../utils/http-error-by-code.util.js';
/**
 * @publicApi
 */
export type UUIDVersion = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 'all';
/**
 * @publicApi
 */
export interface ParseUUIDPipeOptions {
    /**
     * UUID version to validate
     */
    version?: UUIDVersion;
    /**
     * The HTTP status code to be used in the response when the validation fails.
     */
    errorHttpStatusCode?: ErrorHttpStatusCode;
    /**
     * A factory function that returns an exception object to be thrown
     * if validation fails.
     * @param error Error message
     * @returns The exception object
     */
    exceptionFactory?: (errors: string) => any;
    /**
     * If true, the pipe will return null or undefined if the value is not provided
     * @default false
     */
    optional?: boolean;
}
/**
 * Defines the built-in ParseUUID Pipe
 *
 * @see [Built-in Pipes](https://docs.nestjs.com/pipes#built-in-pipes)
 *
 * @publicApi
 */
export declare class ParseUUIDPipe implements PipeTransform {
    protected readonly options?: ParseUUIDPipeOptions | undefined;
    protected static uuidRegExps: Record<UUIDVersion, RegExp>;
    private readonly version;
    protected exceptionFactory: (errors: string) => any;
    constructor(options?: ParseUUIDPipeOptions | undefined);
    transform(value: unknown, metadata: ArgumentMetadata): Promise<string | undefined | null>;
    protected isUUID(str: unknown, version?: UUIDVersion): boolean;
}
