import { OAuthUserConfig } from '@auth/core/providers';
import { GitHubProfile } from '@auth/core/providers/github';
import { OktaProfile } from '@auth/core/providers/okta';
import { Auth0Profile } from '@auth/core/providers/auth0';
import { MicrosoftEntraIDProfile } from '@auth/core/providers/microsoft-entra-id';
import { GoogleProfile } from '@auth/core/providers/google';

interface EventCatalogAuthConfig {
    providers?: {
        github?: OAuthUserConfig<GitHubProfile>;
        google?: OAuthUserConfig<GoogleProfile>;
        okta?: OAuthUserConfig<OktaProfile>;
        auth0?: OAuthUserConfig<Auth0Profile>;
        entra?: OAuthUserConfig<MicrosoftEntraIDProfile>;
    };
    customAuthConfig?: string;
    customMiddleware?: string;
    session?: {
        maxAge?: number;
        updateAge?: number;
    };
}

export type { EventCatalogAuthConfig };
