/* eslint-disable @typescript-eslint/no-explicit-any */

interface FBLoginResponse {
    authResponse: {
        code?: string
        accessToken?: string
        userID?: string
        expiresIn?: number
        signedRequest?: string
    } | null
    status: string
}

interface FBLoginOptions {
    config_id?: string
    response_type?: string
    override_default_response_type?: boolean
    scope?: string
    extras?: Record<string, any>
}

interface FBInitParams {
    appId: string
    autoLogAppEvents?: boolean
    xfbml?: boolean
    version: string
}

interface FB {
    init(params: FBInitParams): void
    login(callback: (response: FBLoginResponse) => void, options?: FBLoginOptions): void
    getLoginStatus(callback: (response: FBLoginResponse) => void): void
    logout(callback?: (response: any) => void): void
}

interface Window {
    FB: FB
    fbAsyncInit: () => void
}
