import { VuexModule } from "vuex-module-decorators";
declare type ModelId = string | number | null;
declare type PrimaryKey = "id" | "uid" | "uuid";
declare type BaseModel = {
    [key: string]: any;
    id?: ModelId;
    uid?: ModelId;
    uuid?: ModelId;
};
export default class BaseStore<Model extends BaseModel> extends VuexModule {
    models: Model[];
    model: Model | null;
    modelPrimaryKey: PrimaryKey;
    isLoadingModels: boolean;
    isLoadingModel: boolean;
    isLoadingSaveModel: boolean;
    isLoadingRemoveModel: boolean;
    get modelsById(): any;
    setModelsLoading(value: boolean): void;
    setModelLoading(value: boolean): void;
    setSaveModelLoading(value: boolean): void;
    setRemoveModelLoading(value: boolean): void;
    setPrimaryKey(key: PrimaryKey): void;
    setModels(models: Model[]): void;
    setModel(model: Model | null): void;
    addModel(model: Model, toEnd?: boolean): void;
    updateModelInList(changedModel: Model): void;
    removeModel(modelId: ModelId): void;
}
export {};
