import { StateContext } from '@ngxs/store';
import { Observable } from 'rxjs';
import { UsersActions } from './users.actions';
import { AuthorizationService } from '../../services/authorization.service';
import { UserDetails } from '../../models/user-details';
import { AuthenticationService } from '../../services/authentication.service';
import * as i0 from "@angular/core";
export declare const USERS_STATE_NAME = "users";
export interface UsersStateModel {
    items: UserDetails[];
    lastUpdated?: Date;
}
export declare const getUsersInitialState: () => UsersStateModel;
export declare class UsersState {
    private authorizationService;
    private authenticationService;
    constructor(authorizationService: AuthorizationService, authenticationService: AuthenticationService);
    loadAll$(ctx: StateContext<UsersStateModel>): Observable<UserDetails[]>;
    onReplaceUserRoles$(ctx: StateContext<UsersStateModel>, action: UsersActions.ReplaceUserRoles): Observable<UserDetails>;
    onAddClaimsOverride$(ctx: StateContext<UsersStateModel>, action: UsersActions.AddClaimsOverride): Observable<UserDetails>;
    onRemoveClaimsOverride$(ctx: StateContext<UsersStateModel>, action: UsersActions.RemoveClaimsOverride): Observable<UserDetails>;
    onRedefinePassword$(ctx: StateContext<UsersStateModel>, action: UsersActions.RedefinePassword): Observable<void>;
    onResetPassword$(ctx: StateContext<UsersStateModel>, action: UsersActions.ResetPassword): Observable<void>;
    onCreate$(ctx: StateContext<UsersStateModel>, action: UsersActions.Create<any>): Observable<UserDetails>;
    onDelete$(ctx: StateContext<UsersStateModel>, action: UsersActions.Delete): Observable<void>;
    onActivate$(ctx: StateContext<UsersStateModel>, action: UsersActions.Activate): Observable<UserDetails>;
    onDeactivate$(ctx: StateContext<UsersStateModel>, action: UsersActions.Activate): Observable<UserDetails>;
    onLocalCreate$(ctx: StateContext<UsersStateModel>, action: UsersActions.LocalCreate<UserDetails>): void;
    onLocalUpdate$(ctx: StateContext<UsersStateModel>, action: UsersActions.LocalUpdate<UserDetails>): void;
    LocalDelete$(ctx: StateContext<UsersStateModel>, action: UsersActions.LocalDelete): void;
    clear$(ctx: StateContext<UsersStateModel>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<UsersState, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<UsersState>;
}
