import * as Effect from 'effect/Effect'; /** * @since 1.0.0 * @category Models */ export interface OpenApiSpec { readonly openapi: string; readonly info: InfoObject; readonly servers?: ReadonlyArray; readonly paths: PathsObject; readonly components?: ComponentsObject; readonly security?: ReadonlyArray>>; } /** * @since 1.0.0 * @category Models */ export interface InfoObject { readonly title: string; readonly version: string; readonly description?: string; } /** * @since 1.0.0 * @category Models */ export interface ServerObject { readonly url: string; readonly description?: string; } /** * @since 1.0.0 * @category Models */ export interface PathsObject { readonly [path: string]: PathItemObject; } /** * @since 1.0.0 * @category Models */ export interface PathItemObject { readonly get?: OperationObject; readonly post?: OperationObject; readonly put?: OperationObject; readonly patch?: OperationObject; readonly delete?: OperationObject; } /** * @since 1.0.0 * @category Models */ export interface OperationObject { readonly operationId: string; readonly summary?: string; readonly description?: string; readonly tags?: ReadonlyArray; readonly parameters?: ReadonlyArray; readonly requestBody?: RequestBodyObject; readonly responses: ResponsesObject; readonly security?: ReadonlyArray>>; readonly deprecated?: boolean; } /** * @since 1.0.0 * @category Models */ export interface ParameterObject { readonly name: string; readonly in: 'query' | 'header' | 'path' | 'cookie'; readonly required?: boolean; readonly schema?: SchemaObject; } /** * @since 1.0.0 * @category Models */ export interface RequestBodyObject { readonly content: Record; readonly required?: boolean; } /** * @since 1.0.0 * @category Models */ export interface MediaTypeObject { readonly schema?: SchemaObject; } /** * @since 1.0.0 * @category Models */ export interface ResponsesObject { readonly [statusCode: string]: ResponseObject; } /** * @since 1.0.0 * @category Models */ export interface ResponseObject { readonly description: string; readonly content?: Record; } /** * @since 1.0.0 * @category Models */ export interface SchemaObject { readonly type?: string | ReadonlyArray; readonly properties?: Record; readonly required?: ReadonlyArray; readonly items?: SchemaObject; readonly $ref?: string; readonly description?: string; readonly enum?: ReadonlyArray; readonly format?: string; readonly nullable?: boolean; readonly const?: unknown; readonly minLength?: number; readonly maxLength?: number; readonly pattern?: string; readonly minimum?: number; readonly maximum?: number; readonly multipleOf?: number; readonly exclusiveMinimum?: boolean | number; readonly exclusiveMaximum?: boolean | number; readonly minItems?: number; readonly maxItems?: number; readonly uniqueItems?: boolean; readonly additionalProperties?: boolean | SchemaObject; readonly allOf?: ReadonlyArray; readonly oneOf?: ReadonlyArray; readonly anyOf?: ReadonlyArray; readonly 'x-circular'?: ReadonlyArray; readonly deprecated?: boolean; } /** * Raw OpenAPI security scheme objects (before parsing into SecurityScheme types) * * @since 1.0.0 * @category Models */ export interface RawApiKeyScheme { readonly type: 'apiKey'; readonly name: string; readonly in: 'query' | 'header' | 'cookie'; readonly description?: string; } /** * @since 1.0.0 * @category Models */ export interface RawHttpScheme { readonly type: 'http'; readonly scheme: string; readonly bearerFormat?: string; readonly description?: string; } /** * @since 1.0.0 * @category Models */ export interface RawOAuth2Scheme { readonly type: 'oauth2'; readonly flows: { readonly implicit?: { readonly authorizationUrl: string; readonly scopes: Record; readonly refreshUrl?: string; }; readonly password?: { readonly tokenUrl: string; readonly scopes: Record; readonly refreshUrl?: string; }; readonly clientCredentials?: { readonly tokenUrl: string; readonly scopes: Record; readonly refreshUrl?: string; }; readonly authorizationCode?: { readonly authorizationUrl: string; readonly tokenUrl: string; readonly scopes: Record; readonly refreshUrl?: string; }; }; readonly description?: string; } /** * @since 1.0.0 * @category Models */ export interface RawOpenIdConnectScheme { readonly type: 'openIdConnect'; readonly openIdConnectUrl: string; readonly description?: string; } /** * @since 1.0.0 * @category Models */ export type RawSecurityScheme = RawApiKeyScheme | RawHttpScheme | RawOAuth2Scheme | RawOpenIdConnectScheme; /** * @since 1.0.0 * @category Models */ export interface ParameterRef { readonly $ref: string; } /** * @since 1.0.0 * @category Models */ export interface ComponentsObject { readonly schemas?: Record; readonly securitySchemes?: Record; readonly parameters?: Record; } declare const ParseError_base: new = {}>(args: import("effect/Types").Equals extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & { readonly _tag: "ParseError"; } & Readonly; /** * @since 1.0.0 * @category Errors */ export declare class ParseError extends ParseError_base<{ readonly message: string; }> { } /** * Parse an OpenAPI 3.1 specification from a JSON or YAML string * * @since 1.0.0 * @category Parsing */ export declare const parse: (content: string) => Effect.Effect; export {}; //# sourceMappingURL=OpenApiParser.d.ts.map