///
///
///
import { ModelOpts, NavigationOpts, ThumbnailProvider, BaseUrls, ContentHooks } from "../typings";
import express, { RequestHandler, Express } from "express";
import log from "./log";
import { AnonymousPermissions } from "./auth";
import { PersistenceAdapter } from "./persistence/adapter";
import { ExternalDataSourceWithOptionalHelper } from "./externalDataSourceHelper";
import ContentPersistence from "./persistence/ContentPersistence";
import Storage from "./media/storage/Storage";
declare type SessionOpts = CookieSessionInterfaces.CookieSessionOptions;
export { Persistence } from "./persistence";
export { default as knexAdapter } from "./persistence/adapter/knex";
export * from "../typings";
export { default as FsStorage } from "./media/storage/FsStorage";
export * from "./utils";
export { PersistenceAdapter, Storage, ExternalDataSourceWithOptionalHelper, SessionOpts, RequestHandler, AnonymousPermissions, ContentPersistence, log };
export declare type Opts = {
models: ModelOpts[];
navigation?: NavigationOpts[];
storage: Storage;
baseUrls?: Partial;
basePath?: string;
persistenceAdapter: Promise;
externalDataSources?: ExternalDataSourceWithOptionalHelper[];
sessionOpts?: SessionOpts;
thumbnailProvider: ThumbnailProvider;
clientMiddleware?: RequestHandler | RequestHandler[];
anonymousPermissions?: AnonymousPermissions;
customSetup?: (app: Express, contentPersistence: ContentPersistence) => void;
contentHooks?: ContentHooks;
};
export declare const clientMiddleware: express.Router;
export declare function getRestApiBuilder(opts: Pick): Promise;
export declare function init(opts: Opts): Promise<{
app: import("express-serve-static-core").Express;
persistence: import("./persistence").Persistence;
}>;