import { Router } from 'aurelia-router';
import { CustomLogger } from '../modules/custom-logger';
import { EventAggregator } from 'aurelia-event-aggregator';
import { I18N } from 'aurelia-i18n';
import { Box } from '../modules/box';
import { Datacontext } from '../data/data-context';
import { Config } from '../config';
import { AuthService } from '../security/auth-service';
import { DisposableViewModelBase } from './disposable-view-model-base';
export declare abstract class ViewModelBase extends DisposableViewModelBase {
    router: Router;
    logger: CustomLogger;
    authService: AuthService;
    eventAggregator: EventAggregator;
    abstract get ribbonHeaderText(): string;
    abstract get ressourceName(): string;
    showLoadingSpinner: boolean;
    i18n: I18N;
    box: Box;
    isDialogView: boolean;
    datacontext: Datacontext;
    config: Config;
    constructor(router: Router, logger: CustomLogger);
    activate(params: any): Promise<void>;
    navigateBack(): void;
    determineActivationStrategy(): "replace";
    canDeactivate(): any;
    entityMatcher: (a: any, b: any) => boolean;
    log(message: string, data: any, showToast: boolean, translationOptions?: any): void;
    logError(message: string, error: any, showToast?: boolean, translationOptions?: any): void;
    navigateTo(url: string, options?: {
        trigger: boolean;
        replace: boolean;
    }): void;
    get canAdd(): boolean;
    get canDelete(): boolean;
    get canUpdate(): boolean;
}
