import { Dict } from 'tslang'; import { ISyncable, SyncableRef, SyncableType } from '../syncable'; export declare type ViewQueryUpdateObject> = { [TName in keyof TViewQueryObject]?: TViewQueryObject[TName] | false; }; export declare type ViewQueryFilter = (syncable: T) => boolean; export interface IViewQuery { refs: object; options: object; } export interface GeneralViewQuery extends IViewQuery { refs: Dict; } export declare type ViewQueryRefDictToViewQuerySyncableDict = { [TName in keyof T]: SyncableType; }; export interface ResolvedViewQuery { syncables: ViewQueryRefDictToViewQuerySyncableDict; options: T['options']; } export declare type ResolvedViewQueryType = TViewQuery extends IViewQuery ? ResolvedViewQuery : never; export declare type ViewQueryResolvedSyncableDict = ViewQueryRefDictToViewQuerySyncableDict; export declare type ViewQueryDictToResolvedViewQueryDict = { [TName in keyof T]: T[TName] extends IViewQuery ? ResolvedViewQuery : never; };