import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { AuthService } from '@igo2/auth';
import { ActionStore, ActionbarMode } from '@igo2/common/action';
import { ConfigService } from '@igo2/core/config';
import { LanguageService } from '@igo2/core/language';
import { StorageService } from '@igo2/core/storage';
import type { IgoMap } from '@igo2/geo';
import { BehaviorSubject, ReplaySubject } from 'rxjs';
import { ContextProfils, ContextServiceOptions, ContextUserPermission, ContextsList, DetailedContext } from '../shared/context.interface';
import { ContextListControlsEnum } from './context-list.enum';
import * as i0 from "@angular/core";
export declare class ContextListComponent implements OnInit, OnDestroy {
    private cdRef;
    configService: ConfigService;
    auth: AuthService;
    private dialog;
    private languageService;
    private storageService;
    contextConfigs: ContextServiceOptions;
    private contextsInitial;
    contexts$: BehaviorSubject<ContextsList>;
    change$: ReplaySubject<void>;
    private change$$;
    get contexts(): ContextsList;
    set contexts(value: ContextsList);
    private _contexts;
    selectedContext: DetailedContext;
    map: IgoMap;
    get defaultContextId(): string;
    set defaultContextId(value: string);
    private _defaultContextId;
    collapsed: {
        contextScope: any;
    }[];
    select: EventEmitter<DetailedContext>;
    unselect: EventEmitter<DetailedContext>;
    edit: EventEmitter<DetailedContext>;
    delete: EventEmitter<DetailedContext>;
    save: EventEmitter<DetailedContext>;
    clone: EventEmitter<DetailedContext>;
    create: EventEmitter<{
        title: string;
        empty: boolean;
    }>;
    hide: EventEmitter<DetailedContext>;
    show: EventEmitter<DetailedContext>;
    showHiddenContexts: EventEmitter<boolean>;
    favorite: EventEmitter<DetailedContext>;
    managePermissions: EventEmitter<DetailedContext>;
    manageTools: EventEmitter<DetailedContext>;
    filterPermissionsChanged: EventEmitter<ContextUserPermission[]>;
    titleMapping: {
        ours: string;
        shared: string;
        public: string;
    };
    users: ContextProfils[];
    permissions: ContextUserPermission[];
    actionStore: ActionStore;
    actionbarMode: ActionbarMode;
    color: string;
    showHidden: boolean;
    /**
     * Context filter term
     */
    set term(value: string);
    get term(): string;
    _term: string;
    get sortedAlpha(): boolean;
    set sortedAlpha(value: boolean);
    private _sortedAlpha;
    showContextFilter: ContextListControlsEnum;
    thresholdToFilter: number;
    get isEmpty(): boolean;
    constructor(cdRef: ChangeDetectorRef, configService: ConfigService, auth: AuthService, dialog: MatDialog, languageService: LanguageService, storageService: StorageService);
    ngOnInit(): void;
    private next;
    private filterContextsList;
    ngOnDestroy(): void;
    showFilter(): boolean;
    sortContextsList(contexts: ContextsList): any;
    normalize(str: string): string;
    toggleSort(): void;
    clearFilter(): void;
    createContext(empty?: boolean): void;
    getPermission(user?: any): ContextUserPermission;
    handleToggleCategory(user: any, parent?: any): void;
    hideContext(context: DetailedContext): void;
    showContext(context: DetailedContext): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContextListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContextListComponent, "igo-context-list", never, { "contexts": { "alias": "contexts"; "required": false; }; "selectedContext": { "alias": "selectedContext"; "required": false; }; "map": { "alias": "map"; "required": false; }; "defaultContextId": { "alias": "defaultContextId"; "required": false; }; "term": { "alias": "term"; "required": false; }; }, { "select": "select"; "unselect": "unselect"; "edit": "edit"; "delete": "delete"; "save": "save"; "clone": "clone"; "create": "create"; "hide": "hide"; "show": "show"; "showHiddenContexts": "showHiddenContexts"; "favorite": "favorite"; "managePermissions": "managePermissions"; "manageTools": "manageTools"; "filterPermissionsChanged": "filterPermissionsChanged"; }, never, never, true, never>;
}
