///
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
import { AppLoader as GeneralAppLoader, Trigger, EntityDict, Watcher, OpRecord, OperationResult } from "oak-domain/lib/types";
import { DbStore } from "./DbStore";
import { BackendRuntimeContext } from 'oak-frontend-base/lib/context/BackendRuntimeContext';
import { IncomingHttpHeaders, IncomingMessage } from 'http';
import { Namespace } from 'socket.io';
import DataSubscriber from './cluster/DataSubscriber';
import Synchronizer from './Synchronizer';
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
export declare class AppLoader> extends GeneralAppLoader {
protected dbStore: DbStore;
private aspectDict;
private externalDependencies;
protected dataSubscriber?: DataSubscriber;
protected synchronizer?: Synchronizer;
protected contextBuilder: (store: DbStore) => Cxt;
private requireSth;
protected makeContext(cxtStr?: string, headers?: IncomingHttpHeaders): Promise;
/**
* 后台启动的configuration,统一放在这里读取
*/
private getConfiguration;
constructor(path: string, ns?: Namespace, nsServer?: Namespace);
protected registerTrigger(trigger: Trigger): void;
initTriggers(): void;
mount(initialize?: true): Promise;
unmount(): Promise;
execAspect(name: string, headers?: IncomingHttpHeaders, contextString?: string, params?: any): Promise<{
opRecords: OpRecord[];
result: any;
message?: string;
}>;
initialize(truncate?: boolean): Promise;
getStore(): DbStore;
getEndpoints(prefix: string): [string, "post" | "get" | "put" | "delete", string, (params: Record, headers: IncomingHttpHeaders, req: IncomingMessage, body?: any) => Promise][];
protected operateInWatcher(entity: T, operation: ED[T]['Update'], context: Cxt): Promise>;
protected selectInWatcher(entity: T, selection: ED[T]['Selection'], context: Cxt): Promise[]>;
protected execWatcher(watcher: Watcher): Promise | undefined>;
startWatchers(): void;
startTimers(): void;
execStartRoutines(): Promise;
execRoutine(routine: >(context: Cxt) => Promise): Promise;
}