import { StateContext, Store } from '@ngxs/store';
import { ApplicationActions } from './application.actions';
import { ToastActions } from './application.actions.toast';
import { ToastService } from '../../../modules/rbk-utils/misc/toast.service';
import * as i0 from "@angular/core";
export interface ApplicationStateModel {
    globalIsLoading: boolean;
    localIsLoading: string[];
    isNgRxInitializedOnClient: boolean;
    logInfo: LogInfo;
}
export interface LogInfo {
    applicationArea: string;
    applicationLayer: string;
    applicationVersion: string;
    extraData: string;
}
export declare const getInitialApplicationState: () => ApplicationStateModel;
export declare const getCleanApplicationState: () => ApplicationStateModel;
export declare class ApplicationState {
    private toastService;
    private store;
    constructor(toastService: ToastService, store: Store);
    handleErrorWithDialog$(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.HandleHttpErrorWithDialog): Promise<void>;
    handleErrorWithToast$(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.HandleHttpErrorWithToast): Promise<void>;
    startLoading$(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.StartGlobalLoading): void;
    stopLoading$(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.StopGlobalLoading): void;
    pushLocalLoading$(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.PushLocalLoading): void;
    popLocalLoading$(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.PopLocalLoading): void;
    logout(ctx: StateContext<ApplicationStateModel>): void;
    showToastMessage(ctx: StateContext<ApplicationStateModel>, action: ToastActions.Custom): void;
    showToastSuccessMessage(ctx: StateContext<ApplicationStateModel>, action: ToastActions.Success): void;
    showToastErrorMessage(ctx: StateContext<ApplicationStateModel>, action: ToastActions.Error): void;
    showToastInfoMessage(ctx: StateContext<ApplicationStateModel>, action: ToastActions.Info): void;
    showToastWarningMessage(ctx: StateContext<ApplicationStateModel>, action: ToastActions.Warning): void;
    setRequiredDatabaseActions(ctx: StateContext<ApplicationStateModel>): void;
    setLogInfo(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.SetLogInfo): void;
    setArea(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.SetLogApplicatinArea): void;
    setExtraData(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.SetLogExtraData): void;
    setApplicationAreaAndExtraData(ctx: StateContext<ApplicationStateModel>, action: ApplicationActions.SetLogApplicationAreaAndExtraData): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ApplicationState, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ApplicationState>;
}
