UNPKG

5.76 kBTypeScriptView Raw
1import { Component, FunctionComponent, ReactElement, ReactNode } from 'react';
2import { Conditional } from '@storybook/csf';
3import { RouterData } from '@storybook/router';
4import { Listener } from '@storybook/channels';
5import Store, { Options } from './store';
6import type { StoriesHash, Story, Root, Group } from './lib/stories';
7import type { ComposedRef, Refs } from './modules/refs';
8import { isGroup, isRoot, isStory } from './lib/stories';
9import * as provider from './modules/provider';
10import * as addons from './modules/addons';
11import * as channel from './modules/channel';
12import * as notifications from './modules/notifications';
13import * as settings from './modules/settings';
14import * as releaseNotes from './modules/release-notes';
15import * as stories from './modules/stories';
16import * as refs from './modules/refs';
17import * as layout from './modules/layout';
18import * as shortcuts from './modules/shortcuts';
19import * as url from './modules/url';
20import * as version from './modules/versions';
21import * as globals from './modules/globals';
22declare const ActiveTabs: {
23 SIDEBAR: "sidebar";
24 CANVAS: "canvas";
25 ADDONS: "addons";
26};
27export { default as merge } from './lib/merge';
28export type { Options as StoreOptions, Listener as ChannelListener };
29export { ActiveTabs };
30export declare type ModuleArgs = RouterData & ProviderData & {
31 mode?: 'production' | 'development';
32 state: State;
33 fullAPI: API;
34 store: Store;
35};
36export declare type State = layout.SubState & stories.SubState & refs.SubState & notifications.SubState & version.SubState & url.SubState & shortcuts.SubState & releaseNotes.SubState & settings.SubState & globals.SubState & RouterData & Other;
37export declare type API = addons.SubAPI & channel.SubAPI & provider.SubAPI & stories.SubAPI & refs.SubAPI & globals.SubAPI & layout.SubAPI & notifications.SubAPI & shortcuts.SubAPI & releaseNotes.SubAPI & settings.SubAPI & version.SubAPI & url.SubAPI & Other;
38interface Other {
39 [key: string]: any;
40}
41export interface Combo {
42 api: API;
43 state: State;
44}
45interface ProviderData {
46 provider: provider.Provider;
47}
48export declare type ManagerProviderProps = RouterData & ProviderData & {
49 docsMode: boolean;
50 children: ReactNode | ((props: Combo) => ReactNode);
51};
52export declare type StoryId = string;
53export declare type StoryKind = string;
54export interface Args {
55 [key: string]: any;
56}
57export interface ArgType {
58 name?: string;
59 description?: string;
60 defaultValue?: any;
61 if?: Conditional;
62 [key: string]: any;
63}
64export interface ArgTypes {
65 [key: string]: ArgType;
66}
67export interface Parameters {
68 [key: string]: any;
69}
70export declare const combineParameters: (...parameterSets: Parameters[]) => any;
71export declare type ModuleFn = (m: ModuleArgs) => Module;
72interface Module {
73 init?: () => void;
74 api?: unknown;
75 state?: unknown;
76}
77declare class ManagerProvider extends Component<ManagerProviderProps, State> {
78 api: API;
79 modules: Module[];
80 static displayName: string;
81 constructor(props: ManagerProviderProps);
82 static getDerivedStateFromProps(props: ManagerProviderProps, state: State): {
83 location: Partial<Location>;
84 path: string;
85 refId: string;
86 viewMode: string;
87 storyId: string;
88 layout: layout.Layout;
89 ui: layout.UI;
90 selectedPanel: string;
91 theme: import("@storybook/theming").ThemeVars;
92 storiesHash: StoriesHash;
93 storiesConfigured: boolean;
94 storiesFailed?: Error;
95 refs: Record<string, ComposedRef>;
96 notifications: notifications.Notification[];
97 versions: version.Versions & version.UnknownEntries;
98 lastVersionCheck: number;
99 dismissedVersionNotification: string;
100 customQueryParams: url.QueryParams;
101 shortcuts: shortcuts.Shortcuts;
102 releaseNotesViewed: string[];
103 settings: settings.Settings;
104 globals?: import("@storybook/csf").Globals;
105 globalTypes?: import("@storybook/csf").GlobalTypes;
106 navigate: (to: string | number, { plain, ...options }?: any) => void;
107 singleStory?: boolean;
108 };
109 shouldComponentUpdate(nextProps: ManagerProviderProps, nextState: State): boolean;
110 initModules: () => void;
111 render(): JSX.Element;
112}
113interface ManagerConsumerProps<P = unknown> {
114 filter?: (combo: Combo) => P;
115 children: FunctionComponent<P> | ReactNode;
116}
117declare function ManagerConsumer<P = Combo>({ filter, children, }: ManagerConsumerProps<P>): ReactElement;
118export declare function useStorybookState(): State;
119export declare function useStorybookApi(): API;
120export type { StoriesHash, Story, Root, Group, ComposedRef, Refs };
121export { ManagerConsumer as Consumer, ManagerProvider as Provider, isGroup, isRoot, isStory };
122export interface EventMap {
123 [eventId: string]: Listener;
124}
125export declare const useChannel: (eventMap: EventMap, deps?: any[]) => (type: string, ...args: any[]) => void;
126export declare function useStoryPrepared(storyId?: StoryId): boolean;
127export declare function useParameter<S>(parameterKey: string, defaultValue?: S): S;
128declare type StateMerger<S> = (input: S) => S;
129export declare function useSharedState<S>(stateId: string, defaultState?: S): [S, (newStateOrMerger: S | StateMerger<S>, options?: Options) => void];
130export declare function useAddonState<S>(addonId: string, defaultState?: S): [S, (newStateOrMerger: S | StateMerger<S>, options?: Options) => void];
131export declare function useArgs(): [Args, (newArgs: Args) => void, (argNames?: string[]) => void];
132export declare function useGlobals(): [Args, (newGlobals: Args) => void];
133export declare function useGlobalTypes(): ArgTypes;
134export declare function useArgTypes(): ArgTypes;