import { TccSearchComponent } from '../../../shared/components/tcc-search/tcc-search.component';
import { TccPermission } from '../../../odata/models/shared.model';
import { TccET_IAM } from '../../../odata/models/iam.model';
import { TccTable, TccTableComponent } from '../tcc-table/tcc-table.component';
import { TccInputMask } from '../../../shared/models/inputMask.model';
import { TccEntityPickerEntitys } from '../../directives/tcc-entity-picker-directive/tcc-entity-picker-directive';
import { TccODataServiceFactory } from '../../../odata/factories/tcc-odata-service/tcc-odata-service.factory';
import { TccTranslationPipe } from '../../../shared/pipes/tcc-translation/tcc-translation.pipe';
import { TccOdataFunctionsService } from '../../../odata/services/tcc-odata-functions/tcc-odata-functions.service';
import { TccSnackBarService } from '../../services/tcc-snackbar/tcc-snackbar.service';
import { TccAccessRightsService } from '../../../shared/services/tcc-access-rights/tcc-access-rights.service';
export declare namespace tccPermissions {
    enum right {
        Create = "Create",
        Read = "Read",
        Update = "Update",
        Delete = "Delete",
        Execute = "Execute"
    }
    interface permissionsData {
        [entityId: string]: {
            Name: string;
            Type: TccET_IAM.GroupMemberClass | TccET_IAM.UserRoles;
            Owner: boolean;
        };
    }
    enum entityType {
        User = "User",
        Groups = "Groups",
        Roles = "Roles"
    }
}
export declare class TccPermissionsComponent {
    private factory;
    private translationPipe;
    private odataFunctions;
    private snackBar;
    private accessRightsService;
    searchField: TccSearchComponent;
    table: TccTableComponent<TccPermission>;
    entity: any;
    basePath: string;
    entityPath: string;
    permissions: TccPermission[];
    permissionsBackup: TccPermission[];
    permissionsData: tccPermissions.permissionsData;
    groupMemberClass: typeof TccET_IAM.GroupMemberClass;
    userRoles: typeof TccET_IAM.UserRoles;
    permissionsTableInput: TccTable.TableInputs<TccPermission>;
    inputElements: TccInputMask.SectionElements;
    inputOptions: TccInputMask.options;
    filterOptions: {
        Key: string;
        icon: string;
        selected: boolean;
        value: tccPermissions.entityType;
    }[];
    typeOptions: {
        Key: string;
        icon: string;
        value: tccPermissions.entityType;
    }[];
    roleOptions: {
        Key: string;
        value: TccET_IAM.UserRoles;
        inList: boolean;
    }[];
    selectedType: {
        Key: string;
        icon: string;
        value: tccPermissions.entityType;
    };
    selectedRole: {
        Key: string;
        value: TccET_IAM.UserRoles;
    };
    selectedUser: TccET_IAM.UserInfo;
    selectedGroup: TccET_IAM.UserGroupInfo;
    lockedRow: number | null;
    entityTypeUser: TccEntityPickerEntitys;
    entityTypeGroup: TccEntityPickerEntitys;
    userOverlay: boolean;
    groupOverlay: boolean;
    searchText: string;
    selectedFilter: tccPermissions.entityType[];
    _id: string;
    _entityPath: string;
    _path: string;
    _right: typeof tccPermissions.right;
    private _name;
    constructor(factory: TccODataServiceFactory, translationPipe: TccTranslationPipe, odataFunctions: TccOdataFunctionsService, snackBar: TccSnackBarService, accessRightsService: TccAccessRightsService);
    ngOnInit(): void;
    private initPermissions;
    private getPermissionsDataCallback;
    private getRolePermissions;
    private checkRoles;
    private savePermissions;
    onChange(item: TccPermission, type: tccPermissions.right, value: boolean): void;
    deletePermissions(permission: TccPermission): void;
    createPermission(): void;
    createRowEvent(newRow: TccPermission): void;
    createRowAcceptEvent(newPerm: TccPermission): void;
    createRowDismissEvent(newPerm: TccPermission): void;
    editRowEvent(edited: boolean): void;
    getDeleteText(data: TccPermission): string;
    onFilterOptionChange(): void;
    onSearch($event: any): void;
    applyFilter(): void;
    checkOwner(row: TccPermission): boolean;
}
