/**
 * @license
 * Copyright 2017 JBoss Inc
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { ChangeDetectorRef } from "@angular/core";
import { OasDocument, OasOperation, OasSecurityRequirement } from "apicurio-data-models";
import { CommandService } from "../../../_services/command.service";
import { EditorsService } from "../../../_services/editors.service";
import { SecurityRequirementEditorEvent } from "../../editors/security-requirement-editor.component";
import { AbstractBaseComponent } from "../../common/base-component";
import { DocumentService } from "../../../_services/document.service";
import { SelectionService } from "../../../_services/selection.service";
export declare class SecurityRequirementsSectionComponent extends AbstractBaseComponent {
    private changeDetectorRef;
    private documentService;
    private commandService;
    private editorsService;
    private selectionService;
    parent: OasDocument | OasOperation;
    global: boolean;
    showSectionBody: boolean;
    constructor(changeDetectorRef: ChangeDetectorRef, documentService: DocumentService, commandService: CommandService, editorsService: EditorsService, selectionService: SelectionService);
    ngOnInit(): void;
    contextHelp(): string;
    /**
     * Called when the user adds a new security requirement.
     * @param event
     */
    addSecurityRequirement(event: SecurityRequirementEditorEvent): void;
    /**
     * Called when the user changes an existing Security Requirement.
     * @param event
     */
    changeSecurityRequirement(event: SecurityRequirementEditorEvent): void;
    /**
     * Deletes a security requirement.
     * @param requirement
     */
    deleteSecurityRequirement(requirement: OasSecurityRequirement): void;
    /**
     * Returns a summary of the requirement.
     * @param requirement
     */
    securityRequirementSummary(requirement: OasSecurityRequirement): string;
    /**
     * Opens the security requirement editor for adding or editing a security requirement.
     * @param requirement
     */
    openSecurityRequirementEditor(requirement?: OasSecurityRequirement): void;
    /**
     * Returns true if there is at least one security requirement defined.
     */
    hasSecurityRequirements(): boolean;
    /**
     * Returns all defined security requirements.
     */
    securityRequirements(): OasSecurityRequirement[];
    securityRequirementsPath(): string;
    /**
     * Returns the set of scopes (if any) needed for a particular requirement+scheme name.
     * @param requirement
     * @param schemeName
     */
    requirementScopes(requirement: OasSecurityRequirement, schemeName: string): string;
    /**
     * Returns true if the given security requirement represents "anonymous" access (no security).
     * @param requirement
     */
    isAnonSecurity(requirement: OasSecurityRequirement): boolean;
    /**
     * Called when the user clicks the trash icon to delete all the servers.
     */
    deleteAllSecurityRequirements(): void;
}
