import React from 'react';
/**
 * Adds the properties from the defined parameters object to 'storyFunction.story.parameters._plugin_.*'
 * @param story the story function
 * @param plugin the name of the plugin/configuration property that should be set
 * @param parameters an object holding the settings that should be added to the configuration
 */
export declare const addParameters: (storyFunction: React.FC, plugin: string, params: Record<string, unknown>) => void;
/**
 * Adds the properties from the defined parameters object to 'storyFunction.story.parameters.info.*'
 * @param story the story function
 * @param parameters an object holding the settings that should be added to the configuration
 */
export declare const addInfo: (story: React.FC, parameters: Record<string, unknown>) => void;
/**
 * Generates an array with the amount of items defined.
 * @param amount number of items
 * @param generator generator function that can generate an item
 */
export declare function generateItemArray<T>(amount: number, generator: (index: number) => T): T[];
/**
 * Returns a random number between min (inclusive) and max (exclusive)
 */
export declare function getRandomArbitrary(min: number, max: number): number;
/**
 * Returns a random integer between min (inclusive) and max (inclusive).
 * The value is no lower than min (or the next integer greater than min
 * if min isn't an integer) and no greater than max (or the next integer
 * lower than max if max isn't an integer).
 * Using Math.round() will give you a non-uniform distribution!
 */
export declare function getRandomInt(min: number, max: number): number;
/**
 * @deprecated Use Storybook's 'ComponentStoryObj' and CSF3 instead
 */
export type Story = React.FC & {
    story?: {
        [key: string]: any;
        name?: string;
        parameters?: {
            [key: string]: any;
            docs: {
                storyDescription: string;
            };
        };
    };
};
export declare function randomDate(start?: Date, end?: Date): Date;
export declare function wait(ms: number): Promise<void>;
/**
 * Generates a groups object for storybook controls. Used groups:
 * @example
 * createGroups({
 *   Storybook: [],
 *   Content: [],
 *   Behavior: [],
 *   Styling: [],
 * })
 * @param definition
 * @returns
 */
export declare const createGroups: (definition: {
    [key: string]: string[];
}) => {
    [key: string]: {
        table: {
            category: string;
        };
    };
};
/**
 * Maps an enum to an object with the same keys and values.
 * @example
 * enum MyEnum {
 *  A = 1,
 *  B = 2,
 * }
 * const obj = enumToObj(MyEnum);
 * // obj = { A: 1, B: 2 }
 * @param en The enum to map
 * @returns An object with the same keys and values as the enum
 */
export declare const enumToObj: <T extends Record<string, string | number>>(en: T) => Record<keyof T, T[keyof T]>;
//# sourceMappingURL=storybook.d.ts.map