import { User } from "../core/resources/users/user.resource";
/** @monorepo-internal */
export interface Login {
    password?: string;
    returnUrl: string;
    email: string;
    authType: AuthType;
}
export interface LoginOAuth {
    oAuthKey: string;
    oAuthProvider: string;
    returnUrl: string;
    authType: AuthType;
}
/** Result of a login attempt */
export interface LoginResult {
    /** Indicates if login was successful */
    isSuccess: boolean;
    /** Message describing the result or error */
    message?: string;
    /** Authenticated user info, present on success */
    user?: User;
    /** JWT or session token for authenticated requests */
    token?: string;
    /** URL to redirect after login */
    redirectUrl?: string;
}
/** @internal */
export declare const authTypes: {
    default: number;
    oauth: number;
};
/** @monorepo-internal */
export type AuthType = (typeof authTypes)[keyof typeof authTypes];
/** @monorepo-internal */
export interface GoogleOAuthResult {
    email: string;
    email_verified: boolean;
    family_name: string;
    given_name: string;
    hd: string;
    name: string;
    picture: string;
    sub: string;
}
/** @monorepo-internal */
export interface FacebookOAuthResult {
    email: string;
    name: string;
    id: string;
}
/** @monorepo-internal */
export interface MicrosoftOAuthResult {
    businessPhones: string[];
    displayName: string;
    givenName?: string;
    jobTitle?: string;
    mail?: string;
    mobilePhone?: string;
    officeLocation?: string;
    preferredLanguage: string;
    surname?: string;
    userPrincipalName: string;
    id: string;
}
export declare const loginProps: {
    readonly email: string;
    readonly password: string;
};
/** @monorepo-internal */
export declare const loginDisplayProps: {
    readonly resourceName: "Login";
    readonly password: "Password";
    readonly email: "Email";
};
