import { DataStoreInterface } from './interfaces';
import { Query } from 'rollun-ts-rql-test';
import LocalDataClient from '../clients/LocalDataClient';
export interface LocalDataStoreOptions<T> {
    idField?: string;
    initialData?: Array<T>;
}
export default class LocalDatastore<T = any> implements DataStoreInterface<T> {
    readonly identifier: string;
    readonly client: LocalDataClient<T>;
    constructor(options?: LocalDataStoreOptions<T>);
    count(): Promise<number>;
    create(item: T): Promise<T>;
    delete(id: string | number): Promise<T>;
    has(id: string | number): Promise<boolean>;
    query<U = T>(query?: Query): Promise<Array<U>>;
    read(id: string | number): Promise<T>;
    update<U = T>(item: T): Promise<T>;
    rewrite(item: T): Promise<T>;
}
