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;
        categories?: 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;
        categories?: 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>;
};
