import { EntityDict, RowStore, OperateOption, OperationResult, SelectOption, TxnOption, Context, AggregationResult } from "../types"; import { EntityDict as BaseEntityDict } from '../base-app-domain'; export declare abstract class SyncContext implements Context { rowStore: SyncRowStore; private uuid?; constructor(rowStore: SyncRowStore>); abstract getCurrentUserId(allowUnloggedIn?: boolean): string | undefined; abstract isRoot(): boolean; abstract toString(): Promise; begin(option?: TxnOption): void; commit(): void; rollback(): void; getCurrentTxnId(): string | undefined; getSchema(): import("../types").StorageSchema; operate(entity: T, operation: ED[T]['Operation'], option: OP): OperationResult; select(entity: T, selection: ED[T]['Selection'], option: OP): Partial[]; aggregate(entity: T, aggregation: ED[T]['Aggregation'], option: OP): AggregationResult; count(entity: T, selection: Pick, option: OP): number; mergeMultipleResults(toBeMerged: OperationResult[]): OperationResult; abstract allowUserUpdate(): boolean; } export interface SyncRowStore> extends RowStore { operate(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): OperationResult; select(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Partial[]; count(entity: T, selection: Pick, context: Cxt, option: OP): number; aggregate(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): AggregationResult; begin(option?: TxnOption): string; commit(txnId: string): void; rollback(txnId: string): void; }