export const namespace = "TypeSpec.OpenAPI";

export { convertOpenAPI3Document } from "./cli/actions/convert/convert.js";
export { $oneOf, $useRef, getOneOf, getRef } from "./decorators.js";
export { $lib } from "./lib.js";
export {
  $onEmit,
  getOpenAPI3,
  resolveOptions,
  type ResolvedOpenAPI3EmitterOptions,
} from "./openapi.js";

export type {
  CommonOpenAPI3Schema,
  Extensions,
  HttpMethod,
  JsonSchema,
  JsonSchemaType,
  JsonType,
  OpenAPI3ApiKeySecurityScheme,
  OpenAPI3AuthorizationCodeOAuthFlow,
  OpenAPI3ClientCredentialsFlow,
  OpenAPI3Components,
  OpenAPI3Discriminator,
  OpenAPI3Document,
  OpenAPI3Encoding,
  OpenAPI3Example,
  OpenAPI3ExternalDocs,
  OpenAPI3Header,
  OpenAPI3HeaderParameter,
  OpenAPI3HttpSecurityScheme,
  OpenAPI3ImplicitOAuthFlow,
  OpenAPI3Info,
  OpenAPI3Link,
  OpenAPI3MediaType,
  OpenAPI3OAuth2Flow,
  OpenAPI3OAuth2SecurityScheme,
  OpenAPI3OAuthFlows,
  OpenAPI3OpenIdConnectSecurityScheme,
  OpenAPI3Operation,
  OpenAPI3Parameter,
  OpenAPI3ParameterBase,
  OpenAPI3ParameterType,
  OpenAPI3PasswordOAuthFlow,
  OpenAPI3PathItem,
  OpenAPI3PathParameter,
  OpenAPI3QueryParameter,
  OpenAPI3RequestBody,
  OpenAPI3Response,
  OpenAPI3Responses,
  OpenAPI3Schema,
  OpenAPI3SecurityScheme,
  OpenAPI3SecuritySchemeBase,
  OpenAPI3Server,
  OpenAPI3ServerVariable,
  OpenAPI3ServiceRecord,
  OpenAPI3StatusCode,
  OpenAPI3Tag,
  OpenAPI3UnversionedServiceRecord,
  OpenAPI3VersionedDocumentRecord,
  OpenAPI3VersionedServiceRecord,
  OpenAPI3XmlSchema,
  OpenAPIApiKeySecurityScheme3_2,
  OpenAPIComponents3_1,
  OpenAPIComponents3_2,
  OpenAPICookieParameter3_2,
  OpenAPIDeviceAuthorizationFlow3_2,
  OpenAPIDocument3_1,
  OpenAPIDocument3_2,
  OpenAPIEncoding3_2,
  OpenAPIExample3_2,
  OpenAPIHeaderParameter3_2,
  OpenAPIHttpMethod3_2,
  OpenAPIHttpSecurityScheme3_2,
  OpenAPIMediaType3_2,
  OpenAPIOAuth2SecurityScheme3_2,
  OpenAPIOAuthFlows3_2,
  OpenAPIOpenIdConnectSecurityScheme3_2,
  OpenAPIOperation3_2,
  OpenAPIParameter3_2,
  OpenAPIParameterBase3_2,
  OpenAPIParameterType3_2,
  OpenAPIPathItem3_2,
  OpenAPIPathParameter3_2,
  OpenAPIQueryParameter3_2,
  OpenAPIQueryStringParameter3_2,
  OpenAPIRequestBody3_2,
  OpenAPIResponse3_2,
  OpenAPIResponses3_2,
  OpenAPISchema3_1,
  OpenAPISchema3_2,
  OpenAPISecurityScheme3_2,
  OpenAPISecuritySchemeBase3_2,
  OpenAPIServer3_2,
  OpenAPITag3_2,
  OpenAPIXmlSchema3_2,
  Ref,
  Refable,
  SupportedOpenAPIDocuments,
  SupportedOpenAPISchema,
} from "./types.js";

/** @internal */
export { $decorators } from "./tsp-index.js";
