40 lines
1.4 KiB
TypeScript
40 lines
1.4 KiB
TypeScript
/// <reference path="../.astro/types.d.ts" />
|
|
|
|
// Extend the Window interface to include custom properties
|
|
declare global {
|
|
interface Window {
|
|
themeUtils: {
|
|
initTheme: () => void;
|
|
toggleTheme: () => void;
|
|
getStoredTheme: () => string;
|
|
};
|
|
toolsData: any[];
|
|
showToolDetails: (toolName: string, modalType?: string) => void;
|
|
hideToolDetails: (modalType?: string) => void;
|
|
hideAllToolDetails: () => void;
|
|
toggleKbEntry: (entryId: string) => void;
|
|
toggleDomainAgnosticSection: (sectionId: string) => void;
|
|
restoreAIResults?: () => void;
|
|
switchToAIView?: () => void;
|
|
clearTagFilters?: () => void;
|
|
clearAllFilters?: () => void;
|
|
|
|
// CONSOLIDATED: Tool utility functions
|
|
createToolSlug: (toolName: string) => string;
|
|
findToolByIdentifier: (tools: any[], identifier: string) => any | undefined;
|
|
isToolHosted: (tool: any) => boolean;
|
|
|
|
// CONSOLIDATED: Auth utility functions (now in BaseLayout)
|
|
checkClientAuth: () => Promise<{authenticated: boolean; authRequired: boolean; expires?: string}>;
|
|
requireClientAuth: (callback?: () => void, returnUrl?: string) => Promise<boolean>;
|
|
showIfAuthenticated: (selector: string) => Promise<void>;
|
|
setupAuthButtons: (selector?: string) => void;
|
|
}
|
|
}
|
|
|
|
// Also declare the modules that might not be recognized
|
|
declare module 'js-yaml' {
|
|
export function load(str: string): any;
|
|
}
|
|
|
|
export {}; |