## API Report File for "@genesislcap/foundation-login"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import { Auth } from '@genesislcap/foundation-comms';
import { Binding } from '@microsoft/fast-element';
import { Connect } from '@genesislcap/foundation-comms';
import { Constructable } from '@microsoft/fast-element';
import { Container } from '@microsoft/fast-foundation';
import { CredentialManager } from '@genesislcap/foundation-comms';
import { DefineFunction } from '@genesislcap/foundation-ui';
import { ElementStyles } from '@microsoft/fast-element';
import { FASTElement } from '@microsoft/fast-element';
import { FoundationAnalytics } from '@genesislcap/foundation-comms';
import { InterfaceSymbol } from '@microsoft/fast-foundation';
import { Message } from '@genesislcap/foundation-comms';
import { MessageBuilder } from '@genesislcap/foundation-comms';
import { PartialFASTElementDefinition } from '@microsoft/fast-element';
import { RouterConfiguration } from '@microsoft/fast-router';
import { Session } from '@genesislcap/foundation-comms';
import { SyntheticViewTemplate } from '@microsoft/fast-element';
import { TemplateElementDependency } from '@genesislcap/foundation-ui';
import { ViewTemplate } from '@microsoft/fast-element';

// Warning: (ae-internal-missing-underscore) The name "backButton" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const backButton: <T extends ConfigHost>(binding: Binding) => ViewTemplate<T, any>;

// Warning: (ae-internal-missing-underscore) The name "BackgroundElement" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export class BackgroundElement extends ConfigHostElement {
    // (undocumented)
    connectedCallback(): void;
}

// Warning: (ae-internal-missing-underscore) The name "BaseRoute" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export class BaseRoute extends ConfigHostElement {
    // (undocumented)
    auth: Auth;
    // (undocumented)
    autofill(): Promise<boolean>;
    // (undocumented)
    clearError(): void;
    // (undocumented)
    connect: Connect;
    // (undocumented)
    connectedCallback(): void;
    // (undocumented)
    credentialManager: CredentialManager;
    // (undocumented)
    email: string;
    // (undocumented)
    ensureConnection(): Promise<boolean>;
    // (undocumented)
    hasErrors: boolean;
    // (undocumented)
    host: string;
    // (undocumented)
    isSubmitting: boolean;
    // (undocumented)
    message: string;
    // (undocumented)
    messageBuilder: MessageBuilder;
    // (undocumented)
    onBack: () => Promise<void>;
    // (undocumented)
    onNavigate: (routeName: Routes, params?: {}) => Promise<void>;
    // (undocumented)
    onSubmit(): Promise<void>;
    // (undocumented)
    organisation: string;
    // (undocumented)
    get orgUsername(): string;
    // (undocumented)
    password: string;
    // (undocumented)
    password2: string;
    // (undocumented)
    queueOnBack(delay?: number): void;
    // (undocumented)
    sendMessage<T = any>(message: Message<T>, successFeedback?: string, successCallback?: (result: any) => void): Promise<void>;
    // (undocumented)
    session: Session;
    // (undocumented)
    setError(message: string): void;
    // (undocumented)
    showPasswords: boolean;
    // (undocumented)
    storeCredentials(password?: string): void;
    // (undocumented)
    username: string;
}

// Warning: (ae-internal-missing-underscore) The name "ConfigHost" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export type ConfigHost = {
    config: LoginConfig;
};

// Warning: (ae-internal-missing-underscore) The name "ConfigHostElement" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export class ConfigHostElement extends FASTElement implements ConfigHost {
    // (undocumented)
    config: LoginConfig;
    // (undocumented)
    connectedCallback(): void;
    // (undocumented)
    container: Container;
}

// Warning: (ae-internal-missing-underscore) The name "configurableTextField" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const configurableTextField: <T extends ConfigHost>(name: keyof FieldConfigMap | [name: keyof FieldConfigMap, valueKey: string], type: string, autofocus?: boolean, autocomplete?: string, className?: string, labelOverride?: string, testIdOverride?: string, required?: boolean) => ViewTemplate<T, any>;

// @public
export function configure(container: Container, config: Partial<LoginConfig>): void;

// @public (undocumented)
export const defaultApiHost: string;

// @public
export const defaultLoginConfig: LoginConfig;

// Warning: (ae-internal-missing-underscore) The name "defaultOnBackMS" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const defaultOnBackMS = 3000;

// @public (undocumented)
export const defaultOrganisation: string;

// @public (undocumented)
export const defaultPassword: string;

// @public (undocumented)
export const defaultSocketExt: string;

// @beta
export const defaultTemplateOptions: TemplateOptions;

// @public (undocumented)
export const defaultUser: string;

// @beta
export const define: DefineFunction<typeof Login>;

// @beta (undocumented)
export const definition: PartialFASTElementDefinition;

// Warning: (ae-internal-missing-underscore) The name "emailField" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const emailField: <T extends BaseRoute>() => ViewTemplate<T, any>;

// @public
export type FieldConfig = {
    label: string;
    value?: any;
};

// @public (undocumented)
export type FieldConfigMap = {
    organisation: FieldConfig | null;
    username: FieldConfig;
    email: FieldConfig;
    password: FieldConfig;
};

// @public (undocumented)
export const hostEnv: string;

// @public (undocumented)
export const hostUrl: string;

// @public (undocumented)
export interface IDP {
    // (undocumented)
    id: string;
    // (undocumented)
    type: string;
}

// @public (undocumented)
export interface IDPResponse {
    // (undocumented)
    ID: string;
    // (undocumented)
    TYPE: string;
}

// @public
export function isMFRoute(pathname?: string): boolean;

// @public
export class Login extends FASTElement {
    // @internal
    checkForSSOToken(): void;
    // @internal
    config: MainRouterConfig;
    // @internal (undocumented)
    connectedCallback(): Promise<void>;
    // @internal
    container: Container;
    // @internal
    provider: FASTElement;
    // @internal
    ready: boolean;
    // @internal
    registerCommonComponents(): Promise<void>;
    // @internal (undocumented)
    protected registerDIDependencies(): void;
    // @internal
    session: Session;
}

// Warning: (ae-internal-mixed-release-tag) Mixed release tags are not allowed for "LoginConfig" because one of its declarations is marked as @internal
//
// @public
export interface LoginConfig {
    autoAuth: boolean;
    autoConnect: boolean;
    background: ElementStyles;
    defaultRedirectUrl: string;
    fields: FieldConfigMap;
    logo: ElementStyles | null;
    omitRedirectUrls: string[];
    omitRoutes: Exclude<Routes, 'login' | 'not-found'>[];
    showConnectionIndicator: boolean;
    sso: SSOConfig | null;
    versionInformation?: string;
}

// @internal
export const LoginConfig: InterfaceSymbol<LoginConfig>;

// @beta (undocumented)
export class LoginHosted extends Login {
    // (undocumented)
    registerCommonComponents(): Promise<void>;
}

// Warning: (ae-internal-missing-underscore) The name "LogoElement" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export class LogoElement extends ConfigHostElement {
}

// Warning: (ae-internal-missing-underscore) The name "MainRouterConfig" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal
export class MainRouterConfig extends RouterConfiguration<Settings> {
    constructor(auth: Auth, container: Container, analytics: FoundationAnalytics, session: Session, loginConfig?: LoginConfig);
    // (undocumented)
    configure(): void;
    // (undocumented)
    construct<T>(Type: Constructable<T>): T;
}

// Warning: (ae-internal-missing-underscore) The name "MessageElement" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export class MessageElement extends FASTElement {
    // (undocumented)
    classNames: string;
    // (undocumented)
    message: string;
    // (undocumented)
    nonError: boolean;
    // (undocumented)
    nonErrorChanged(): void;
}

// Warning: (ae-internal-missing-underscore) The name "organisationField" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const organisationField: <T extends BaseRoute>() => ViewTemplate<T, any>;

// Warning: (ae-internal-missing-underscore) The name "password2Field" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const password2Field: <T extends BaseRoute>(type: 'new' | 'confirmation') => ViewTemplate<T, any>;

// Warning: (ae-internal-missing-underscore) The name "passwordField" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const passwordField: <T extends BaseRoute>(label?: string) => ViewTemplate<T, any>;

// @public (undocumented)
export const Routes: {
    readonly login: "login";
    readonly 'request-account': "request-account";
    readonly 'reset-password': "reset-password";
    readonly 'forgot-password': "forgot-password";
    readonly verify: "verify";
    readonly protected: "protected";
    readonly 'not-found': "not-found";
};

// @public (undocumented)
export type Routes = (typeof Routes)[keyof typeof Routes];

// @public
export type Settings = {
    public?: boolean;
};

// Warning: (ae-internal-missing-underscore) The name "showPasswordsCheckbox" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const showPasswordsCheckbox: <T extends BaseRoute>() => ViewTemplate<T, any>;

// @public (undocumented)
export type SSOConfig = {
    toggled?: boolean;
    identityProvidersPath: string;
};

// Warning: (ae-internal-missing-underscore) The name "standaloneDefinition" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const standaloneDefinition: PartialFASTElementDefinition;

// Warning: (ae-incompatible-release-tags) The symbol "styles" is marked as @public, but its signature references "TemplateOptions" which is marked as @beta
//
// @public (undocumented)
export const styles: (options: TemplateOptions) => ElementStyles;

// Warning: (ae-internal-missing-underscore) The name "submitButton" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const submitButton: <T extends ConfigHost>(label: string, dataTestId?: string, disabled?: boolean) => ViewTemplate<T, any>;

// Warning: (ae-internal-missing-underscore) The name "SubmittingIndicator" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export class SubmittingIndicator extends FASTElement {
    // (undocumented)
    isSubmitting: boolean;
}

// Warning: (ae-incompatible-release-tags) The symbol "template" is marked as @public, but its signature references "TemplateOptions" which is marked as @beta
//
// @public (undocumented)
export const template: (options: TemplateOptions) => ViewTemplate<Login, any>;

// @beta (undocumented)
export type TemplateComponents = {
    anchor: TemplateElementDependency;
    button: TemplateElementDependency;
    card: TemplateElementDependency;
    checkbox: TemplateElementDependency;
    listboxOption: TemplateElementDependency;
    provider: TemplateElementDependency;
    router: TemplateElementDependency;
    select: TemplateElementDependency;
    textField: TemplateElementDependency;
};

// @beta (undocumented)
export type TemplateOptions = TemplateComponents & {
    somePartial?: string | SyntheticViewTemplate;
};

// Warning: (ae-internal-missing-underscore) The name "usernameField" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const usernameField: <T extends BaseRoute>() => ViewTemplate<T, any>;

// (No @packageDocumentation comment for this package)

```
