export interface WidgetSettings {
  [key: string]: string | number | boolean | string[];
}

export interface WidgetConfig {
  id: string;
  type: string;
  settings: WidgetSettings;
  position?: {
    x: number;
    y: number;
  };
  size?: {
    width: number;
    height: number;
  };
}

export interface WidgetSchema {
  name: string;
  description: string;
  settingsSchema: {
    [key: string]: {
      type: 'string' | 'number' | 'boolean' | 'select';
      label: string;
      default: string | number | boolean;
      options?: string[];
      required?: boolean;
    };
  };
}

export interface WidgetComponent {
  schema: WidgetSchema;
  Component: any; // Solid component
}
