/**
 * @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, SimpleChanges } from "@angular/core";
import { Node, Oas20Operation, Oas20Parameter, Oas30Operation, Oas30RequestBody, SimplifiedType } from "apicurio-data-models";
import { CommandService } from "../../../../_services/command.service";
import { ParameterData } from "../../../editors/parameter-editor.component";
import { EditorsService } from "../../../../_services/editors.service";
import { DropDownOption } from "../../../../../../../../components/common/drop-down.component";
import { AbstractBaseComponent } from "../../../common/base-component";
import { DocumentService } from "../../../../_services/document.service";
import { SelectionService } from "../../../../_services/selection.service";
import { RenameEntityDialogComponent, RenameEntityEvent } from "../../../dialogs/rename-entity.component";
export declare class RequestBodySectionComponent extends AbstractBaseComponent {
    private changeDetectorRef;
    private documentService;
    private commandService;
    private editors;
    private selectionService;
    operation: Oas20Operation | Oas30Operation;
    renameFormDataDialog: RenameEntityDialogComponent;
    showRequestBody: boolean;
    constructor(changeDetectorRef: ChangeDetectorRef, documentService: DocumentService, commandService: CommandService, editors: EditorsService, selectionService: SelectionService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    is20Document(): boolean;
    is30Document(): boolean;
    requestBodyPaths(): string | string[];
    openAddFormDataParamEditor(): void;
    addFormDataParam(data: ParameterData): void;
    parameters(paramType: string): Oas20Parameter[];
    bodyParam(): Oas20Parameter;
    hasBodyParam(): boolean;
    hasRequestBody(): boolean;
    hasAnything(): boolean;
    formDataParameters(): Oas20Parameter[];
    hasFormDataParams(): boolean;
    hasParameters(type: string): boolean;
    deleteRequestBody(): void;
    requestBodyParams(): Oas20Parameter[];
    validationModels(): Node[];
    addRequestBody(): void;
    bodyDescription(): string;
    changeBodyDescription(newBodyDescription: string): void;
    requestBodyType(): SimplifiedType;
    changeRequestBodyType(newType: SimplifiedType): void;
    deleteParam(parameter: Oas20Parameter): void;
    requestBodyRequiredOptions(): DropDownOption[];
    requestBody(): Oas30RequestBody;
    changeRequestBodyRequired(value: string): void;
    /**
     * Opens the rename parameter dialog.
     * @param parameter
     */
    openRenameFormDataParameterDialog(parameter: Oas20Parameter): void;
    /**
     * Renames the parameter.
     * @param event
     */
    renameFormDataParameter(event: RenameEntityEvent): void;
}
