/// /// /// import type { TemplateResult } from "lit"; interface PWAIcons { src: string; sizes: string; type: string; purpose: string; } interface PWA { dir: string; icons: PWAIcons[]; start_url: string; display: string; orientation: string; background_color: string; theme_color: string; } interface I18n { lang: string; force: boolean; } interface ComponentParameters { replacement?: string; bindResources?: string; bindUser?: string; dataSrc?: string; nestedField?: string; authority?: string; authorityName?: string; noRender?: string; } interface MenuItem { name: string; category: string; icon?: string; disabled?: boolean; alternate?: string[]; featureflags?: string[]; route?: string | false; dataSrc?: string; uniq?: string; active?: boolean; skip?: boolean; } interface TEMSComponentParameters extends ComponentParameters { defaultDataSrc?: string; menu?: MenuItem; header?: string; tab?: string; tabGroup?: string; federation?: string[]; } interface OrbitComponent { type?: string; parameters: TEMSComponentParameters; route: string | false; integration?: string[]; uniq?: string; experimental?: string[]; routeAttributes?: { "rdf-type": string; "use-id": string; }; defaultRoute?: boolean; extensions?: OrbitComponent[]; attributes?: Record; instance?: Element; } interface OrbitClient { name: string; logo: string; server?: string; css?: string[] | string | false; rdf_tems_scope?: string; description?: string; favicon?: string; defaultAvatar?: string; i18n?: I18n; pwa?: PWA; } interface NpmPackage { package: string; version: string; path: string; } export interface Orbit { client: OrbitClient; components: OrbitComponent[]; npm?: NpmPackage[]; } export interface LiveOrbit extends Orbit { componentSet: Set; federations: Record; getDefaultRoute: () => string; getComponent: (type: string) => OrbitComponent | undefined; getComponentFromRoute: (route: string) => OrbitComponent | undefined; getRoute: ( type: string, returnFirst?: boolean, ignoreError?: boolean ) => string | false; Swal: any; defaultRoute: string; } type Context = Record; type Permission = "add" | "delete" | "change" | "control" | "view" | string; type DateTime = string; interface LimitedResource { "@id": string; "@type"?: string | string[] | Promise; _originalResource?: Resource; properties?: string[] | Promise; permissions?: Permission[]; clientContext?: Context | Promise; serverContext?: Context | Promise; creation_date?: DateTime; update_date?: DateTime; } interface Resource extends LimitedResource { [key: string]: any; } interface UnknownResource { [key: string]: any; } interface Container extends Resource { "ldp:contains": T[]; } type ProxyValue = T extends Array ? U[] : Resource & T; interface User extends Resource { account?: Account; first_name?: string; last_name?: string; name?: string; username?: string; email?: string; } interface Account extends Resource { picture?: string | null; } interface PropertiesPicker { key: string; value: string; cast?: function; expand?: boolean; } interface MenuEntry { [key: string]: MenuItem[]; } interface BreadcrumbPath { icon?: TemplateResult; route?: string; resource?: string; label: string; } interface SearchObject { name: string; value: string; type?: string; } type TemplateResultOrSymbol = TemplateResult | symbol; export declare global { interface Window { orbit: LiveOrbit; sibStore: { getData: ProxyValue; [key: string]: any }; sibRouter: { [key: string]: any }; } interface Element { currentRouteName: string; } interface Event { [key: string]: any; } interface EventTarget { [key: string]: any; } } export interface RegisterOrganisation extends LimitedResource { status: string; firstname: string; lastname: string; email: string; organisation: string; organisationAddress: string; organisationRegistrationNumber: string; optin_register: boolean; }