/**
 * Component prop definition for validation
 */
export declare interface PropDefinition {
  type: PropType | PropType[]
  required?: boolean
  default?: unknown
  validator?: (value: unknown) => boolean
}
/**
 * Component props schema for validation
 *
 * @example
 * ```typescript
 * const alertProps: ComponentPropsSchema = {
 *   title: { type: 'string', required: true },
 *   type: { type: 'string', default: 'info' },
 *   dismissible: { type: 'boolean', default: false }
 * }
 * ```
 */
export declare interface ComponentPropsSchema {
  [propName: string]: PropDefinition
}
/**
 * Component definition with metadata
 */
export declare interface ComponentDefinition {
  name: string
  path?: string
  props?: ComponentPropsSchema
  description?: string
}
/**
 * Component configuration
 */
export declare interface ComponentConfig {
  validateProps?: boolean
  components?: Record<string, ComponentDefinition>
}
/**
 * Web component definition
 */
export declare interface WebComponent {
  name: string
  tag: string
  file: string
  extends?: string
  shadowDOM?: boolean
  template?: boolean
  styleSource?: string
  attributes?: string[]
  description?: string
  outputFormat?: 'js' | 'ts'
  attributeTypes?: Record<string, 'string' | 'number' | 'boolean' | 'object'>
}
/**
 * Web components configuration
 */
export declare interface WebComponentConfig {
  enabled: boolean
  outputDir: string
  components: WebComponent[]
}
/**
 * Component property documentation
 */
export declare interface ComponentPropDoc {
  name: string
  type?: string
  required?: boolean
  default?: string
  description?: string
}
/**
 * Component documentation
 */
export declare interface ComponentDoc {
  name: string
  path: string
  description?: string
  props: ComponentPropDoc[]
  example?: string
  isWebComponent?: boolean
  tag?: string
}
/**
 * Template documentation
 */
export declare interface TemplateDoc {
  name: string
  path: string
  description?: string
  components?: string[]
  directives?: string[]
}
/**
 * Directive documentation
 */
export declare interface DirectiveDoc {
  name: string
  description?: string
  hasEndTag: boolean
  example?: string
}
/**
 * Documentation generator configuration
 */
export declare interface DocGeneratorConfig {
  enabled: boolean
  outputDir: string
  format: DocFormat
  components: boolean
  templates: boolean
  directives: boolean
  extraContent?: string
  template?: string
}
/**
 * Component System Types
 */
/**
 * Prop type definition for component prop validation
 */
export type PropType = 'string' | 'number' | 'boolean' | 'array' | 'object' | 'function' | 'any';
/**
 * Documentation format options
 */
export type DocFormat = 'markdown' | 'html' | 'json';
