import { ErrorAction } from './action.types'; export declare enum EntityActions { beginInsert = "entity.beginInsert", commitInsert = "entity.commitInsert", insertResult = "entity.insertResult", update = "entity.update", updating = "entity.updating", updated = "entity.updated", delete = "entity.delete", deleting = "entity.deleting", deleted = "entity.deleted", fetch = "entity.fetch", fetching = "entity.fetching", fetched = "entity.fetched", query = "entity.query", querying = "entity.querying", queried = "entity.queried", selectAll = "entity.selectAll", select = "entity.select" } export interface BaseEntity extends ErrorAction { target: TN; asyncKey?: Symbol; } export interface BeginInsert extends BaseEntity { type: EntityActions.beginInsert; entity: T; } export interface CommitInsert extends BaseEntity { type: EntityActions.commitInsert; entity: T; } export interface InsertResult extends BaseEntity { type: EntityActions.insertResult; entity: T; } export interface UpdateEntity extends BaseEntity { type: EntityActions.update; entity: T; } export interface DeleteEntity extends BaseEntity { type: EntityActions.delete; entity: T; } export interface FetchEntity extends BaseEntity { type: EntityActions.fetch; id: string; } export interface FetchResult extends BaseEntity { type: EntityActions.fetched; id: string; entity: T; } export interface QueryEntities extends BaseEntity { type: EntityActions.query; query: string; continuationToken?: string; skip?: number; take?: number; } export interface QueryResult extends BaseEntity { type: EntityActions.queried; items: T[]; hasMore: boolean; prevToken?: string; continuationToken?: string; } export interface SelectEntity extends BaseEntity { type: EntityActions.select; entity: T; select: boolean; } export interface SelectAll extends BaseEntity { type: EntityActions.selectAll; select: boolean; } export declare type EntityAction = QueryEntities | QueryResult | FetchEntity | FetchResult | SelectEntity | SelectAll; export declare const beginQuery: (target: TN, query: string, asyncKey: Symbol, skip?: number, take?: number) => QueryEntities; export declare const beginUpdate: (target: TN, entity: T, asyncKey: Symbol) => UpdateEntity; export declare const beginDelete: (target: TN, entity: T, asyncKey: Symbol) => DeleteEntity; export declare const queryResult: (target: TN, items: T[]) => QueryResult; export declare const beginInsert: (target: TN, entity: T) => BeginInsert; export declare const selectEntity: (target: TN, entity: T, select: boolean) => SelectEntity; export declare const selectAll: (target: TN, select: boolean) => SelectAll;