UNPKG

@prezly/theme-kit-core

Version:

Data layer and utility library for developing Prezly themes with JavaScript

80 lines (79 loc) 4.15 kB
import type { Culture, Newsroom, NewsroomTheme, PrezlyClient, Query, TranslatedCategory } from '@prezly/sdk'; import { Category, NewsroomGallery, Stories, Story } from '@prezly/sdk'; import type { Cache, UnixTimestampInSeconds } from './cache'; export interface Options { formats?: Story.FormatVersion[]; cache?: { storage: Cache; latestVersion: UnixTimestampInSeconds; }; } export declare namespace stories { interface SearchParams { search?: string; category?: Pick<Category, 'id'>; tags?: string[]; locale?: Pick<Culture, 'code'> | Culture.Code; limit: number; offset?: number; highlighted?: number; query?: Query; } interface IncludeOptions<Include extends keyof Story.ExtraFields> { include?: Include[]; } } export declare namespace allStories { interface SearchParams { search?: string; category?: Pick<Category, 'id'>; locale?: Pick<Culture, 'code'>; } interface IncludeOptions<Include extends keyof Story.ExtraFields> { include?: Include[]; } } export declare namespace story { type SearchParams = { uuid: Story['uuid']; slug?: never; } | { uuid?: never; slug: Story['slug']; }; interface IncludeOptions<Include extends keyof Story.ExtraFields> { include?: Include[]; } } export declare namespace galleries { interface SearchParams { offset?: number; limit?: number; type?: `${NewsroomGallery.Type}`; } } export type Client = ReturnType<typeof createClient>; export declare function createClient(prezly: PrezlyClient, newsroomUuid: Newsroom['uuid'], newsroomThemeUuid: NewsroomTheme['id'] | undefined, { formats, cache }?: Options): { newsroom(): Promise<Newsroom>; theme(): Promise<import("@prezly/sdk").NewsroomThemePreset> | undefined; themeSettings(): Promise<Record<string, any> | undefined>; languages(): Promise<import("@prezly/sdk").NewsroomLanguageSettings[]>; usedLanguages(): Promise<import("@prezly/sdk").NewsroomLanguageSettings[]>; locales(): Promise<Culture.Code[]>; defaultLanguage(): Promise<import("@prezly/sdk").NewsroomLanguageSettings>; companyInformation(code?: Culture["code"]): Promise<import("@prezly/sdk").NewsroomCompanyInformation>; notifications(locale: Culture["code"]): Promise<import("@prezly/sdk").Notification<string>[]>; defaultLocale(): Promise<Culture.Code>; language(code: Culture["code"]): Promise<import("@prezly/sdk").NewsroomLanguageSettings | undefined>; languageOrDefault(code: Culture["code"]): Promise<import("@prezly/sdk").NewsroomLanguageSettings>; categories(): Promise<Category[]>; category(arg: Category["id"] | Category.Translation["slug"]): Promise<Category | undefined>; translatedCategories(locale: Culture["code"], categories?: Category[]): Promise<TranslatedCategory[]>; translatedCategory(locale: Culture["code"], slug: Category.Translation["slug"]): Promise<TranslatedCategory | undefined>; featuredContacts(): Promise<import("@prezly/sdk").NewsroomContact[]>; galleries(params?: galleries.SearchParams): Promise<import("@prezly/sdk/dist/endpoints/NewsroomGalleries").ListResponse>; gallery(uuid: NewsroomGallery["uuid"]): Promise<NewsroomGallery | null>; stories<Include extends keyof Story.ExtraFields = never>(params: stories.SearchParams, options?: stories.IncludeOptions<Include>): Promise<Stories.ListResponse<Story & Pick<Story.ExtraFields, Include>>>; allStories<Include extends keyof Story.ExtraFields = never>(params?: allStories.SearchParams, options?: allStories.IncludeOptions<Include>): Promise<(Story & Pick<Story.ExtraFields, Include>)[]>; story<Include extends keyof Story.ExtraFields = never>(params: story.SearchParams, options?: story.IncludeOptions<Include>): Promise<(import("@prezly/sdk").ExtendedStory & Pick<Story.ExtraFields, "thumbnail_image" | "content" | "header_image" | "preview_image" | "social_image" | "social_text" | "tag_names" | "attached_gallery_content" | "referenced_entities" | Include>) | null>; };