/**
 * @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 { ICommand, Oas20SchemaDefinition, Oas30SchemaDefinition, OasSchema, SimplifiedType } from "apicurio-data-models";
import { SourceFormComponent } from "./source-form.base";
import { CloneDefinitionDialogComponent } from "../dialogs/clone-definition.component";
import { SelectionService } from "../../_services/selection.service";
import { CommandService } from "../../_services/command.service";
import { DocumentService } from "../../_services/document.service";
import { EditorsService } from "../../_services/editors.service";
import { RenameEntityDialogComponent, RenameEntityEvent } from "../dialogs/rename-entity.component";
import { DropDownOption } from "../../../../../../components/common/drop-down.component";
import { ApiCatalogService } from "../../_services/api-catalog.service";
export declare class DefinitionFormComponent extends SourceFormComponent<OasSchema> {
    protected changeDetectorRef: ChangeDetectorRef;
    protected selectionService: SelectionService;
    protected commandService: CommandService;
    protected documentService: DocumentService;
    private editors;
    private catalog;
    private _stype;
    private _definition;
    set definition(definition: Oas20SchemaDefinition | Oas30SchemaDefinition);
    get definition(): Oas20SchemaDefinition | Oas30SchemaDefinition;
    cloneDefinitionDialog: CloneDefinitionDialogComponent;
    renameDefinitionDialog: RenameEntityDialogComponent;
    /**
     * C'tor.
     * @param changeDetectorRef
     * @param selectionService
     * @param commandService
     * @param documentService
     * @param editors
     * @param catalog
     */
    constructor(changeDetectorRef: ChangeDetectorRef, selectionService: SelectionService, commandService: CommandService, documentService: DocumentService, editors: EditorsService, catalog: ApiCatalogService);
    definitionName(): string;
    isImported(): boolean;
    protected createEmptyNodeForSource(): Oas20SchemaDefinition | Oas30SchemaDefinition;
    protected createReplaceNodeCommand(node: Oas20SchemaDefinition | Oas30SchemaDefinition): ICommand;
    delete(): void;
    clone(modalData?: any): void;
    rename(event?: RenameEntityEvent): void;
    enableSourceMode(): void;
    /**
     * Figures out the definition name.
     * @param schemaDef
     */
    protected _definitionName(schemaDef: Oas20SchemaDefinition | Oas30SchemaDefinition): string;
    isObject(): boolean;
    simpleType(): SimplifiedType;
    protected onDocumentChange(): void;
    changeSimpleType(newType: SimplifiedType): void;
    inheritanceType(): string;
    inheritanceTypeOptions(): DropDownOption[];
    isInheritanceEnabled(): boolean;
    setInheritanceType(newInheritanceType: string): void;
    /**
     * When the definition is an import, returns the content for the imported entity.
     */
    referenceContent(): string;
    refLink(): string;
    private getRefId;
}
