import { HarnessEnvironment, TestElement, type ComponentHarness, type HarnessQuery } from '@angular/cdk/testing';
import { type AutocompleteHarnessFilters, MatAutocompleteHarness } from '@angular/material/autocomplete/testing';
import { type ButtonHarnessFilters, MatButtonHarness } from '@angular/material/button/testing';
import { type ButtonToggleGroupHarnessFilters, MatButtonToggleGroupHarness } from '@angular/material/button-toggle/testing';
import { type CheckboxHarnessFilters, MatCheckboxHarness } from '@angular/material/checkbox/testing';
import { MatOptionHarness, type OptionHarnessFilters } from '@angular/material/core/testing';
import { type DatepickerInputHarnessFilters, MatDatepickerInputHarness } from '@angular/material/datepicker/testing';
import { type InputHarnessFilters, MatInputHarness } from '@angular/material/input/testing';
import { type ListItemHarnessFilters, type ListOptionHarnessFilters, MatListItemHarness, MatListOptionHarness, MatNavListHarness, MatNavListItemHarness, type NavListHarnessFilters, type NavListItemHarnessFilters } from '@angular/material/list/testing';
import { MatMenuHarness, MatMenuItemHarness, type MenuHarnessFilters, type MenuItemHarnessFilters } from '@angular/material/menu/testing';
import { MatRadioButtonHarness, MatRadioGroupHarness, type RadioButtonHarnessFilters, type RadioGroupHarnessFilters } from '@angular/material/radio/testing';
import { MatSelectHarness, type SelectHarnessFilters } from '@angular/material/select/testing';
import { MatSlideToggleHarness, type SlideToggleHarnessFilters } from '@angular/material/slide-toggle/testing';
export declare class CypressHarnessEnvironment extends HarnessEnvironment<Element> {
    /**
     * We need this to keep a reference to the document.
     * This is different to `rawRootElement` which is the root element
     * of the harness's environment.
     * (The harness's environment is more of a context)
     */
    private _documentRoot;
    constructor(rawRootElement: Element, { documentRoot }: {
        documentRoot: Element;
    });
    forceStabilize(): Promise<void>;
    waitForTasksOutsideAngular(): Promise<void>;
    protected getDocumentRoot(): Element;
    protected createTestElement(element: Element): TestElement;
    protected createEnvironment(element: Element): HarnessEnvironment<Element>;
    protected getAllRawElements(selector: string): Promise<Array<Element>>;
}
export type ChainableHarness<HARNESS> = Cypress.Chainable<HARNESS> & {
    [K in keyof HARNESS]: HARNESS[K] extends (...args: any) => any ? (...args: Parameters<HARNESS[K]>) => ChainableHarness<ReturnType<HARNESS[K]> extends Promise<infer RESULT> ? RESULT : HARNESS[K]> : HARNESS[K];
};
export declare const getHarness: <HARNESS extends ComponentHarness>(harnessQuery: HarnessQuery<HARNESS>) => ChainableHarness<HARNESS>;
export declare const getAllHarnesses: <HARNESS extends ComponentHarness>(query: HarnessQuery<HARNESS>) => ChainableHarness<ReadonlyArray<HARNESS>>;
export declare const getInputHarness: (filter?: InputHarnessFilters | string) => ChainableHarness<MatInputHarness>;
export declare const getAutocompleteHarness: (filter?: AutocompleteHarnessFilters | string) => ChainableHarness<MatAutocompleteHarness>;
export declare const getListOptionHarness: (filter?: ListOptionHarnessFilters | string) => ChainableHarness<MatListOptionHarness>;
export declare const getButtonHarness: (filter?: ButtonHarnessFilters | string) => ChainableHarness<MatButtonHarness>;
export declare const getButtonToggleGroupHarness: (filter?: ButtonToggleGroupHarnessFilters | string) => ChainableHarness<MatButtonToggleGroupHarness>;
export declare const getNavListHarness: (filter?: NavListHarnessFilters | string) => ChainableHarness<MatNavListHarness>;
export declare const getNavListItemHarness: (filter?: NavListItemHarnessFilters | string) => ChainableHarness<MatNavListItemHarness>;
export declare const getListItemHarness: (filter?: ListItemHarnessFilters | string) => ChainableHarness<MatListItemHarness>;
export declare const getCheckBoxHarness: (filter?: CheckboxHarnessFilters | string) => ChainableHarness<MatCheckboxHarness>;
export declare const getRadioButtonHarness: (filter?: RadioButtonHarnessFilters | string) => ChainableHarness<MatRadioButtonHarness>;
export declare const getRadioGroupHarness: (filter?: RadioGroupHarnessFilters | string) => ChainableHarness<MatRadioGroupHarness>;
export declare const getMenuHarness: (filter?: MenuHarnessFilters | string) => ChainableHarness<MatMenuHarness>;
export declare const getMenuItemHarness: (filter?: MenuItemHarnessFilters | string) => ChainableHarness<MatMenuItemHarness>;
export declare const getDatePickerInputHarness: (filter?: DatepickerInputHarnessFilters | string) => ChainableHarness<MatDatepickerInputHarness>;
export declare const getSlideToggleHarness: (filter?: SlideToggleHarnessFilters | string) => ChainableHarness<MatSlideToggleHarness>;
export declare const getSelectHarness: (filter?: SelectHarnessFilters | string) => ChainableHarness<MatSelectHarness>;
export declare const getOptionHarness: (filter?: OptionHarnessFilters | string) => ChainableHarness<MatOptionHarness>;
