export { }; import type VueTagsInput from "@sipec/vue3-tags-input"; import { AxiosStatic } from "axios"; // * CustomLabel type SelectModelType = { color: string; label: string; value: string; }; // * Enum interface EnumInterface { label: string; value: number | string; } // * Laravel Paginator interface PaginatorLink { url: null | string; label: string; active: boolean; } interface Paginator { current_page: number; first_page_url: string; from: number; last_page: number; last_page_url: string; links: Array; next_page_url: string | null; path: string; per_page: number; prev_page_url: string | null; to: number; total: number; } // * Others type VselectOptionType = { id: number; name: string; value: number | string; }; // * 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 | boolean | number | object | NestedStringList | NestedNumberList | NestedModelInterface | ModelListInterface >; interface NestedModelInterface extends Model {} type NestedStringList = NestedStringListInterface | StringList | string; type NestedNumberList = NestedNumberListInterface | NumberList | number; type ModelList = Array; interface ModelListInterface extends ModelList {} declare global { type CustomTag = LaravelModel & VueTagsInput.ITag; type LaravelModel = Model; type LaravelModelList = ModelList; type LaravelPaginator = Paginator; type LaravelPaginatorLink = PaginatorLink; type SelectModel = SelectModelType; type VselectOption = VselectOptionType; type Enum = EnumInterface; interface Window { axios: AxiosStatic; Swal: Function; vueDebug: boolean | undefined; __SYSTEM: { _asset: string; _locale: string; _routes: Record; _translations: { json: NestedStringList; php: NestedStringList; }; }; } }