UNPKG

@opra/common

Version:
60 lines (59 loc) 2.04 kB
import { type Combine, type StrictOmit, Type, type TypeThunkAsync } from 'ts-gems'; import { Validator } from 'valgen'; import type { OpraSchema } from '../../schema/index.js'; import type { ApiDocument } from '../api-document'; 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<OpraSchema.HttpParameter, 'type'> { name: string | RegExp; type?: string | TypeThunkAsync | EnumType.EnumObject | EnumType.EnumArray | object; keyParam?: boolean; designType?: Type; } interface Options extends Partial<StrictOmit<Metadata, 'type'>> { 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; location: OpraSchema.HttpParameterLocation; keyParam?: boolean; deprecated?: boolean | string; required?: boolean; 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 {};