import { Observable } from 'rxjs';
import { Store } from '@ngrx/store';
import { TaurusObject } from '../../../common';
import { StoreState } from '../../ngrx';
import { RouterState, RouteState } from '../model';
import * as i0 from "@angular/core";
/**
 * ** Router Service.
 */
export declare abstract class RouterService extends TaurusObject {
    protected static _routerState: RouterState;
    /**
     * ** Will return current Router.
     */
    static get(): RouterState;
    /**
     * ** Will return current Route State.
     */
    static getState(): RouteState;
    /**
     * ** Will return Observable with NgRx Route State.
     */
    abstract get(): Observable<RouterState>;
    /**
     * ** Will return Observable with Route State.
     */
    abstract getState(): Observable<RouteState>;
    /**
     * ** Will initialize service.
     */
    abstract initialize(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RouterService, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<RouterService, never, never, {}, {}, never>;
}
/**
 * @inheritDoc
 */
export declare class RouterServiceImpl extends RouterService {
    private readonly store$;
    constructor(store$: Store<StoreState>);
    /**
     * @inheritDoc
     */
    get(): Observable<RouterState>;
    /**
     * @inheritDoc
     */
    getState(): Observable<RouteState>;
    /**
     * @inheritDoc
     */
    initialize(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RouterServiceImpl, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RouterServiceImpl>;
}
