/// import { type IncomingMessage } from 'node:http'; import { type Ref } from 'vue'; import { type RouteLocation } from 'vue-router'; import { type fetch } from 'ofetch'; import { type SessionState, type SessionStateAuthenticated } from '../shared/session/index.js'; interface Cookies { get: (key: string) => string | undefined; set: (key: string, value: string, options?: Record) => void; remove: (key: string) => void; } export interface SessionOptions { route?: RouteLocation; sitePath?: string; directoryUrl?: string; logoutRedirectUrl?: string; req?: IncomingMessage; cookies?: Cookies; customFetch?: typeof fetch; } export interface Session { state: SessionState; loginUrl: (redirect?: string, extraParams?: Record, immediateRedirect?: true) => string; login: (redirect?: string, extraParams?: Record, immediateRedirect?: true) => void; logout: (redirect?: string) => Promise; switchOrganization: (org: string | null, dep?: string) => void; setAdminMode: (adminMode: boolean, redirect?: string) => Promise; asAdmin: (user: any | null) => Promise; cancelDeletion: () => Promise; keepalive: () => Promise; switchDark: (value: boolean) => void; switchLang: (value: string) => void; topLocation: Ref; options: SessionOptions; } export type SessionAuthenticated = Session & { state: SessionStateAuthenticated; }; export {}; //# sourceMappingURL=session-types.d.ts.map