import { HttpRequestOptions } from "./request-types"; import { RockPropExpressions } from "./rock-types"; export declare type StoreMeta = { type: string; store: new (...args: any) => IStore; }; export declare type StoreConfig = ConstantStoreConfig | HttpRequestStoreConfig | UnknownStoreConfig; export declare type StoreConfigBase = { name: string; description?: string; $exps?: RockPropExpressions; }; export declare type UnknownStoreConfig = { type: string; [key: string]: any; } & StoreConfigBase; export declare type ConstantStoreConfig = { type: "constant"; data?: any; } & StoreConfigBase; export declare type HttpRequestStoreConfig = { type: "httpRequest"; data?: any; request: HttpRequestOptions; dataSchema?: any; } & StoreConfigBase; export declare type HttpRequestStoreCommand = { type: "query" | "create" | "update" | "delete" | "refersh"; request: HttpRequestOptions; }; export interface IStore { get name(): string; get data(): any; loadData: (input?: any) => Promise; observe: (callback: (data: any) => void) => void; setConfig: (storeConfig: TConfig) => void; setPropertyExpression: (propName: string, propExpression: string) => void; }