/// declare module dstore { export interface FetchArray extends Array { totalLength: number; } export interface FetchPromise extends IPromise { forEach(callback: (value: T, index?: number, array?: T[]) => void, thisObject?: any): FetchPromise; response?: FetchResponse; totalLength: IPromise; } export interface FetchResponse { data: T; options: { [key: string]: any; }; status?: number; text: string; url: string; getHeader(name: string): string; } export interface ChangeEvent { id: any; index?: number; previousIndex?: number; target: T; totalLength: number; type: string; } export interface ICollection { idProperty: string; Model: { new (...args: any[]): T; }; tracking?: { remove(): void; }; add(object: T, options?: {}): IPromise; emit(eventName: string, event: ChangeEvent): boolean; fetch(): dstore.FetchPromise; fetchRange(kwArgs: { start?: number; end?: number; }): dstore.FetchPromise; filter(query: string | {} | { (item: T, index: number): boolean; }): ICollection; forEach(callback: (item: T, index: number) => void, thisObject?: any): IPromise; get(id: any): IPromise; getIdentity(object: T): any; on(eventName: string, listener: (event: ChangeEvent) => void): IHandle; put(object: T, options?: {}): IPromise; remove(id: any): IPromise; sort(property: string | { (a: T, b: T): number; }, descending?: boolean): ICollection; track?(): ICollection; } export interface ISyncCollection extends ICollection { addSync(object: T, options?: {}): T; fetchSync(): dstore.FetchArray; fetchRangeSync(kwArgs: { start?: number; end?: number; }): dstore.FetchArray; filter(query: string | {} | { (item: T, index: number): boolean; }): ISyncCollection; getSync(id: any): T; putSync(object: T, options?: {}): T; removeSync(id: any): boolean; sort(property: string | { (a: T, b: T): number; }, descending?: boolean): ISyncCollection; track?(): ISyncCollection; } } declare module 'dstore/Csv' { interface IStringifyOptions { alwaysQuote: boolean; trailingNewline: boolean; } class Csv { fieldNames: string[]; delimiter: string; newline: string; trim: boolean; parse(value: string): string[]; toCsv(options: IStringifyOptions): string; stringify(data: any, options: IStringifyOptions): string; } export = Csv; } declare module 'dstore/Cache' { import Store = require('dstore/Store'); class Cache extends Store { cachingStore: dstore.ICollection; evict(id: any): void; invalidate(): void; isAvailableInCache(): void; } export = Cache; } declare module 'dstore/legacy/StoreAdapter' { import Store = require('dstore/Store'); class StoreAdapter extends Store {} export = StoreAdapter; } declare module 'dstore/legacy/DstoreAdapter' { class DstoreAdapter { constructor(collection: dstore.ICollection); get(id: any): any; put(object: T, options?: {}): any; remove(id: any): any; query(query: any, options?: {}): any; } export = DstoreAdapter; } declare module 'dstore/Memory' { import Store = require('dstore/Store'); class Memory extends Store implements dstore.ISyncCollection { data: T[]; constructor(kwArgs?: Memory.KwArgs); addSync(object: T, options?: {}): T; fetchSync(): dstore.FetchArray; fetchRangeSync(kwArgs: { start?: number; end?: number; }): dstore.FetchArray; filter(query: string | {} | { (item: T, index: number): boolean; }): Memory; getSync(id: any): T; putSync(object: T, options?: {}): T; removeSync(id: any): boolean; setData(data: T[]): void; sort(property: string | { (a: T, b: T): number; }, descending?: boolean): Memory; track(): Memory; } module Memory { export interface KwArgs extends Store.KwArgs { data?: T[]; } } export = Memory; } declare module 'dstore/charting/StoreSeries' { class StoreSeries { constructor(collection: dstore.ICollection | dstore.ISyncCollection, value: any); destroy(): void; setSeriesObject(series: any): void; fetch(): void; } export = StoreSeries; } declare module 'dstore/Tree' { import Store = require('dstore/Store'); class Tree extends Store { mayHaveChildren(parent: T): boolean; getRootCollection(): Tree; getChildren(parent: T): Tree; } export = Tree; } declare module 'dstore/SimpleQuery' { import Store = require('dstore/Store'); class SimpleQuery extends Store {} export = SimpleQuery; } declare module 'dstore/extensions/RqlQuery' { import SimpleQuery = require('dstore/SimpleQuery'); class RqlQuery extends SimpleQuery {} export = RqlQuery; } declare module 'dstore/LocalDB' { import Store = require('dstore/Store'); class LocalDB extends Store { constructor(kwArgs: LocalDB.KwArgs); transaction(): LocalDB.ITransaction; } module LocalDB { export interface IConfigurationProperty { autoIncrement?: boolean; indexed?: boolean; multiEntry?: boolean; preference: number; } export interface IDBConfig { stores: { [key: string]: IDBStoreConfig }; version: number; } export interface IDBStoreConfig { [key: string]: number | IConfigurationProperty; } export interface ITransaction { abort(): void; commit(): void; } export interface KwArgs extends Store.KwArgs { dbConfig: IDBConfig; storeName: string; } } export = LocalDB; } declare module 'dstore/db/IndexedDB' { import LocalDB = require('dstore/LocalDB'); class IndexedDB extends LocalDB {} export = IndexedDB; } declare module 'dstore/db/SQL' { import LocalDB = require('dstore/LocalDB'); class SQL extends LocalDB {} export = SQL; } declare module 'dstore/db/LocalStorage' { import LocalDB = require('dstore/LocalDB'); class LocalStorageDB extends LocalDB {} export = LocalStorageDB; } declare module 'dstore/Trackable' { class Trackable { currentRange: any[]; track(): dstore.ICollection; } export = Trackable; } declare module 'dstore/Request' { import Store = require('dstore/Store'); class Request extends Store { headers: {}; parse: (serializedObject: string) => {}; target: string; ascendingPrefix: string; descendingPrefix: string; accepts: string; constructor(kwArgs?: Request.KwArgs); filter(query: string | {} | { (item: T, index: number): boolean; }): Request; sort(property: string | { (a: T, b: T): number; }, descending?: boolean): Request; track(): Request; } module Request { export interface KwArgs extends Store.KwArgs { headers?: typeof Request.prototype.headers; parse?: typeof Request.prototype.parse; target?: typeof Request.prototype.target; ascendingPrefix?: typeof Request.prototype.ascendingPrefix; descendingPrefix?: typeof Request.prototype.descendingPrefix; accepts?: typeof Request.prototype.accepts; } } export = Request; } declare module 'dstore/RequestMemory' { import Request = require('dstore/Request'); import Cache = require('dstore/Cache'); class RequestMemory extends Request implements Cache { cachingStore: dstore.ICollection; evict(id: any): void; filter(query: string | {} | { (item: T, index: number): boolean; }): RequestMemory; invalidate(): void; isAvailableInCache(): void; refresh(target?: string): dstore.FetchPromise; sort(property: string | { (a: T, b: T): number; }, descending?: boolean): RequestMemory; track(): RequestMemory; } export = RequestMemory; } declare module 'dstore/Rest' { import Request = require('dstore/Request'); class Rest extends Request { filter(query: string | {} | { (item: T, index: number): boolean; }): Rest; sort(property: string | { (a: T, b: T): number; }, descending?: boolean): Rest; track(): Rest; } export = Rest; } declare module 'dstore/Store' { import decl = require('dojo/_base/declare'); class Store extends decl.Base implements dstore.ICollection { idProperty: string; Model: { new (...args: any[]): T; }; total: IPromise; constructor(kwArgs?: Store.KwArgs); add(object: T, options?: {}): IPromise; emit(eventName: string, event: dstore.ChangeEvent): boolean; fetch(): dstore.FetchPromise; fetchRange(kwArgs: { start?: number; end?: number; }): dstore.FetchPromise; filter(query: string | {} | { (item: T, index: number): boolean; }): Store; forEach(callback: (item: T, index: number) => void, thisObject?: any): IPromise; get(id: any): IPromise; getIdentity(object: T): any; on(eventName: string, listener: (event: dstore.ChangeEvent) => void): IHandle; put(object: T, options?: {}): IPromise; remove(id: any): IPromise<{}>; sort(property: string | { (a: T, b: T): number; }, descending?: boolean): Store; } module Store { export interface KwArgs { idProperty?: typeof Store.prototype.idProperty; Model?: typeof Store.prototype.Model; } } export = Store; }