@omnia/fx
Version:
Provide Omnia Fx typings and tooling for clientside Omnia development.
23 lines (22 loc) • 1.59 kB
TypeScript
import { OmniaNamedModel, GuidValue, ApiResponse, IOmniaPropertyBag, IMessageBusTopicSubscription } from "../../models";
import { HttpClient } from "../http";
import { AxiosResponse } from "axios";
export declare abstract class OmniaPropertyBagBase<T extends OmniaNamedModel> implements IOmniaPropertyBag<T> {
protected httpClient: HttpClient;
private currentProperties;
private retrivedPropertiesPromise;
private propertyBagChangedPublishSubscriber;
protected abstract createAddOrUpdateRequest: (route: string, values: Array<T>) => Promise<AxiosResponse<ApiResponse<Array<T>>>>;
protected abstract createGetAllValuesRequest: (route: string) => Promise<AxiosResponse<ApiResponse<Array<T>>>>;
protected abstract createRemoveValuesRequest: (route: string, values: Array<T>) => Promise<AxiosResponse<ApiResponse<void>>>;
protected abstract createRemoveAllValuesRequest: (route: string) => Promise<AxiosResponse<ApiResponse<void>>>;
protected abstract createRemoveOmniaServiceValuesRequest: (route: string, omniaServiceId: GuidValue) => Promise<AxiosResponse<ApiResponse<void>>>;
constructor(initialProperties?: Array<T>);
getModel: <Model extends T>(model: new () => Model) => Model;
addOrUpdate: (...args: Array<T>) => Promise<Array<T>>;
getAllValues: (forceGetFromServer?: boolean) => Promise<Array<T>>;
removeValues: (...args: Array<T>) => Promise<void>;
removeAllValues: () => Promise<void>;
removeOmniaServiceValues: (omniaServiceId: GuidValue) => Promise<void>;
onChanged: () => IMessageBusTopicSubscription<void>;
}