import { Document } from '../../core/models/Document';
import { ISecurityRequirementParent } from '../../core/models/common/ISecurityRequirementParent';
import { SecurityRequirement } from '../../core/models/common/SecurityRequirement';
/**
 * Models an OpenAPI document.
 * @author eric.wittmann@gmail.com
 * @class
 * @extends Document
 */
export declare abstract class OasDocument extends Document implements ISecurityRequirementParent {
    paths: OasPaths;
    security: Array<SecurityRequirement>;
    /**
     * Creates an OAS Paths object.
     * @return {OasPaths}
     */
    abstract createPaths(): OasPaths;
    /**
     * @see io.apicurio.datamodels.core.models.common.ISecurityRequirementParent#createSecurityRequirement()
     * @return {OasSecurityRequirement}
     */
    abstract createSecurityRequirement(): OasSecurityRequirement;
    /**
     * @see io.apicurio.datamodels.core.models.common.ISecurityRequirementParent#addSecurityRequirement(io.apicurio.datamodels.core.models.common.SecurityRequirement)
     * @param {SecurityRequirement} securityRequirement
     * @return {SecurityRequirement}
     */
    addSecurityRequirement(securityRequirement: SecurityRequirement): SecurityRequirement;
    /**
     * @see io.apicurio.datamodels.core.models.common.ISecurityRequirementParent#getSecurityRequirements()
     * @return {SecurityRequirement[]}
     */
    getSecurityRequirements(): Array<SecurityRequirement>;
    /**
     * Returns true if the document is an OpenAPI/Swagger 2.0 document.
     * @return {boolean}
     */
    is2xDocument(): boolean;
    /**
     * Returns true if the document is an OpenAPI 3.x document.
     * @return {boolean}
     */
    is3xDocument(): boolean;
    constructor();
}
import { OasSecurityRequirement } from './OasSecurityRequirement';
import { OasPaths } from './OasPaths';
