import { AsyncThunk } from '@reduxjs/toolkit';
import { ReadOnlyControllerFunctions, ReadWriteControllerFunctions } from '../ControllerFunctions';
import ReadOnlyGenericSlice from './ReadOnlyGenericSlice';
import { Application } from '@gpa-gemstone/application-typings';
export default class ReadWriteGenericSlice<T> extends ReadOnlyGenericSlice<T> {
    Add: AsyncThunk<T, T, {}>;
    Update: AsyncThunk<T, T, {}>;
    Delete: AsyncThunk<T, (string | number | T), {}>;
    private updateHandle;
    private addHandle;
    private deleteHandle;
    private readWriteController;
    constructor(name: string, defaultSortField: keyof T, ascending: boolean, apiPath: string);
    constructor(name: string, defaultSortField: keyof T, ascending: boolean, readWriteController: ReadWriteControllerFunctions<T>, readOnlyController?: ReadOnlyControllerFunctions<T>);
    private initializeReadWriteSlice;
    UpdateStatus: (state: any) => Application.Types.Status;
    AddStatus: (state: any) => Application.Types.Status;
    DeleteStatus: (state: any) => Application.Types.Status;
}
