export {}; import * as Swal from "sweetalert2"; import { AxiosStatic } from "axios"; import type { VueSelectProps } from "vue-select"; // * CustomLabel type SelectModelType = { color: string; label: string; value: string; }; type EnumType = { label: string; value: number | string; }; // * Recursive List type StringList = Record; // eslint-disable-next-line @typescript-eslint/no-empty-interface interface NestedStringListInterface extends Record {} // * Recursive List type NumberList = Record; // eslint-disable-next-line @typescript-eslint/no-empty-interface interface NestedNumberListInterface extends Record {} // * Recursive List type Model = Record< string, | string | boolean | number | object | NestedStringList | NestedNumberList | NestedModelInterface >; // eslint-disable-next-line @typescript-eslint/no-empty-interface interface NestedModelInterface extends Model {} type NestedStringList = NestedStringListInterface | StringList | string; type NestedNumberList = NestedNumberListInterface | NumberList | number; type ModelList = Array; declare global { type CustomTag = LaravelModel; type LaravelModel = Model; type LaravelModelList = ModelList; type VSelectProps = VueSelectProps; type SelectModel = SelectModelType; type Enum = EnumType; interface Window { $displayMenu: (show: boolean) => void; $toggleBasketMenu: () => void; axios: AxiosStatic; Swal: typeof Swal; __SESSION_WATCH: Record; __SYSTEM: { _asset: string; _locale: string; _routes: Record; _translations: { json: NestedStringList; php: NestedStringList; }; }; } }