import { HttpService } from '../core';
import { Observable } from 'rxjs';
/**
 * Interface used to ensure we have a consistent structure across our listing pages
 *
 * Advantages of this abstract class
 * - Less code, less maintenance, less bugs
 * - more consistent code
 * - comments on more code
 * - save time, save energy
 */
export declare class TechlifyServiceBaseClass {
    protected http: HttpService;
    protected baseUrl: string;
    constructor(http: HttpService, baseUrl: string);
    /**
     * Loads a set of the model this service is for
     *
     * @param params Query parameters
     * @return Observable<any>
     */
    index(params?: any, isCache?: boolean): Observable<any>;
    /**
     * Add a new record to the database
     *
     * @param model The data of the model to add
     * @param params Query parameters
     * @return Observable<any>
     */
    store(model: any, params?: any): Observable<any>;
    /**
     * Load a single model record, often with all relations and related data
     *
     * @param modelId ID of the model to load
     * @param params Query parameters
     * @return Observable<any>
     */
    show(modelId: any, params?: any): Observable<any>;
    /**
     * Update fields of a single existing model
     *
     * @param model Model to update
     * @param params Query parameters
     * @return Observable<any>
     */
    update(model: any, params?: any): Observable<any>;
    /**
     * Delete a single model
     *
     * @param model Model to delete
     * @return Observable<any>
     */
    delete(model: any): Observable<any>;
}
