import { Issue } from '../../domain/entities/Issue'; import { FieldOption, Project } from '../../domain/entities/Project'; import { LocalStorageCacheRepository } from './LocalStorageCacheRepository'; export type StoryOptionEntry = { name: string; description: string; }; export type CachedProjectIssues = { lastFetchedAt: string; lastFullFetchAt: string; project: Project; issues: Issue[]; storyIssueUrlByOptionName: Record; storyOptions: StoryOptionEntry[]; itemUpdatedAtByItemId: Record; }; export declare const isProject: (value: unknown) => value is Project; export declare const isStringRecord: (value: unknown) => value is Record; export declare const deserializeStoryIssueUrlByOptionName: (raw: object) => Record; export declare const deserializeItemUpdatedAtByItemId: (raw: object) => Record; export declare const deserializeStoryOptions: (raw: object) => StoryOptionEntry[]; export declare const isIssueArray: (value: unknown) => value is Issue[]; export declare class ProjectIssuesCacheRepository { readonly localStorageCacheRepository: Pick; constructor(localStorageCacheRepository: Pick); cacheKey: (projectId: Project["id"]) => string; withLock: (projectId: Project["id"], fn: () => Promise) => Promise; readRaw: (projectId: Project["id"]) => Promise; read: (projectId: Project["id"]) => Promise; readProject: (projectId: Project["id"]) => Promise; write: (projectId: Project["id"], cached: CachedProjectIssues) => Promise; removeIssueByItemId: (projectId: Project["id"], itemId: Issue["itemId"]) => Promise; updateFieldOptions: (projectId: Project["id"], fieldId: string, options: FieldOption[]) => Promise; private projectWithFieldOptions; } //# sourceMappingURL=ProjectIssuesCacheRepository.d.ts.map