import type { TemplateResult } from 'lit'; import { nothing } from 'lit'; export type PlaygroundControlType = 'text' | 'textarea' | 'boolean' | 'select'; export interface PlaygroundControl { key: string; label: string; type: PlaygroundControlType; section: string; placeholder?: string; rows?: number; fullWidth?: boolean; options?: { value: string; label: string; }[]; } export type PlaygroundProps = Record; export interface PlaygroundPreviewHandlers { onPropChange: (key: string, value: string | boolean) => void; } export interface PlaygroundDefinition { tag: string; label: string; description?: string; defaults: PlaygroundProps; controls: PlaygroundControl[]; formatUsage: (props: PlaygroundProps) => string; renderPreview: (props: PlaygroundProps, handlers?: PlaygroundPreviewHandlers) => TemplateResult | HTMLElement; onPropChange?: (key: string, value: string | boolean, props: PlaygroundProps) => Partial> | undefined; getPreviewClass?: (props: PlaygroundProps) => string; } export interface ThemeChangeDetail { palette: 'nuxt' | 'next'; mode: 'light' | 'dark'; } export interface PropChangeDetail { key: string; value: string | boolean; } export declare function groupControlsBySection(controls: PlaygroundControl[]): Map; /** Omit empty string attributes from Lit templates. */ export declare function whenString(value: unknown): typeof nothing | string; /** Omit false boolean attributes from Lit templates. */ export declare function whenBoolean(value: unknown): typeof nothing | true; /** Omit string attributes equal to a default value. */ export declare function whenStringNotDefault(value: unknown, defaultValue: unknown): typeof nothing | string; export declare function formatUsageFromDefaults(tag: string, props: PlaygroundProps, defaults: PlaygroundProps, attributeNames?: Record): string; //# sourceMappingURL=types.d.ts.map