/**
 * @fileoverview
 * Test mocks that can be used by consumers of this library.
 * If you do not want to export a mock, add it to `common-mocks.spec.ts` instead.
 */
import { ComponentRef, EventEmitter, PipeTransform, Type } from '@angular/core';
import { Subject } from 'rxjs';
import { DialogResult, DialogOptions } from '../../display/dialog/dialog-types';
import { DialogContent } from '../../display/dialog/dialog-content';
import { Router } from '@angular/router';
import { RouterHelper } from '../../core/router-helper.service';
import * as i0 from "@angular/core";
/**
 * Mock dialog based on the content type, used to test open and close functionality
 * @deprecated Most components that need a dialog should use `dialogService.openDialog()`, which is much easier to test
 *               and does not require the use of this class. It is included for legacy test support only.
 */
export declare class MockDialog<T> {
    size?: number | 'xsmall' | 'small' | 'medium' | 'large';
    opened: EventEmitter<any>;
    closed: EventEmitter<any>;
    displayAsPanel: boolean;
    componentRef: ComponentRef<any>;
    lastContext?: T;
    open(component: Type<DialogContent<T>>, context?: T, options?: DialogOptions): Promise<void>;
    close(result?: DialogResult<T>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MockDialog<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MockDialog<any>, never, never, { "size": { "alias": "size"; "required": false; }; }, { "opened": "opened"; "closed": "closed"; }, never, never, false, never>;
}
/**
 * Mocked dialog content to test save and cancel
 */
export declare class MockDialogContent<T> implements DialogContent<T> {
    dialogId: string;
    openArg: T | undefined;
    onOpen: (openContext?: T | undefined) => void;
    onDialogSave: EventEmitter<T>;
    onDialogCancel: EventEmitter<void>;
    destroyed: Subject<any>;
}
/**
 * Mocked DateDisplayPipe
 */
export declare class MockDateDisplayPipe implements PipeTransform {
    transform(value?: Date | string | null): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<MockDateDisplayPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<MockDateDisplayPipe, "dateDisplay", false>;
}
/** Return a Router spy object that can be used as a mock in tests.*/
export declare function mockRouterFactory(): jasmine.SpyObj<Router>;
/**
 * Mock {@link ActivatedRoute} for spying on route and query parameters
 *
 * @example <caption>Declare!</caption>
 * let mockActivatedRoute: MockActivatedRoute = new MockActivatedRoute();
 * let paramMapSpy: jasmine.Spy;
 * let queryParamMapSpy: jasmine.Spy;
 * @example <caption>Provide!</caption>
 * providers: [
 *      ...
 *      { provide: ActivatedRoute, useValue: mockActivatedRoute },
 *      ...
 *    ]
 * @example <caption>Spy!</caption>
 * paramMapSpy = spyOn(mockActivatedRoute.snapshot.paramMap, 'get');
 * queryParamMapSpy = spyOn(mockActivatedRoute.snapshot.queryParamMap, 'get');
 * @example <caption>Manipulate!</caption>
 * paramMapSpy.and.returnValue("1234");
 * queryParamMapSpy.and.returnValue("4321");
 */
export declare class MockActivatedRoute {
    snapshot: {
        paramMap: {
            get: (name: string) => string | null;
        };
        queryParamMap: {
            get: (name: string) => string | null;
            getAll: (name: string) => string[];
            has: (name: string) => boolean;
        };
        routeConfig: {};
    };
    paramMap: Subject<unknown>;
    queryParamMap: Subject<unknown>;
    routeConfig: {};
    static ɵfac: i0.ɵɵFactoryDeclaration<MockActivatedRoute, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MockActivatedRoute>;
}
/** Return a @see RouterHelper spy object that can be used as a mock in tests */
export declare function mockRouterHelperFactory(): jasmine.SpyObj<RouterHelper>;
