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

export interface AuthAppearance {
    logo_url: string;
    background_image: string;
    primary_color: string;
    heading_alignment: 'left' | 'center' | 'right';
    container_alignment: 'left' | 'center' | 'right';
    favicon_url: string;
    custom_css: string;
    admin_logo_light: string;
    admin_logo_dark: string;
    frontend_logo_light: string;
    frontend_logo_dark: string;
    site_name: string;
}

declare module 'react' {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    interface InputHTMLAttributes<T> {
        passwordrules?: string;
    }
}

declare module '@inertiajs/core' {
    export interface InertiaConfig {
        sharedPageProps: {
            name: string;
            auth: Auth;
            sidebarOpen: boolean;
            authAppearance: AuthAppearance;
            bookingTimezone: string;
            bookingTimezoneLabel: string;
            flash: { success?: string; error?: string };
            [key: string]: unknown;
        };
    }
}
