import { ISbComponentType, ISbConfig, ISbStoryData, default as StoryblokClient } from 'storyblok-js-client'; declare global { interface Window { storyblokRegisterEvent: (cb: () => void) => void; StoryblokBridge: { new (options?: StoryblokBridgeConfigV2): StoryblokBridgeV2; }; } } export interface SbInitResult { storyblokApi?: StoryblokClient; } export type SbPluginFactory = (options: SbSDKOptions) => any; export type SbBlokKeyDataTypes = string | number | object | boolean | undefined; export interface SbBlokData extends ISbComponentType { [index: string]: SbBlokKeyDataTypes; } export interface SbSDKOptions { bridge?: boolean; accessToken?: string; use?: any[]; apiOptions?: ISbConfig; bridgeUrl?: string; } export interface ISbEventPayload = any> { action: 'customEvent' | 'published' | 'input' | 'change' | 'unpublished' | 'enterEditmode'; event?: string; story?: ISbStoryData; slug?: string; slugChanged?: boolean; storyId?: number; reload?: boolean; } export interface StoryblokBridgeConfigV2 { resolveRelations?: string | string[]; customParent?: string; preventClicks?: boolean; language?: string; resolveLinks?: 'url' | 'story' | '0' | '1' | 'link'; fallbackLang?: 'string'; } export interface StoryblokBridgeV2 { pingEditor: (event: any) => void; isInEditor: () => boolean; enterEditmode: () => void; on: (event: 'customEvent' | 'published' | 'input' | 'change' | 'unpublished' | 'enterEditmode' | string[], callback: (payload?: ISbEventPayload) => void) => void; } export type { ArrayFn, AsyncFn, ISbAlternateObject, // previously AlternateObject ISbCache, // previously StoryblokCache ISbComponentType as StoryblokComponentType, ISbConfig, // previously StoryblokConfig ISbContentMangmntAPI, ISbDimensions, ISbError, ISbManagmentApiResult, // previously StoryblokManagmentApiResult ISbResponse, ISbResult, // previously StoryblokResult ISbSchema, ISbStories, // previously Stories ISbStoriesParams, // previously StoriesParams ISbStory, // previously Story ISbStoryData, // previously StoryData ISbStoryParams, // previously StoryParams ISbThrottle, ISbThrottledRequest, } from 'storyblok-js-client';