import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { STChange, STColumn, STComponent, STData } from '@delon/abc';
import { Observable } from 'rxjs';
import { ACLService } from '@delon/acl';
import { DEF } from '../../../../api/index';
import { SettingsService } from '@delon/theme';
import { NzMessageService } from "ng-zorro-antd";
import { TranslateService } from "@ngx-translate/core";
/**
 * role list
 */
export declare class IdentityUserRolesComponent implements OnInit, OnChanges {
    aclService: ACLService;
    private addUerRoleParam;
    private nzMessageService;
    private translateService;
    private settingService;
    currentUser: DEF.Iwms.ApplicationUser | null;
    st: STComponent;
    loading: boolean;
    saving: boolean;
    stDatas: Array<STData & DEF.Iwms.RolePermissions>;
    stColumns: Array<STColumn>;
    /** current user's original role names */
    originalUserRoleNames: Array<string>;
    /** current user's current checked role names, change when user check or uncheck any role */
    currentUserRoleNames: Array<string>;
    readonly isUserRolesChanged: boolean;
    constructor(aclService: ACLService, addUerRoleParam: IAddUerRoleParamConfig, nzMessageService: NzMessageService, translateService: TranslateService, settingService: SettingsService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    fetchRoles(): Observable<Array<DEF.Iwms.RolePermissions>>;
    handleRefresh(): void;
    /**
     * fetch roles of current user
     */
    private fetchRolesByUser;
    updateUserRoles(): void;
    handleStChange($event: STChange): void;
}
export interface IAddUerRoleParamConfig {
    key: string;
    value: string;
}
