/// import { HooksContext } from './hooks'; import { Addon } from './index'; export declare enum types { TAB = "tab", PANEL = "panel", TOOL = "tool", PREVIEW = "preview", NOTES_ELEMENT = "notes-element" } export declare type Types = types | string; export declare function isSupportedType(type: Types): boolean; export interface Parameters { fileName?: string; options?: OptionsParameter; [key: string]: any; } export interface StoryContext { id: string; name: string; kind: string; [key: string]: any; parameters: Parameters; hooks?: HooksContext; } export interface WrapperSettings { options: OptionsParameter; parameters: { [key: string]: any; }; } export interface OptionsParameter extends Object { storySort?: any; hierarchyRootSeparator?: string; hierarchySeparator?: RegExp; showRoots?: boolean; theme?: { base: string; brandTitle?: string; }; [key: string]: any; } export declare type StoryGetter = (context: StoryContext) => any; export declare type StoryFn = (p?: StoryContext) => ReturnType; export declare type StoryWrapper = (getStory: StoryGetter, context: StoryContext, settings: WrapperSettings) => any; export declare type MakeDecoratorResult = (...args: any) => any; export interface AddStoryArgs { id: string; kind: string; name: string; storyFn: StoryFn; parameters: Parameters; } export interface ClientApiAddon extends Addon { apply: (a: StoryApi, b: any[]) => any; } export interface ClientApiAddons { [key: string]: ClientApiAddon; } export declare type ClientApiReturnFn = (...args: any[]) => StoryApi; export interface StoryApi { kind: string; add: (storyName: string, storyFn: StoryFn, parameters?: Parameters) => StoryApi; addDecorator: (decorator: DecoratorFunction) => StoryApi; addParameters: (parameters: Parameters) => StoryApi; [k: string]: string | ClientApiReturnFn; } export declare type DecoratorFunction = (fn: StoryFn, c: StoryContext) => ReturnType>; export interface ClientStoryApi { storiesOf(kind: string, module: NodeModule): StoryApi; addDecorator(decorator: DecoratorFunction): StoryApi; addParameters(parameter: Parameters): StoryApi; } declare type LoadFn = () => any; declare type RequireContext = any; export declare type Loadable = RequireContext | [RequireContext] | LoadFn; export {};