/**
 * Centralized OpenAPI type definitions and utilities for both OpenAPI 3.0 and 3.1 support
 */
import { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
export type OpenAPIObject = OpenAPIV3.Document | OpenAPIV3_1.Document;
export type OperationObject = OpenAPIV3.OperationObject | OpenAPIV3_1.OperationObject;
export type PathsObject = OpenAPIV3.PathsObject | OpenAPIV3_1.PathsObject;
export type PathItemObject = OpenAPIV3.PathItemObject | OpenAPIV3_1.PathItemObject;
export type ReferenceObject = OpenAPIV3.ReferenceObject | OpenAPIV3_1.ReferenceObject;
export type SchemaObject = OpenAPIV3.SchemaObject | OpenAPIV3_1.SchemaObject;
export type ParameterObject = OpenAPIV3.ParameterObject | OpenAPIV3_1.ParameterObject;
export type RequestBodyObject = OpenAPIV3.RequestBodyObject | OpenAPIV3_1.RequestBodyObject;
export type ResponseObject = OpenAPIV3.ResponseObject | OpenAPIV3_1.ResponseObject;
export type MediaTypeObject = OpenAPIV3.MediaTypeObject | OpenAPIV3_1.MediaTypeObject;
export type SecuritySchemeObject = OpenAPIV3.SecuritySchemeObject | OpenAPIV3_1.SecuritySchemeObject;
export type SecurityRequirementObject = OpenAPIV3.SecurityRequirementObject | OpenAPIV3_1.SecurityRequirementObject;
export type TagObject = OpenAPIV3.TagObject | OpenAPIV3_1.TagObject;
export type ContentObject = {
    [media: string]: MediaTypeObject;
};
export type ArraySchemaObject = OpenAPIV3.ArraySchemaObject | OpenAPIV3_1.ArraySchemaObject;
export type ApiKeySecurityScheme = OpenAPIV3.ApiKeySecurityScheme | OpenAPIV3_1.ApiKeySecurityScheme;
/**
 * Type guard to check if an object is a ReferenceObject
 */
export declare function isReferenceObject(obj: any): obj is ReferenceObject;
/**
 * Type guard to check if a schema is an ArraySchemaObject
 */
export declare function isArraySchemaObject(obj: SchemaObject): obj is ArraySchemaObject;
/**
 * Checks if a schema is nullable (compatible with both OpenAPI 3.0 and 3.1)
 * OpenAPI 3.0 uses 'nullable: true', OpenAPI 3.1 uses 'type: [T, "null"]'
 */
export declare function isNullable(schema: SchemaObject): boolean;
/**
 * Safely extracts the type from a schema object
 */
export declare function getSchemaType(schema: SchemaObject): string | string[];
export { OpenAPIV3, OpenAPIV3_1 };
