import type { FragmentArtifact } from '../lib/types'; import type { Cache } from './cache'; import type { ArgType, CacheTypeDef, FragmentList, FragmentValue, FragmentVariables, TypeFieldNames, ValidTypes } from './types'; export declare class Record> { #private; type: string; idFields: {}; constructor({ cache, type, id, idFields, }: { cache: Cache; type: string; idFields: {}; id: string; }); read<_Fragment extends { artifact: FragmentArtifact; }>({ fragment, variables, }: { fragment: _Fragment; variables?: FragmentVariables, _Fragment>; }): { data: FragmentValue, _Fragment> | null; partial: boolean; }; write<_Fragment extends { artifact: FragmentArtifact; }, _Variable>(args: { fragment: _Fragment; data: FragmentValue, _Fragment>; variables?: FragmentVariables, _Fragment>; forceStale?: boolean; }): void; delete(): void; /** * Mark some elements of the record stale in the cache. * @param field * @param when */ markStale>(field?: Field, { when, }?: { when?: ArgType; }): void; }