export type DataPageRecord = { [key: string]: number | string | boolean; }; export interface IData { records: DataPageRecord; maxRecords: number; isDirty: boolean; } export type PageDataAsyncOptions = { invalidateCache?: boolean; purgeDataPageCache?: boolean; additionalApiParams?: { useExtendedTimeout?: boolean; includeTotalCount?: boolean; }; }; export type DataStore = { [key: string]: { [key: string]: { [key: string]: any; } | IData; }; }; export type DataStoreMeta = { [key: string]: { [key: string]: string[]; }; }; export type Parameters = { [key: string]: string | number | null | undefined; } | undefined | null; export type Paging = { pageNumber?: number; pageSize?: number; maxResultsToFetch?: string; } | null | undefined; export type Filter = { filterConditions: { [k: string]: { lhs: { field: string; }; rhs: { value?: string; values?: string[]; }; comparator: string; ignoreCase?: string; }; }; logic: string; }; export type Query = { [key: string]: string | number | boolean | any[] | { [key: string]: any; }; } | { distinctResultsOnly?: string; select: { field: string; }[]; filter?: Filter; } | null | undefined; export type Subscribers = { [key: string]: { [key: string]: object | undefined; callback: { [key: string]: Function; }; }; }; export type DataPageSubscribers = { [key: string]: { [key: string]: { [key: string]: (...args: any) => any; }; }; }; export type SharedDataObject = { [key: string]: { [key: string]: { parameters?: Parameters; pxResults?: DataPageRecord[]; }; }; }; export type CustomObject = object | null | undefined;