import { Observable } from 'rxjs';
import { BusMessage, MessageBus } from '../message-bus';
export declare class NavigationMessage extends BusMessage {
    static SourceKey: string;
    path: string;
    additionalMessage: string | undefined;
    constructor(key: string, path: string, additionalMessage?: string);
    static filter(bus: MessageBus): Observable<BusMessage>;
}
export declare class NavigationRequiresAuthenticationMessage extends NavigationMessage {
    static Key: string;
    constructor(path: string);
    static post(bus: MessageBus, path: string): void;
}
export declare class NavigationRequiresRoleMessage extends NavigationMessage {
    roleKey: string;
    static Key: string;
    constructor(path: string, roleKey: string);
    static post(bus: MessageBus, path: string, roleKey: string): void;
}
export declare class NavigationRequiresPermissionMessage extends NavigationMessage {
    permissionKey: string;
    static SubKey: string;
    constructor(path: string, permissionKey: string);
    static post(bus: MessageBus, path: string, roleKey: string): void;
}
