import type { OasRef } from '../ref/Ref.js'; import type { OpenAPIV3 } from 'openapi-types'; export type SecuritySchemeFields = HttpSecuritySchemeFields | ApiKeySecuritySchemeFields | OAuth2SecuritySchemeFields | OpenIdSecuritySchemeFields; export type HttpSecuritySchemeFields = { description?: string; scheme: string; bearerFormat?: string; }; export type ApiKeySecuritySchemeFields = { description?: string; name: string; in: 'header' | 'query' | 'cookie'; }; export type OAuth2SecuritySchemeFields = { description?: string; flows: { authorizationCode?: { authorizationUrl: string; tokenUrl: string; refreshUrl?: string | undefined; scopes: Record; }; clientCredentials?: { tokenUrl: string; refreshUrl?: string | undefined; scopes: Record; }; implicit?: { authorizationUrl: string; refreshUrl?: string | undefined; scopes: Record; }; password?: { tokenUrl: string; refreshUrl?: string | undefined; scopes: Record; }; }; }; export type OpenIdSecuritySchemeFields = { description?: string; openIdConnectUrl: string; }; export declare class OasHttpSecurityScheme { oasType: 'securityScheme'; type: 'http'; description: string | undefined; scheme: string; bearerFormat: string | undefined; constructor(fields: HttpSecuritySchemeFields); isRef(): this is OasRef<'securityScheme'>; resolve(): OasHttpSecurityScheme; resolveOnce(): OasHttpSecurityScheme; toJsonSchema(): OpenAPIV3.HttpSecurityScheme; } export declare class OasApiKeySecurityScheme { oasType: 'securityScheme'; type: 'apiKey'; description: string | undefined; name: string; location: 'query' | 'header' | 'cookie'; constructor(fields: ApiKeySecuritySchemeFields); isRef(): this is OasRef<'securityScheme'>; resolve(): OasApiKeySecurityScheme; resolveOnce(): OasApiKeySecurityScheme; toJsonSchema(): OpenAPIV3.ApiKeySecurityScheme; } export declare class OasOAuth2SecurityScheme { oasType: 'securityScheme'; type: 'oauth2'; description: string | undefined; flows: { authorizationCode?: { authorizationUrl: string; tokenUrl: string; refreshUrl?: string | undefined; scopes: Record; }; clientCredentials?: { tokenUrl: string; refreshUrl?: string | undefined; scopes: Record; }; implicit?: { authorizationUrl: string; refreshUrl?: string | undefined; scopes: Record; }; password?: { tokenUrl: string; refreshUrl?: string | undefined; scopes: Record; }; }; constructor(fields: OAuth2SecuritySchemeFields); isRef(): this is OasRef<'securityScheme'>; resolve(): OasOAuth2SecurityScheme; resolveOnce(): OasOAuth2SecurityScheme; toJsonSchema(): OpenAPIV3.OAuth2SecurityScheme; } export declare class OasOpenIdSecurityScheme { oasType: 'securityScheme'; type: 'openIdConnect'; description: string | undefined; openIdConnectUrl: string; constructor(fields: OpenIdSecuritySchemeFields); isRef(): this is OasRef<'securityScheme'>; resolve(): OasOpenIdSecurityScheme; resolveOnce(): OasOpenIdSecurityScheme; toJsonSchema(): OpenAPIV3.OpenIdSecurityScheme; } export type OasSecurityScheme = OasHttpSecurityScheme | OasApiKeySecurityScheme | OasOAuth2SecurityScheme | OasOpenIdSecurityScheme; //# sourceMappingURL=SecurityScheme.d.ts.map