import type { Auth } from '@/types/auth';

declare module 'react' {
    interface InputHTMLAttributes<T> {
        passwordrules?: string;
    }
}

declare module '@inertiajs/core' {
    export interface InertiaConfig {
        sharedPageProps: {
            name: string;
            auth: Auth;
            sidebarOpen: boolean;
            bbbDriver: 'fake' | 'api';
            /**
             * Le due costanti del listino crediti, condivise su ogni pagina
             * (ospiti inclusi). Opzionale: il frontend ricade sui default
             * 4 ore / 30 discenti se la prop non c'è.
             */
            pricing?: {
                hours_per_credit: number;
                participants_band: number;
            };
            /**
             * Titolo e meta description risolti lato server da
             * `App\Support\Seo`. Presenti solo sulle pagine pubbliche:
             * sono la stessa stringa che il Blade stampa nell'head, così
             * la navigazione SPA non riscrive un titolo diverso da quello
             * che leggono i crawler.
             */
            seo?: {
                title: string;
                description: string;
            };
            [key: string]: unknown;
        };
    }
}
