import { OpenAPIV3 } from "openapi-types";
export declare function isReferenceObject(obj: unknown): obj is OpenAPIV3.ReferenceObject;
export declare function isSchemaObject(schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject): schema is OpenAPIV3.SchemaObject;
export declare function isArraySchemaObject(schema: OpenAPIV3.SchemaObject): schema is OpenAPIV3.ArraySchemaObject;
export declare function inferRequiredSchema(schema: OpenAPIV3.SchemaObject): {
    noRequiredOnlyAllof: (OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject)[];
    composedRequiredSchema: {
        properties: {
            [propertyName: string]: OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject;
        };
        type: "object";
        required: string[];
    };
    patchRequiredSchemaInLoop: (prop: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject, getSchemaByRef: (ref: string) => OpenAPIV3.SchemaObject) => void;
};
