import { IJsDocTagInfo, IMetadataComponents, IMetadataSchema } from "@typia/interface";
import { MetadataFactory } from "../internal/legacy";
import { IReflectType } from "./IReflectType";
export type IReflectHttpOperationParameter = IReflectHttpOperationParameter.IBody | IReflectHttpOperationParameter.IHeaders | IReflectHttpOperationParameter.IParam | IReflectHttpOperationParameter.IQuery;
export declare namespace IReflectHttpOperationParameter {
    export interface IBody extends IBase<"body"> {
        contentType: "application/json" | "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain";
        encrypted: boolean;
    }
    export interface IHeaders extends IBase<"headers"> {
        field: string | null;
    }
    export interface IParam extends IBase<"param"> {
        field: string;
    }
    export interface IQuery extends IBase<"query"> {
        field: string | null;
    }
    interface IBase<Category extends string> {
        category: Category;
        name: string;
        index: number;
        type: IReflectType;
        metadata: IMetadataSchema;
        components: IMetadataComponents;
        validate: MetadataFactory.Validator;
        example?: any;
        examples?: Record<string, any>;
        description: string | null;
        jsDocTags: IJsDocTagInfo[];
    }
    export {};
}
