import { OnInit, Injector } from '@angular/core';
import { Location } from '@angular/common';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable, Subscription } from 'rxjs';
import { NotificationsService } from './services/notifications.service';
import { MessageType } from './services/message.type';
import * as i0 from "@angular/core";
export declare abstract class ModelViewComponent<T> implements OnInit {
    protected injector: Injector;
    autoload: boolean;
    _loadDataCount: number;
    _isLoadingData: boolean;
    _didLoadDataFailed: boolean;
    _didValidationFailed: boolean;
    model: T;
    modelId: any;
    messageText: string;
    messageType: MessageType;
    messageActionText: string;
    messageActionIcon: string;
    private modelObs;
    model$: Observable<any>;
    protected notifications: NotificationsService;
    protected router: Router;
    protected route: ActivatedRoute;
    protected location: Location;
    private loadObs;
    load: Observable<unknown>;
    private errorStatus;
    _loadSubcription: Subscription;
    constructor(injector: Injector);
    keyEvent(e: KeyboardEvent): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    loadData(): void;
    validParams(): boolean;
    subscribeRouteParams(): void;
    _subscribeLoadEvent(): void;
    protected onData(data: any): void;
    protected onError(xhr: any): void;
    setModel(model: T): void;
    abstract getDataService(): Observable<any>;
    /**
     * Determina si se debería o no mostrar el mensaje de cargando
     */
    shouldShowProgressView(): boolean;
    shouldShowErrorView(): boolean;
    shouldShowPageMessage(): boolean;
    print(): void;
    getErrorStatus(): number;
    getCurrentUrl(): string;
    getBaseHref(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ModelViewComponent<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ModelViewComponent<any>, never, never, {}, {}, never, never, true, never>;
}
