import { InjectionToken, ModuleWithProviders } from '@angular/core';
import { CollectionStatic, DatabaseFactory, LocalForage, LocalResourceFactory, Model, Plugin, QueryFactory, ResourceFactory, ServerResourceFactory, SocketFactory } from './types';
import './declarations.d';
export * from './types';
export { Deferred } from './utils';
export declare const SERVER_RESOURCE_FACTORY: InjectionToken<ServerResourceFactory>;
export declare const LOCAL_RESOURCE_FACTORY: InjectionToken<LocalResourceFactory>;
export declare const RESOURCE_FACTORY: InjectionToken<ResourceFactory<Model>>;
export declare const QUERY_FACTORY: InjectionToken<QueryFactory>;
export declare const COLLECTION_FACTORY: InjectionToken<CollectionStatic<Model>>;
export declare const SOCKET_FACTORY: InjectionToken<SocketFactory>;
export declare const DATABASE_FACTORY: InjectionToken<DatabaseFactory>;
export interface OrtooResourceOpts {
    localForage?: LocalForage;
    plugins?: Array<Plugin<Model>>;
    pStorageMaxLen?: number;
}
export declare class OrtooResourceModule {
    static forOptions(opts: OrtooResourceOpts): ModuleWithProviders;
}
