import filters from "@/filters";
import { default as message } from "ant-design-vue/lib/message";
// import { default as notification } from "ant-design-vue/lib/notification";
// import { default as notification } from "ant-design-vue/es/notification/index.js";
// import { notification } from "ant-design-vue";

declare module "@vue/runtime-core" {
  interface ComponentCustomProperties {
    $filters: typeof filters;

    $message: typeof message;
    // $notification: typeof notification;
  }
}

declare module "axios/index" {
  interface AxiosRequestConfig {
    noErrorMessage?: boolean | false;
    setGlobalMask?: boolean | false;
  }
}

interface Option {
  OBJECT_URLS_MAP_MAX_SIZE?: number;
}

declare global {
  interface Window {
    APP_OPTIONS: Option;
  }
}

declare module "vue" {
  // for volar
  export interface GlobalComponents {
    RouterLink: typeof import("vue-router")["RouterLink"];
    RouterView: typeof import("vue-router")["RouterView"];
    // AModal: typeof import("ant-design-vue")["Modal"];
    // AButton: typeof import("ant-design-vue")["Button"];
    // AForm: typeof import("ant-design-vue")["Form"];
    // AFormItem: typeof import("ant-design-vue")["FormItem"];
    // AInput: typeof import("ant-design-vue")["Input"];
    // APopover: typeof import("ant-design-vue")["Popover"];
    // APopconfirm: typeof import("ant-design-vue")["Popconfirm"];
    // ATooltip: typeof import("ant-design-vue")["Tooltip"];
  }
}
