import { SmzForm } from '../../modules/smz-forms/models/smz-forms';
import { SmzLoginState } from '../../modules/smz-layouts/features/login/login-state';
import { SmzGenericMenuBuilder } from '../smz-menu/generic-menu-builder';
export declare class SmzLoginBuilder<TResponse, TPayload> {
    _state: SmzLoginState<TResponse, TPayload>;
    constructor();
    setMessage(message: string): SmzLoginBuilder<TResponse, TPayload>;
    setLoginButtonLabel(label: string): SmzLoginBuilder<TResponse, TPayload>;
    setExtraInfo(extraInfo: string): SmzLoginBuilder<TResponse, TPayload>;
    setPayloadCallback(callback: (response: TResponse) => TPayload): SmzLoginBuilder<TResponse, TPayload>;
    setSubmitCallback(callback: (response: TResponse) => void): SmzLoginBuilder<TResponse, TPayload>;
    setLogoType(type: 'horizontal' | 'vertical' | 'icon' | 'typo'): SmzLoginBuilder<TResponse, TPayload>;
    useCustomLogo(imagePath: string): SmzLoginBuilder<TResponse, TPayload>;
    addButtons(): SmzGenericMenuBuilder<SmzLoginBuilder<TResponse, TPayload>>;
    setLogoSize(sizes: 'small' | 'medium' | 'large' | 'hero'): SmzLoginBuilder<TResponse, TPayload>;
    debugMode(): SmzLoginBuilder<TResponse, TPayload>;
    setForm(form: SmzForm<TResponse>): SmzLoginBuilder<TResponse, TPayload>;
    setLogoutAction(action: any, redirection?: string): SmzLoginBuilder<TResponse, TPayload>;
    setLoginAction(action: any): SmzLoginBuilder<TResponse, TPayload>;
    disableLoginActionCall(): SmzLoginBuilder<TResponse, TPayload>;
    setBackground(styleClass: string): SmzLoginBuilder<TResponse, TPayload>;
    setCard(styleClass: string): SmzLoginBuilder<TResponse, TPayload>;
    build(): SmzLoginState<TResponse, TPayload>;
}
