import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { CommonResult } from '../model/commonResult';
import { ContextLinkAttachmentDetail } from '../model/contextLinkAttachmentDetail';
import { ContextLinkAttachmentEntry } from '../model/contextLinkAttachmentEntry';
import { ContextLinkEntry } from '../model/contextLinkEntry';
import { ContextLinkEntryForDisplay } from '../model/contextLinkEntryForDisplay';
import { Configuration } from '../configuration';
import { ContextLinkServiceInterface } from './contextLink.serviceInterface';
import * as i0 from "@angular/core";
export declare class ContextLinkService implements ContextLinkServiceInterface {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * @param ContextLinkAttachmentID
     * @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.
     */
    linkAttachmentDeleteItem(ContextLinkAttachmentID?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    linkAttachmentDeleteItem(ContextLinkAttachmentID?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    linkAttachmentDeleteItem(ContextLinkAttachmentID?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param CLID
     * @param Context
     * @param ContextKey
     * @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.
     */
    linkAttachmentDeleteLinkContext(CLID?: number, Context?: string, ContextKey?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    linkAttachmentDeleteLinkContext(CLID?: number, Context?: string, ContextKey?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    linkAttachmentDeleteLinkContext(CLID?: number, Context?: string, ContextKey?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param ContextLinkAttachmentEntry
     * @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.
     */
    linkAttachmentInsert(ContextLinkAttachmentEntry?: ContextLinkAttachmentEntry, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    linkAttachmentInsert(ContextLinkAttachmentEntry?: ContextLinkAttachmentEntry, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    linkAttachmentInsert(ContextLinkAttachmentEntry?: ContextLinkAttachmentEntry, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param Context
     * @param ContextKey
     * @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.
     */
    linkAttachmentSelectContext(Context?: string, ContextKey?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<ContextLinkAttachmentDetail>>;
    linkAttachmentSelectContext(Context?: string, ContextKey?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<ContextLinkAttachmentDetail>>>;
    linkAttachmentSelectContext(Context?: string, ContextKey?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<ContextLinkAttachmentDetail>>>;
    /**
     * @param ContextLinkAttachmentID
     * @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.
     */
    linkAttachmentSelectItem(ContextLinkAttachmentID?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<ContextLinkAttachmentDetail>>;
    linkAttachmentSelectItem(ContextLinkAttachmentID?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<ContextLinkAttachmentDetail>>>;
    linkAttachmentSelectItem(ContextLinkAttachmentID?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<ContextLinkAttachmentDetail>>>;
    /**
     * @param CLID
     * @param Context
     * @param ContextKey
     * @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.
     */
    linkAttachmentSelectItemContext(CLID?: number, Context?: string, ContextKey?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<ContextLinkAttachmentDetail>>;
    linkAttachmentSelectItemContext(CLID?: number, Context?: string, ContextKey?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<ContextLinkAttachmentDetail>>>;
    linkAttachmentSelectItemContext(CLID?: number, Context?: string, ContextKey?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<ContextLinkAttachmentDetail>>>;
    /**
     * @param CLID
     * @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.
     */
    linkAttachmentSelectLink(CLID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<ContextLinkAttachmentDetail>>;
    linkAttachmentSelectLink(CLID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<ContextLinkAttachmentDetail>>>;
    linkAttachmentSelectLink(CLID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<ContextLinkAttachmentDetail>>>;
    /**
     * @param ContextLinkAttachmentEntry
     * @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.
     */
    linkAttachmentUpdate(ContextLinkAttachmentEntry?: ContextLinkAttachmentEntry, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    linkAttachmentUpdate(ContextLinkAttachmentEntry?: ContextLinkAttachmentEntry, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    linkAttachmentUpdate(ContextLinkAttachmentEntry?: ContextLinkAttachmentEntry, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param ContextLinkAttachmentEntry
     * @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.
     */
    linkAttachmentUpdateBulk(ContextLinkAttachmentEntry?: Array<ContextLinkAttachmentEntry>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    linkAttachmentUpdateBulk(ContextLinkAttachmentEntry?: Array<ContextLinkAttachmentEntry>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    linkAttachmentUpdateBulk(ContextLinkAttachmentEntry?: Array<ContextLinkAttachmentEntry>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param CLID
     * @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.
     */
    linkEntryDelete(CLID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    linkEntryDelete(CLID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    linkEntryDelete(CLID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param ContextLinkEntry
     * @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.
     */
    linkEntryInsert(ContextLinkEntry?: ContextLinkEntry, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    linkEntryInsert(ContextLinkEntry?: ContextLinkEntry, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    linkEntryInsert(ContextLinkEntry?: ContextLinkEntry, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param CLID
     * @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.
     */
    linkEntrySelectItem(CLID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<ContextLinkEntry>;
    linkEntrySelectItem(CLID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<ContextLinkEntry>>;
    linkEntrySelectItem(CLID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<ContextLinkEntry>>;
    /**
     * @param ContextLinkEntry
     * @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.
     */
    linkEntryUpdate(ContextLinkEntry?: ContextLinkEntry, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    linkEntryUpdate(ContextLinkEntry?: ContextLinkEntry, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    linkEntryUpdate(ContextLinkEntry?: ContextLinkEntry, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param Context
     * @param ContextKey
     * @param SearchMode
     * @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.
     */
    linkListSelectContext(Context?: string, ContextKey?: number, SearchMode?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<ContextLinkEntryForDisplay>>;
    linkListSelectContext(Context?: string, ContextKey?: number, SearchMode?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<ContextLinkEntryForDisplay>>>;
    linkListSelectContext(Context?: string, ContextKey?: number, SearchMode?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<ContextLinkEntryForDisplay>>>;
    /**
     * @param Context
     * @param ContextKey
     * @param SearchMode
     * @param SearchTerm
     * @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.
     */
    linkListSelectContextContains(Context?: string, ContextKey?: number, SearchMode?: number, SearchTerm?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<ContextLinkEntryForDisplay>>;
    linkListSelectContextContains(Context?: string, ContextKey?: number, SearchMode?: number, SearchTerm?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<ContextLinkEntryForDisplay>>>;
    linkListSelectContextContains(Context?: string, ContextKey?: number, SearchMode?: number, SearchTerm?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<ContextLinkEntryForDisplay>>>;
    /**
     * @param Context
     * @param ContextKey
     * @param SearchMode
     * @param SearchTerm
     * @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.
     */
    linkListSelectContextStartsWith(Context?: string, ContextKey?: number, SearchMode?: number, SearchTerm?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<ContextLinkEntryForDisplay>>;
    linkListSelectContextStartsWith(Context?: string, ContextKey?: number, SearchMode?: number, SearchTerm?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<ContextLinkEntryForDisplay>>>;
    linkListSelectContextStartsWith(Context?: string, ContextKey?: number, SearchMode?: number, SearchTerm?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<ContextLinkEntryForDisplay>>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContextLinkService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContextLinkService>;
}
