/// <reference types="lodash" />
import * as Models from './models';
import { ConfigService } from './config.service';
import { LoggerService } from './logger.service';
import { Dictionary } from 'lodash';
export declare type PaneName = "pane1" | "pane2";
export declare type PaneType = "single" | "split";
export interface ICustomActivatedRouteData {
    pane: number;
    paneType: PaneType;
    dynamicType?: ViewType.Object | ViewType.List;
}
export declare enum ViewType {
    Home = 0,
    Object = 1,
    List = 2,
    Error = 3,
    Recent = 4,
    Attachment = 5,
    ApplicationProperties = 6,
    MultiLineDialog = 7,
}
export declare enum CollectionViewState {
    Summary = 0,
    List = 1,
    Table = 2,
}
export declare enum ApplicationMode {
    Gemini = 0,
    Cicero = 1,
}
export declare enum InteractionMode {
    View = 0,
    Edit = 1,
    Transient = 2,
    Form = 3,
    NotPersistent = 4,
}
export declare class RouteData {
    private readonly configService;
    private readonly loggerService;
    constructor(configService: ConfigService, loggerService: LoggerService);
    pane1: PaneRouteData;
    pane2: PaneRouteData;
    pane: (pane: Pane) => PaneRouteData;
}
export declare enum Pane {
    Pane1 = 1,
    Pane2 = 2,
}
export declare function getOtherPane(paneId: Pane): Pane;
export declare class PaneRouteData {
    paneId: Pane;
    private readonly doUrlValidation;
    private readonly loggerService;
    constructor(paneId: Pane, doUrlValidation: boolean, loggerService: LoggerService);
    rawParms: Dictionary<string>;
    rawParmsWithoutReload: Dictionary<string>;
    location: ViewType;
    objectId: string;
    menuId: string;
    collections: Dictionary<CollectionViewState>;
    selectedCollectionItems: Dictionary<boolean[]>;
    actionsOpen: string;
    actionId: string;
    actionParams: Dictionary<Models.Value>;
    state: CollectionViewState;
    dialogId: string;
    dialogFields: Dictionary<Models.Value>;
    page: number;
    pageSize: number;
    interactionMode: InteractionMode;
    errorCategory: Models.ErrorCategory;
    attachmentId: string;
    private validatingUrl;
    isValid(name: string): void;
    private isNull;
    private isNotNull;
    private isLength0;
    private isEmptyMap;
    private assertMustBe(context, name, contextCondition, valueCondition);
    assertMustBeEmptyOutsideContext(context: string, name: string): void;
    assertMustBeNullOutsideContext(context: string, name: string): void;
    assertMustBeNullInContext(context: string, name: string): void;
    assertMustBeZeroLengthInContext(context: string, name: string): void;
    validate(url: string): void;
    isEqual(other: PaneRouteData): boolean;
    isEqualIgnoringReload(other: PaneRouteData): boolean;
}
