import { DatabaseProvider, IDatabaseProvider, RepositoryIndexedObject, RepositoryObject, ResponsePromise, VoidResponsePromise } from './interfaces'; import { RepositoryExtendedInfo, RepositoryIndexedData, RepositoryIndexedInfo } from './classes'; import { DataError } from './errors'; export declare namespace provider { function initialize(provider: DatabaseProvider): void; function createIfNotExists(collectionName: string, createCallback: (err?: Error) => void, index?: RepositoryIndexedInfo[]): void; function createItem(collectionName: string, item: T, returnCallback: (data: T, err?: Error) => void, extended?: RepositoryExtendedInfo[]): void; function readItem(collectionName: string, id: string, returnCallback: (data: T, err?: { general: Error; data: DataError; }) => void): void; function readArray(collectionName: string, returnCallback: (data: T[], err?: Error) => void, extended?: RepositoryExtendedInfo[], queryLimit?: number): void; function queryItem(collectionName: string, index: RepositoryIndexedInfo, data: RepositoryIndexedData, returnCallback: (data: T, err?: Error) => void): void; function queryArray(collectionName: string, index: RepositoryIndexedInfo, data: RepositoryIndexedData, returnCallback: (data: T[], err?: Error) => void, extended?: RepositoryExtendedInfo[], queryLimit?: number): void; function updateItem(collectionName: string, item: T, returnCallback: (data: T, err?: Error) => void, extended?: RepositoryExtendedInfo[]): void; function removeItem(collectionName: string, id: string, returnCallback: (err?: Error) => void): void; } export declare namespace databaseProvider { function initialize(provider: IDatabaseProvider): void; function createIfNotExists(collectionName: string, index?: RepositoryIndexedInfo[]): VoidResponsePromise; function createItem(collectionName: string, item: T, extended?: RepositoryExtendedInfo[]): ResponsePromise; function readItem(collectionName: string, id: string): ResponsePromise; function readArray(collectionName: string, extended?: RepositoryExtendedInfo[], queryLimit?: number): ResponsePromise; function queryItem(collectionName: string, index: RepositoryIndexedInfo, data: RepositoryIndexedData): ResponsePromise; function queryArray(collectionName: string, index: RepositoryIndexedInfo, data: RepositoryIndexedData, extended?: RepositoryExtendedInfo[], queryLimit?: number): ResponsePromise; function updateItem(collectionName: string, item: T, extended?: RepositoryExtendedInfo[]): ResponsePromise; function removeItem(collectionName: string, id: string): VoidResponsePromise; }