import { C8oBase } from "./c8oBase";
import { C8oHttpInterfaceCore } from "./c8oHttpInterfaceCore";
import { C8oLogger } from "./c8oLogger";
import { C8oLogLevel } from "./c8oLogLevel";
import { C8oSettings } from "./c8oSettings";
import { C8oFullSync } from "./c8oFullSync";
import { C8oResponseListener } from "./c8oResponse";
import { C8oCallTask } from "./c8oCallTask";
import { C8oFullSyncChangeListener } from "./c8oFullSyncChangeListener";
import { C8oPromise } from "./c8oPromise";
import { C8oExceptionListener } from "./Exception/c8oExceptionListener";
export declare abstract class C8oCore extends C8oBase {
    protected static RE_REQUESTABLE: RegExp;
    protected static RE_ENDPOINT: RegExp;
    static ENGINE_PARAMETER_PROJECT: string;
    static ENGINE_PARAMETER_SEQUENCE: string;
    static ENGINE_PARAMETER_CONNECTOR: string;
    static ENGINE_PARAMETER_TRANSACTION: string;
    static ENGINE_PARAMETER_ENCODED: string;
    static ENGINE_PARAMETER_DEVICE_UUID: string;
    static ENGINE_PARAMETER_PROGRESS: string;
    static ENGINE_PARAMETER_FROM_LIVE: string;
    static FS_POLICY: string;
    static FS_POLICY_NONE: string;
    static FS_POLICY_CREATE: string;
    static FS_POLICY_OVERRIDE: string;
    static FS_POLICY_MERGE: string;
    static FS_SUBKEY_SEPARATOR: string;
    static FS_LIVE: string;
    static LOCAL_CACHE_DOCUMENT_KEY_RESPONSE: string;
    static LOCAL_CACHE_DOCUMENT_KEY_RESPONSE_TYPE: string;
    static LOCAL_CACHE_DOCUMENT_KEY_EXPIRATION_DATE: string;
    static LOCAL_CACHE_DATABASE_NAME: string;
    static RESPONSE_TYPE_XML: string;
    static RESPONSE_TYPE_JSON: string;
    static deviceUUID: string;
    protected _endpoint: string;
    protected _endpointConvertigo: string;
    protected _endpointIsSecure: boolean;
    protected _endpointHost: string;
    protected _endpointPort: string;
    protected _endpointProject: string;
    protected _automaticRemoveSplashsCreen: boolean;
    httpInterface: C8oHttpInterfaceCore;
    c8oLogger: C8oLogger;
    c8oFullSync: C8oFullSync;
    lives: C8oCallTask[];
    livesDb: string[];
    protected data: any;
    protected _http: any;
    protected _couchUrl: string;
    protected promiseConstructor: Promise<any>;
    protected promiseInit: Promise<any>;
    protected promiseFinInit: Promise<any>;
    couchUrl: string;
    logC8o: boolean;
    logRemote: boolean;
    logLevelLocal: C8oLogLevel;
    readonly log: C8oLogger;
    toString(): string;
    endpoint: string;
    endpointConvertigo: string;
    endpointIsSecure: boolean;
    endpointHost: string;
    endpointPort: string;
    endpointProject: string;
    readonly deviceUUID: string;
    readonly httpPublic: any;
    readonly abstract sdkVersion: string;
    readonly coreVersion: string;
    constructor();
    abstract init(c8oSettings?: C8oSettings): Promise<any>;
    finalizeInit(): Promise<any>;
    protected extractendpoint(): void;
    call(requestable: string, parameters?: Object, c8oResponseListener?: C8oResponseListener, c8oExceptionListener?: C8oExceptionListener): void;
    _call(parameters?: Object, c8oResponseListener?: C8oResponseListener, c8oExceptionListener?: C8oExceptionListener): void;
    callJsonObject(requestable: string, parameters: Object): C8oPromise<JSON>;
    callJson(requestable: string, ...parameters: any[]): C8oPromise<JSON>;
    static toParameters(parameters: any): Object;
    handleCallException(c8oExceptionListener: C8oExceptionListener, requestParameters: Object, exception: Error): void;
    get_attachment(id: string, attachment_name: string, database_name?: string): Promise<any>;
    addFullSyncChangeListener(db: string, listener: C8oFullSyncChangeListener): void;
    removeFullSyncChangeListener(db: string, listener: C8oFullSyncChangeListener): void;
    addLive(liveid: string, db: string, task: C8oCallTask): void;
    cancelLive(liveid: string): void;
    protected handleFullSyncLive: C8oFullSyncChangeListener;
}
export declare class FullSyncPolicy {
    static NONE: FullSyncPolicy;
    static CREATE: FullSyncPolicy;
    static OVERRIDE: FullSyncPolicy;
    static MERGE: FullSyncPolicy;
    value: string;
    action: (PouchDB, Object) => any;
    constructor(value: string, action: (_Object, Object) => any);
    static values(): FullSyncPolicy[];
    static getFullSyncPolicy(value: string): FullSyncPolicy;
}
export declare class FullSyncPostDocumentParameter {
    static POLICY: FullSyncPostDocumentParameter;
    static SUBKEY_SEPARATOR: FullSyncPostDocumentParameter;
    name: string;
    constructor(name: string);
    static values(): FullSyncPostDocumentParameter[];
}
