import type { RequestInternal } from "../core" import type { CommonProviderOptions } from "." import type { User, Awaitable } from ".." export interface CredentialInput { label?: string type?: string value?: string placeholder?: string } export interface CredentialsConfig< C extends Record = Record > extends CommonProviderOptions { type: "credentials" credentials: C authorize: ( credentials: Record | undefined, req: Pick ) => Awaitable } export type CredentialsProvider = >( options: Partial> ) => CredentialsConfig export type CredentialsProviderType = "Credentials" type UserCredentialsConfig> = Partial< Omit, "options"> > & Pick, "authorize" | "credentials"> export default function Credentials< C extends Record = Record >(options: UserCredentialsConfig): CredentialsConfig { return { id: "credentials", name: "Credentials", type: "credentials", credentials: {} as any, authorize: () => null, options, } }