import { StateContext } from '@ngxs/store';
import { Observable } from 'rxjs';
import { ClaimsActions } from './claims.actions';
import { ClaimDetails } from '../../models/claim-details';
import { AuthorizationService } from '../../services/authorization.service';
import * as i0 from "@angular/core";
export declare const CLAIMS_STATE_NAME = "claims";
export interface ClaimsStateModel {
    items: ClaimDetails[];
    lastUpdated?: Date;
}
export declare class ClaimsState {
    private apiService;
    constructor(apiService: AuthorizationService);
    loadAll$(ctx: StateContext<ClaimsStateModel>): Observable<ClaimDetails[]>;
    create$(ctx: StateContext<ClaimsStateModel>, action: ClaimsActions.Create): Observable<ClaimDetails>;
    update$(ctx: StateContext<ClaimsStateModel>, action: ClaimsActions.Update): Observable<ClaimDetails>;
    protect$(ctx: StateContext<ClaimsStateModel>, action: ClaimsActions.Protect): Observable<ClaimDetails>;
    unprotect$(ctx: StateContext<ClaimsStateModel>, action: ClaimsActions.Unprotect): Observable<ClaimDetails>;
    delete$(ctx: StateContext<ClaimsStateModel>, action: ClaimsActions.Delete): Observable<void>;
    clear$(ctx: StateContext<ClaimsStateModel>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ClaimsState, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ClaimsState>;
}
