import { type Combine, type StrictOmit, type Type, type TypeThunkAsync } from 'ts-gems'; import { type Validator } from 'valgen'; import type { OpraSchema } from '../../schema/index.js'; import type { ApiDocument } from '../api-document.js'; import { DocumentElement } from '../common/document-element.js'; import { Value } from '../common/value.js'; import { DataType } from '../data-type/data-type.js'; import type { EnumType } from '../data-type/enum-type.js'; /** * @namespace HttpParameter */ export declare namespace HttpParameter { interface Metadata extends StrictOmit { name: string | RegExp; type?: string | TypeThunkAsync | EnumType.EnumObject | EnumType.EnumArray | object; keyParam?: boolean; designType?: Type; /** Authoring-only; never exported. See `DocumentElement#docKey`. * Required in practice for a RegExp-named parameter, which has no * stable name of its own to key documentation by. */ docKey?: string; } interface Options extends Partial> { type?: string | TypeThunkAsync | object; parser?: (v: any) => any; } interface InitArguments extends Combine<{ type?: DataType; }, Metadata> { parser?: (v: any) => any; } } /** * Type definition for HttpParameter * @class HttpParameter */ interface HttpParameterStatic { new (owner: DocumentElement, args: HttpParameter.InitArguments): HttpParameter; prototype: HttpParameter; } /** * Type definition of HttpParameter prototype * @interface HttpParameter */ export interface HttpParameter extends HttpParameterClass { } export declare const HttpParameter: HttpParameterStatic; /** * @class HttpParameter */ declare class HttpParameterClass extends Value { readonly owner: DocumentElement; get docKeyUnstable(): boolean; protected get docKeySegment(): string[]; location: OpraSchema.HttpParameterLocation; keyParam?: boolean; deprecated?: boolean | string; required?: boolean; readonly default?: any; arraySeparator?: string; parser?: (v: any) => any; designType?: Type; toJSON(options?: ApiDocument.ExportOptions): OpraSchema.HttpParameter; generateCodec(codec: 'encode' | 'decode', options?: DataType.GenerateCodecOptions, properties?: any): Validator; } export {};