import { TemplateResult, LitElement, nothing } from 'lit';
import type { AuthProviders } from '@api-client/core/sdk/AuthSdk.js';
/**
 * An App screen (HTML Element) allowing the user to log in via supported providers (Google, GitHub, LinkedIn).
 *
 * This component handles the UI for authentication options and the loading state.
 * It does not implement actual authentication logic but delegates it via events.
 *
 * @fires authenticate - Dispatched when the user clicks on one of the authentication buttons.
 *                       The detail object `CustomEvent<{ provider: AuthProviders }>` contains the selected provider.
 *
 * @example
 * ```html
 * <login-screen
 *   .loading="${this.isLoggingIn}"
 *   google
 *   linkedin
 *   github
 *   @authenticate="${this.handleLogin}"
 * ></login-screen>
 * ```
 */
export default class LoginScreen extends LitElement {
    /**
     * When true, shows a loading indicator instead of the login buttons.
     * Set this while the authentication request is in progress.
     */
    accessor loading: boolean;
    /**
     * When set it renders the Google login button. Disabled by default.
     * @attribute
     */
    accessor google: boolean;
    /**
     * When set it renders the LinkedIn login button. Disabled by default.
     * @attribute
     */
    accessor linkedin: boolean;
    /**
     * When set it renders the GitHub login button. Disabled by default.
     * @attribute
     */
    accessor github: boolean;
    /**
     * Dispatches the authentication event for the selected provider.
     *
     * @param provider The authentication provider to use.
     */
    protected dispatchAuth(provider: AuthProviders): void;
    protected authenticateGoogle(): void;
    protected authenticateGithub(): void;
    protected authenticateLinkedin(): void;
    protected render(): unknown;
    protected renderInto(): TemplateResult;
    protected renderLoginForm(): TemplateResult;
    protected renderCheckingUser(): TemplateResult;
    protected renderGoogleButton(): TemplateResult | typeof nothing;
    protected renderGithubButton(): TemplateResult | typeof nothing;
    protected renderLinkedinButton(): TemplateResult | typeof nothing;
}
//# sourceMappingURL=LoginScreen.d.ts.map