import { IActionParams, IActionId, IActionReadParams, IOFAPIResponse, IActionFilter, IEstateRecord, IFileDescriptor } from "../types";
import { IActionGetParams } from "../types/actions";
export default abstract class OnOfficeAPIClient {
    protected abstract fetchAction<TRecord>(actionId: IActionId, resourceType: string, indentifier: string, resourceId: string, parameters: IActionParams): Promise<IOFAPIResponse<TRecord>>;
    getEstates(filter?: IActionFilter, data?: string[]): Promise<IEstateRecord[]>;
    getEstate(id: number, data?: string[]): Promise<IEstateRecord>;
    getEstateImages(id: number): Promise<IFileDescriptor[]>;
    getResource<TRecord>(type: string, parameters: IActionGetParams): Promise<TRecord[]>;
    readResource<TRecord>(type: string, parameters: IActionReadParams, id?: string | number): Promise<TRecord[]>;
    unlockProvider(parameterCacheId: string, isRegularCustomer?: number): Promise<IOFAPIResponse<unknown>>;
    static reduceActionsResponse<TRecord>(res: IOFAPIResponse<TRecord>): import("../types").IOFActionResult<TRecord>[];
}
