///
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 {};