export {}; import { AxiosStatic } from "axios"; import type VueTagsInput from "vue3-tags-input"; // * Recursive List type StringList = Record; interface NestedStringListInterface extends Record {} // * Recursive List type NumberList = Record; interface NestedNumberListInterface extends Record {} // * Recursive List type Model = Record< string, | string | number | object | NestedStringList | NestedNumberList | NestedModelInterface >; interface NestedModelInterface extends Model {} type NestedStringList = NestedStringListInterface | StringList | string; type NestedNumberList = NestedStringListInterface | NumberList | number; type ModelList = Array; declare global { type CustomTag = LaravelModel & VueTagsInput.ITag; type LaravelModel = Model; type LaravelModelList = ModelList; interface Window { $displayMenu: (show: boolean) => void; $toggleBasketMenu: () => void; axios: AxiosStatic; Swal: Function; __SYSTEM: { _asset: string; _locale: string; _routes: Record; _translations: { json: NestedStringList; php: NestedStringList; }; }; } }