/**
 * @license
 * Copyright 2018 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 { CombinedAllNodeVisitor, Node, ValidationProblem } from "apicurio-data-models";
import { ProblemsService } from "../../_services/problems.service";
import { DocumentService } from "../../_services/document.service";
import { AbstractBaseComponent } from "./base-component";
import { SelectionService } from "../../_services/selection.service";
export declare class ValidationAggregateComponent extends AbstractBaseComponent {
    private changeDetectorRef;
    private documentService;
    private problemsService;
    private selectionService;
    protected _models: Node[];
    set models(models: Node[]);
    get models(): Node[];
    properties: string[];
    codes: string[];
    shallow: boolean;
    debug: boolean;
    private _open;
    left: string;
    top: string;
    private _problems;
    constructor(changeDetectorRef: ChangeDetectorRef, documentService: DocumentService, problemsService: ProblemsService, selectionService: SelectionService);
    protected onDocumentChange(): void;
    onDocumentClick(event: MouseEvent): void;
    onDocumentScroll(event: MouseEvent): void;
    onWindowResize(event: MouseEvent): void;
    open(event: MouseEvent): void;
    close(): void;
    isOpen(): boolean;
    /**
     * Called whenever the user presses a key.
     * @param event
     */
    onGlobalKeyDown(event: KeyboardEvent): void;
    hasProblems(): boolean;
    matchingProblems(): ValidationProblem[];
    iconFor(problem: ValidationProblem): string;
    summaryFor(problem: ValidationProblem): string;
    goTo(problem: ValidationProblem, event: MouseEvent): void;
    protected log(message: string): void;
}
export declare class ProblemFinder extends CombinedAllNodeVisitor {
    private properties;
    private codes;
    private problems;
    constructor(properties: string[], codes: string[]);
    getProblems(): ValidationProblem[];
    visitNode(node: Node): void;
    private accepts;
}
