declare namespace DataManager { export interface DataManager { constructor(options: dmOptions); getFileUrl(assetID: string, locale?: string): Promise; getImageUrl(assetID: string, size?: number, locale?: string): Promise; getImageThumbUrl(assetID: string, size?: number, locale?: string): Promise; resolve(): Promise; modelList(): Promise; enableCache(models: string | Array, env: env, maxCacheAge?: number): Promise; clearCache(): Promise; model(title: string, metadata: any): Model; assetList(options?: any): AssetList; assets(options?: any): Array; asset(assetID: string): Asset; createAsset(input: any): Array>; tagList(options?: any): TagList; tags(options?: any): Array; tag(tag: string): Tag; registerAnonymous(validUntil: string): Promise; account(): Promise; getAuthLink(relation: string, templateParameter: any): Promise; emailAvailable(email: string): Promise; can(permission: string): Promise; logout(): void; } export function getFileUrl(assetID: string, locale?: string): Promise; export function getImageUrl(assetID: string, size?: number, locale?: string): Promise; export function getImageThumbUrl(assetID: string, size?: number, locale?: string): Promise; export function cloneEntry(entry: Entry): Entry; export function cloneEntries(entries: Array): Array; export function cloneAsset(asset: Asset): Asset; export function cloneAssets(assets: Array): Array; export function cloneTag(tag: Tag): Tag; export function cloneTags(tags: Array): Array; export const DB_NODEJS: string; export const DB_CORDOVA: string; export const DB_BROWSER: string; export interface Asset { save(): Promise; delete(): Promise; getFileUrl(locale?: string): Promise; getImageUrl(size?: number, locale?: string): Promise; getImageThumbUrl(size?: number, locale?: string): Promise; clone(): Entry; } export function Asset(asset: any, dm: DataManager): void; export interface Entry { save(): Promise; delete(): Promise; getTitle(property: string): string; getModelTitle(property: string): string; } export function Entry(entry: any, dm: DataManager, model: Model): void; export interface Model { enableCache(env: env, maxCacheAge?: number): Promise; clearCache(): Promise; resolve(): Promise; getSchema(): Promise; entryList(options?: any): Promise; entries(options?: any): Promise>; entry(id: any, levels: number): Promise; nestedEntry(id: any, levels: number): Promise; createEntry(entry: any): Promise; deleteEntry(entryId: string): Promise; } export function Model(title: string, metadata: any, dm: DataManager): void; export interface Tag { save(): Promise; delete(): Promise; } export function Tag(tag: any, dm: DataManager, traversal: any): void; export interface User { logout(): Promise; isAnonymous(): boolean; isAnon(): boolean; } export function User(isAnon: boolean, user: any, dm: DataManager): void; export type dmOptions = { url?: string, id?: string, accessToken?: string, clientID?: string, errorHandler?: (error: Error) => {} }; export type env = 'NODEJS' | 'CORDOVA' | 'BROWSER'; export type AssetList = { assets: Array, count: number, total: number } export type TagList = { tags: Array, count: number, total: number } export type EntryList = { entries: Array, count: number, total: number } } declare function DataManager(options: DataManager.dmOptions): void; export = DataManager;