/*!
 * Copyright 2020 VMware, Inc.
 * SPDX-License-Identifier: BSD-2-Clause
 */
import { DebugElement, Type } from '@angular/core';
import { ComponentFixture } from '@angular/core/testing';
import { BaseWidgetObject, FindableWidget, FindElementOptions } from '../widget-object';
import { TestElement } from './angular-widget-object-element';
/**
 * Adds Angular specific options for finding widgets
 */
export interface FindAngularWidgetOptions extends FindElementOptions {
    ancestor?: DebugElement;
}
/**
 * Knows how to find and instantiate Angular Widgets objects.
 */
export declare class AngularWidgetObjectFinder<H = unknown> {
    /**
     * We don't care or could possibly know the type of fixture
     */
    private fixture;
    /**
     * If you need direct access to manipulate the host
     */
    hostComponent: H;
    /**
     * @param arg The host component to be created as the root of the tests's fixture or its creator, in which
     * case, it will be created.
     */
    constructor(arg: Type<H> | ComponentFixture<H>);
    /**
     * Finds a single widget object
     *
     * @param widgetConstructor - The constructor of the widget to use
     * @throws An error if the widget is not found or if there are multiple instances
     */
    find<W extends BaseWidgetObject<TestElement>>(widgetConstructor: FindableWidget<TestElement, W>, findOptions?: FindAngularWidgetOptions): W;
    /**
     * Runs a change detection cycle.
     */
    detectChanges(): void;
}
