import type { ComponentProps, SvelteComponent } from 'svelte'; import type { SlideParams } from 'svelte/transition'; type RadixComponentGroup = { [key: string]: typeof SvelteComponent; }; export type PreviewProps = PreviewPropBoolean | PreviewPropString | PreviewPropNumber | PreviewPropArray | PreviewPropEnum; type BasePreviewProp = { show?: 'controls' | 'value' | null; default?: T; typeLabel?: string; }; export type PreviewPropBoolean = { type: 'boolean'; } & BasePreviewProp; export type PreviewPropString = { type: 'string'; } & BasePreviewProp; export type PreviewPropNumber = { type: 'number'; } & BasePreviewProp; export type PreviewPropArray = { type: 'number[]' | 'string[]'; } & BasePreviewProp; export type PreviewPropEnum = { type: 'enum'; options: T[]; } & BasePreviewProp; export type PreviewPropAny = { type: any; show: 'value' | null; default?: never; }; type PreviewComponentProps> = { [K in keyof P]: K extends `data-${string}` ? never : boolean extends NonNullable ? PreviewPropBoolean : NonNullable extends string ? PreviewPropString | PreviewPropEnum> : NonNullable extends string[] ? PreviewPropArray : number extends NonNullable ? PreviewPropNumber : NonNullable extends number[] ? PreviewPropArray : NonNullable extends boolean | SlideParams ? PreviewPropBoolean : PreviewPropAny; }; export type ResolvedProps = { [K in keyof GROUP]: ComponentProps>; }; export type PreviewEvent = { payload: T | Array | string; }; type PreviewComponentEvents = { [K in keyof CMP['$$events_def']]: CMP['$$events_def'][K] extends CustomEvent ? PreviewEvent : never; }; export type PreviewDataAttribute = { values: string[] | string; }; type PreviewComponentDataAttributes = { [key: `data-${string}`]: PreviewDataAttribute; }; type RadixComponentPreview = { description?: string; props?: PreviewComponentProps>; dataAttributes?: PreviewComponentDataAttributes; events?: PreviewComponentEvents>; }; export type PreviewMeta = { [K in keyof GROUP]: RadixComponentPreview; }; export type PreviewSchema = { title: string; description: string; example: unknown; code: string; meta: PreviewMeta; }; export declare function getPropsObj(previewMeta: PreviewMeta): ResolvedProps; export {};