import * as rsbuildReal from '@rsbuild/core';
import { RsbuildConfig } from '@rsbuild/core';
import { TypescriptOptions as TypescriptOptions$1, Builder, Options, StorybookConfigRaw, BuilderResult as BuilderResult$1, NormalizedStoriesSpecifier } from 'storybook/internal/types';
import { PluginTypeCheckerOptions } from '@rsbuild/plugin-type-check';

type RsbuildStats = {
    toJson: (...args: any[]) => any;
};
/**
 * Options for TypeScript usage within Storybook.
 */
interface TypescriptOptions extends TypescriptOptions$1 {
    /**
     * Configures `@rsbuild/plugin-type-check`, using `fork-ts-checker-webpack-plugin` under the hood.
     */
    checkOptions?: PluginTypeCheckerOptions;
}
type RsbuildBuilder = Builder<RsbuildConfig, RsbuildStats>;
type RsbuildFinal = (config: RsbuildConfig, options: Options) => RsbuildConfig | Promise<RsbuildConfig>;
type StorybookConfigRsbuild = {
    rsbuildFinal?: RsbuildFinal;
    webpackAddons?: StorybookConfigRaw['addons'];
};
type BuilderOptions = {
    /**
     * Path to rsbuild.config file, relative to CWD.
     */
    rsbuildConfigPath?: string;
    /**
     * Enable Rspack's lazy compilation (experimental).
     */
    lazyCompilation?: boolean;
    /**
     * Which environment to use from the Rsbuild config.
     */
    environment?: string;
    /**
     * @storybook/addon-docs options
     */
    addonDocs?: any;
};
interface BuilderResult extends BuilderResult$1 {
    stats?: Stats;
}

declare const getVirtualModules: (options: Options) => Promise<{
    virtualModules: Record<string, string>;
    entries: string[];
}>;
declare function toImportFnPart(specifier: NormalizedStoriesSpecifier): string;
declare function toImportFn(stories: NormalizedStoriesSpecifier[], relativeOffset: string, { needPipelinedImport }?: {
    needPipelinedImport?: boolean;
}): string;
type ModuleExports = Record<string, any>;
declare function importPipeline(): (importFn: () => Promise<ModuleExports>) => Promise<ModuleExports>;

type StatsOrMultiStats = Parameters<rsbuildReal.OnAfterBuildFn>[0]['stats'];
type Stats = NonNullable<Exclude<StatsOrMultiStats, {
    stats: unknown[];
}>>;
declare const printDuration: (startTime: [number, number]) => string;
type BuilderStartOptions = Parameters<RsbuildBuilder['start']>['0'];
declare const executor: {
    get: (options: Options) => Promise<typeof rsbuildReal>;
};
declare const getConfig: RsbuildBuilder['getConfig'];
declare function bail(): Promise<void>;
declare const start: RsbuildBuilder['start'];
declare const build: ({ options }: BuilderStartOptions) => Promise<Stats>;
declare const corePresets: string[];
declare const previewMainTemplate: () => string;

export { BuilderOptions, BuilderResult, RsbuildBuilder, RsbuildFinal, Stats, StorybookConfigRsbuild, TypescriptOptions, bail, build, corePresets, executor, getConfig, getVirtualModules, importPipeline, previewMainTemplate, printDuration, start, toImportFn, toImportFnPart };
