import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { DeletedEntityResponse } from '../model/deletedEntityResponse';
import { Personalisation } from '../model/personalisation';
import { ResourceListOfPersonalisation } from '../model/resourceListOfPersonalisation';
import { UpsertPersonalisationResponse } from '../model/upsertPersonalisationResponse';
import { Configuration } from '../configuration';
export declare class PersonalisationsService {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    constructor(httpClient: HttpClient, basePath: string, configuration: Configuration);
    /**
     * @param consumes string[] mime-types
     * @return true: consumes contains 'multipart/form-data', false: otherwise
     */
    private canConsumeForm(consumes);
    /**
     * Delete a personalisation
     * Delete a personalisation at a specific scope (or use scope ALL to purge the setting entirely)
     * @param key The key of the setting to be deleted
     * @param scope The scope to delete at (use ALL to purge the setting entirely)
     * @param group Optional. If deleting a setting at group level, specify the group here
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    deletePersonalisation(key?: string, scope?: 'User' | 'Group' | 'Default' | 'All', group?: string, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    deletePersonalisation(key?: string, scope?: 'User' | 'Group' | 'Default' | 'All', group?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    deletePersonalisation(key?: string, scope?: 'User' | 'Group' | 'Default' | 'All', group?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * Get personalisation
     * Get a personalisation, recursing to get any referenced if required.
     * @param pattern The search pattern or specific key
     * @param scope Optional. The scope level to request for
     * @param recursive Optional. Whether to recurse into dereference recursive settings
     * @param wildcards Optional. Whether to apply wildcards to the provided pattern and pull back any matching
     * @param sortBy Optional. Order the results by these fields. Use use the &#39;-&#39; sign to denote descending order e.g. -MyFieldName
     * @param start Optional. When paginating, skip this number of results
     * @param limit Optional. When paginating, limit the number of returned results to this many.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getPersonalisations(pattern?: string, scope?: 'User' | 'Group' | 'Default' | 'All', recursive?: boolean, wildcards?: boolean, sortBy?: Array<string>, start?: number, limit?: number, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfPersonalisation>;
    getPersonalisations(pattern?: string, scope?: 'User' | 'Group' | 'Default' | 'All', recursive?: boolean, wildcards?: boolean, sortBy?: Array<string>, start?: number, limit?: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfPersonalisation>>;
    getPersonalisations(pattern?: string, scope?: 'User' | 'Group' | 'Default' | 'All', recursive?: boolean, wildcards?: boolean, sortBy?: Array<string>, start?: number, limit?: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfPersonalisation>>;
    /**
     * Upsert personalisations
     * Upsert one or more personalisations
     * @param personalisations The set of personalisations to persist
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    upsertPersonalisations(personalisations?: Array<Personalisation>, observe?: 'body', reportProgress?: boolean): Observable<UpsertPersonalisationResponse>;
    upsertPersonalisations(personalisations?: Array<Personalisation>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<UpsertPersonalisationResponse>>;
    upsertPersonalisations(personalisations?: Array<Personalisation>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<UpsertPersonalisationResponse>>;
}
