import { ServiceArea } from '@bringg/types';
import { DELETE_RESPONSE } from '../../Core/CrudService';
import { BasicResponse } from '../../Core/Responses';
import { DataOptions, GroupValue } from '../../data-entity';
import Session from '../../Services/Identity/Session';
import { ServiceAreaModel } from '../ServiceArea.consts';
import { CreateServiceAreaRequest, LoadAllServiceAreasByTeamsRequest, ServiceAreaFieldsRequest, ServiceAreaFilterGroups, UpdateServiceAreaRequest } from './service-area.consts';
export declare class ServiceAreaApi {
    private readonly serviceAreaStore;
    private readonly serviceAreaService;
    private readonly storableDataService;
    constructor(session: Session);
    loadAll(options?: DataOptions): Promise<ServiceAreaModel[]>;
    create(request: CreateServiceAreaRequest): Promise<ServiceArea>;
    update(id: number, request: UpdateServiceAreaRequest): Promise<ServiceArea>;
    delete(id: number): Promise<DELETE_RESPONSE>;
    loadAllByTeams(request: LoadAllServiceAreasByTeamsRequest, options?: DataOptions): Promise<ServiceArea[]>;
    assign(id: number, userId: number): Promise<BasicResponse>;
    unassignUser(userId: number): Promise<BasicResponse>;
    get(id: number): ServiceArea;
    getByIds(ids: number[]): ServiceArea[];
    getAll(): ServiceArea[];
    removeAll(): void;
    getGroup(group: ServiceAreaFilterGroups, groupValue: GroupValue): ServiceArea[];
    loadAllByTeamsAndFields(request: ServiceAreaFieldsRequest): Promise<ServiceAreaModel[]>;
}
