import { WebRenderer, Args, ComponentAnnotations, AnnotatedStoryFn, StoryAnnotations, StrictArgs, DecoratorFunction, LoaderFunction, StoryContext as StoryContext$1, ProjectAnnotations } from 'storybook/internal/types';
export { ArgTypes, Args, Parameters, StrictArgs } from 'storybook/internal/types';

type StoryFnServerReturnType = any;
interface ServerRenderer extends WebRenderer {
    component: string;
    storyResult: StoryFnServerReturnType;
}

/**
 * Metadata to configure the stories for a component.
 *
 * @see [Default export](https://storybook.js.org/docs/api/csf#default-export)
 */
type Meta<TArgs = Args> = ComponentAnnotations<ServerRenderer, TArgs>;
/**
 * Story function that represents a CSFv2 component example.
 *
 * @see [Named Story exports](https://storybook.js.org/docs/api/csf#named-story-exports)
 */
type StoryFn<TArgs = Args> = AnnotatedStoryFn<ServerRenderer, TArgs>;
/**
 * Story object that represents a CSFv3 component example.
 *
 * @see [Named Story exports](https://storybook.js.org/docs/api/csf#named-story-exports)
 */
type StoryObj<TArgs = Args> = StoryAnnotations<ServerRenderer, TArgs>;

type Decorator<TArgs = StrictArgs> = DecoratorFunction<ServerRenderer, TArgs>;
type Loader<TArgs = StrictArgs> = LoaderFunction<ServerRenderer, TArgs>;
type StoryContext<TArgs = StrictArgs> = StoryContext$1<ServerRenderer, TArgs>;
type Preview = ProjectAnnotations<ServerRenderer>;

export type { Decorator, Loader, Meta, Preview, ServerRenderer, StoryContext, StoryFn, StoryObj };
