export declare enum PropertyTypes { TEXT = "text", NUMBER = "number", BOOLEAN = "boolean", OPTIONS = "options", DATE = "date", COLOR = "color", BUTTON = "button", OBJECT = "object", ARRAY = "array", FILES = "files" } export interface StoryPropertyBase { type: PropertyTypes; label?: string; value?: T; hideLabel?: boolean; hidden?: boolean; groupId?: string; order?: number; } export interface StoryPropertyText extends StoryPropertyBase { type: PropertyTypes.TEXT; placeholder?: string; maxRows?: number; } export interface StoryPropertyBoolean extends StoryPropertyBase { type: PropertyTypes.BOOLEAN; } export interface StoryPropertyColor extends StoryPropertyBase { type: PropertyTypes.COLOR; } export interface StoryPropertyDate extends StoryPropertyBase { type: PropertyTypes.DATE; datePicker?: boolean; timePicker?: boolean; } export interface StoryPropertyFiles extends StoryPropertyBase { type: PropertyTypes.FILES; accept?: string; } export interface StoryPropertyArray extends StoryPropertyBase { type: PropertyTypes.ARRAY; separator?: string; } export interface StoryPropertyObject extends StoryPropertyBase { type: PropertyTypes.OBJECT; } export interface StoryPropertyButton extends StoryPropertyBase { type: PropertyTypes.BUTTON; onClick?: (prop: StoryPropertyButton) => void; } export declare type OptionsValueType = T | string | number | string[] | number[] | { label: string; value: any; }; export declare type OptionsListType = { [key: string]: T; } | OptionsValueType[]; export interface StoryPropertyOptions extends StoryPropertyBase> { type: PropertyTypes.OPTIONS; options: OptionsListType; display?: 'select' | 'multi-select' | 'radio' | 'inline-radio' | 'check' | 'inline-check'; } export interface StoryPropertyNumber extends StoryPropertyBase { type: PropertyTypes.NUMBER; range?: boolean; min?: number; max?: number; step?: number; } export declare type StoryProperty = StoryPropertyText | StoryPropertyBoolean | StoryPropertyColor | StoryPropertyDate | StoryPropertyObject | StoryPropertyButton | StoryPropertyOptions | StoryPropertyNumber | StoryPropertyArray | StoryPropertyFiles; export interface StoryProperties { [name: string]: StoryProperty; }