import { OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { MatDialog } from '@angular/material/dialog';
import { AbstractComponent } from '../abstract.component';
import { AbstractService } from '../../providers/abstract.service';
import { Observable } from 'rxjs';
/**
 * @deprecated
 * */
export declare abstract class AbstractDetailsComponent<T> extends AbstractComponent<T> implements OnInit {
    service: AbstractService<T>;
    dialog: MatDialog;
    router: Router;
    route: ActivatedRoute;
    element: T;
    previousUrl: string;
    /**
     * override if param doesn't match with keyValue in service
     */
    pathParamName: string;
    get _pathParamName(): string;
    protected constructor(service: AbstractService<T>, dialog: MatDialog, router: Router, route: ActivatedRoute);
    /**
     * calls setPreviousUrl(), setPathParamName()
     * gets keyValue from route & emits it into getData
     */
    ngOnInit(): void;
    setPreviousUrl(): void;
    /**
     * calls getRequest(key) if requestInitialData != false
     * on response calls onSuccessfulDataInit()
     * on error - onDataInitError()
     * @param key: keyValue of element
     */
    getData(key: string): void;
    getRequest(key: any): Observable<T>;
    /**
     * puts API response into element;
     * then calls afterDataInit()
     * @param res - API response
     */
    onSuccessfulDataInit(res: T): void;
    openEdit(t?: T): void;
    onSuccessfulEdit(res: T): void;
    openDelete(t?: T): void;
    /**
     * calls back()
     * @param res: deleted element
     */
    onSuccessfulDelete(res: T): void;
    back(): void;
}
