import { Notification } from '@dvn/alaca/global/notifier';
import { ViewPlacement } from './app-config';
export declare class NotificationAction {
  notification: Notification;
  constructor(notification: Notification);
}
export declare class InvalidationAction {
  sourceViewId: string;
  targetViewId: string;
  data?: any;
  constructor(sourceViewId: string, targetViewId: string, data?: any);
}
export interface AppActionBase {
  type: 'navigation' | 'custom';
  params?: {
    [key: string]: any;
  };
}
export interface CustomAction extends AppActionBase {
  type: 'custom';
  direction: 'back' | 'forward';
  name?: string;
}
export interface NavigationAction extends AppActionBase {
  type: 'navigation';
  direction: 'back' | 'forward';
  name?: string;
  data?: any;
}
export interface NavigationActionBack extends NavigationAction {
  direction: 'back';
}
export interface NavigationActionForward extends NavigationAction {
  direction: 'forward';
  viewId?: string;
  url?: string;
  placement?: ViewPlacement;
  resetHistory?: boolean;
}
export declare type AppAction = CustomAction | NavigationActionBack | NavigationActionForward;
export interface UIAction<T> {
  ui: T;
  data?: AppAction;
}
