/// <reference types="vite/client" />

declare module '*.vue' {
  import type { DefineComponent } from 'vue'
  const component: DefineComponent<{}, {}, unknown>
  export default component
}

interface ComponentConstructor<P = any> {
  new (...args: any[]): {
    $props: P
  }
}

interface ImportMetaEnv {
  readonly VITE_SERVER: string
}

interface ImportMeta {
  readonly env: ImportMetaEnv
}

type PartialPart<T extends {}, K extends keyof T> = Omit<T, K> &
  Partial<Pick<T, K>>
