import { API } from '@makeflow/types'; import { Dict } from 'tslang'; import { Model, ModelToDefinition } from '../model'; export interface ActionStorage = Dict> { getField(key: TKey): TModel[TKey]; get: StorageObject['get']; set = TStorage>(storage: TTStorage): Promise; set = TStorage, TKey extends keyof TTStorage = keyof TTStorage>(key: TKey, value: TTStorage[TKey]): Promise; merge(storage: Partial): Promise; } declare type StorageSaveResult = { type: 'create'; model: TModel; } | { type: 'delete'; model: TModel; } | { type: 'update'; models: { prev: TModel; next: TModel; }; }; export declare class StorageObject = Dict> { protected originalModel?: TModel | undefined; private model; private storage; get type(): TModel['type'] | undefined; get version(): TModel['version'] | undefined; get created(): boolean; get source(): API.PowerApp.BasicSource; constructor(originalModel?: TModel | undefined); get = TStorage>(): TTStorage; get = TStorage, TKey extends keyof TTStorage = keyof TTStorage>(key: TKey): TTStorage[TKey]; set = TStorage>(storage: TTStorage): void; set = TStorage, TKey extends keyof TTStorage = keyof TTStorage>(key: TKey, value: TTStorage[TKey]): void; merge = TStorage>(storage: Partial): void; create(model: TModel): void; delete(): void; getField(key: TKey): TModel[TKey] | undefined; setField(key: ModelToDefinition['allowedFields'][number], value: any): this; upgrade(version: string): void; save(): StorageSaveResult | undefined; rebuild(): void; private initialize; } export {};