Files
Immich/web/src/app.d.ts
T
Daniel DietzlerandCodex 8125af4859 chore: migrate web imports from .js to .ts (#32742)
(cherry picked from commit f97c2243fbe5f64a4e1bf96128b82a37cc481506)
2026-10-27 23:11:20 +03:00

56 lines
1.4 KiB
TypeScript

import type en from '#i18n/en.json';
import 'svelte-i18n';
/// <reference types="@sveltejs/kit" />
// See https://kit.svelte.dev/docs/types#app
// for information about these interfaces
declare namespace App {
interface PageData {
meta: {
title: string;
};
}
interface Error {
message: string;
stack?: string;
code?: string | number;
}
}
declare module '$env/static/public' {
export const PUBLIC_IMMICH_PAY_HOST: string;
export const PUBLIC_IMMICH_BUY_HOST: string;
}
interface Element {
// Make optional, because it's unavailable on iPhones.
requestFullscreen?(options?: FullscreenOptions): Promise<void>;
}
type NestedKeys<T, K = keyof T> = K extends keyof T & string
? `${K}` | (T[K] extends object ? `${K}.${NestedKeys<T[K]>}` : never)
: never;
declare module 'svelte-i18n' {
import type { InterpolationValues } from '#lib/elements/format-message.ts';
import type { Readable } from 'svelte/store';
type Translations = NestedKeys<typeof en>;
interface MessageObject {
id: Translations;
locale?: string;
format?: string;
default?: string;
values?: InterpolationValues;
}
type MessageFormatter = (id: Translations | MessageObject, options?: Omit<MessageObject, 'id'>) => string;
const format: Readable<MessageFormatter>;
const t: Readable<MessageFormatter>;
const _: Readable<MessageFormatter>;
}