import { type DefineComponent } from 'vue';

export type VueComponent = DefineComponent<{}, {}, any>;

export type Region =
  | 'brand'
  | 'toolbar'
  | 'action'
  | 'status'
  | 'apps'
  | 'workspace'
  | 'setting';

export type JSONArray = JSONValue[];

export interface JSONObject {
  [key: string]: JSONValue;
}

export type JSONValue =
  | boolean
  | string
  | number
  | null
  | undefined
  | JSONArray
  | JSONObject;

export interface JSExpression {
  type: 'JSExpression';
  value: string;
}

export interface JSFunction {
  type: 'JSFunction';
  value: string;
}
