/**
 * @license
 * Copyright 2019 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 { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core";
import { ApiDefinition } from "../../../../models/api.model";
import { CodeEditorMode, CodeEditorTheme } from "../../../../components/common/code-editor.component";
/**
 * Base class for text editors like the GraphQL editor.
 */
export declare class TextEditorComponent {
}
export declare class GraphQLEditorComponent extends TextEditorComponent implements OnChanges, OnInit, OnDestroy {
    api: ApiDefinition;
    textChanged: EventEmitter<string>;
    sourceOriginal: string;
    sourceValue: string;
    sourceIsValid: boolean;
    /**
     * Called when the editor is initialized by angular.
     */
    ngOnInit(): void;
    /**
     * Called when angular destroys the editor component.
     */
    ngOnDestroy(): void;
    /**
     * Called when the @Input changes.
     * @param changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    sourceTheme(): CodeEditorTheme;
    sourceMode(): CodeEditorMode;
    isDirty(): boolean;
    /**
     * Called whenever the user presses a key.
     * @param event
     */
    onGlobalKeyDown(event: KeyboardEvent): void;
    /**
     * Called to get the current value in the editor.
     * @return
     */
    getValue(): ApiDefinition;
    /**
     * Called when the user clicks save.
     */
    saveSource(): void;
    /**
     * Called when the user clicks revert.
     */
    revertSource(): void;
    /**
     * Validates that the current source text is valid.
     */
    validate(): void;
}
